Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Configuration / Microsoft / Win32 / SafeNativeMemoryHandle.cs / 1305376 / SafeNativeMemoryHandle.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace Microsoft.Win32 {
using System.Runtime.InteropServices;
using System;
using System.Security.Permissions;
using Microsoft.Win32.SafeHandles;
using System.Configuration;
// Safehandle for memory handles
[System.Security.SuppressUnmanagedCodeSecurityAttribute()]
internal sealed class SafeNativeMemoryHandle : SafeHandleZeroOrMinusOneIsInvalid {
private bool _useLocalFree = false;
[SecurityPermission(SecurityAction.LinkDemand, UnmanagedCode = true)]
internal SafeNativeMemoryHandle()
: this(false) {
}
internal SafeNativeMemoryHandle(bool useLocalFree)
: base(true) {
_useLocalFree = useLocalFree;
}
[SecurityPermission(SecurityAction.LinkDemand, UnmanagedCode = true)]
internal SafeNativeMemoryHandle(IntPtr handle, bool ownsHandle)
: base(ownsHandle) {
SetHandle(handle);
}
internal void SetDataHandle(IntPtr handle) {
SetHandle(handle);
}
override protected bool ReleaseHandle() {
if (handle != IntPtr.Zero) {
if (_useLocalFree == true)
UnsafeNativeMethods.LocalFree(handle);
else
Marshal.FreeHGlobal(handle);
handle = IntPtr.Zero;
return true;
}
return false;
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- FloatMinMaxAggregationOperator.cs
- RadioButton.cs
- SafeProcessHandle.cs
- WebPartZone.cs
- BinaryConverter.cs
- TextViewDesigner.cs
- WindowInteractionStateTracker.cs
- TransformerTypeCollection.cs
- SymmetricSecurityProtocol.cs
- XmlSchemaComplexContentExtension.cs
- FormViewRow.cs
- SequenceRangeCollection.cs
- PreservationFileWriter.cs
- FileSystemEventArgs.cs
- AssemblyAttributesGoHere.cs
- SubqueryRules.cs
- PropertyEmitterBase.cs
- TracingConnectionListener.cs
- FixedFlowMap.cs
- EntityCommand.cs
- ListenerAdapter.cs
- ListViewCommandEventArgs.cs
- MemoryStream.cs
- DotExpr.cs
- StickyNoteContentControl.cs
- Constraint.cs
- PropertyGeneratedEventArgs.cs
- ErrorEventArgs.cs
- CanonicalizationDriver.cs
- Attachment.cs
- Msmq.cs
- SingleSelectRootGridEntry.cs
- FolderBrowserDialog.cs
- CultureSpecificCharacterBufferRange.cs
- BindingOperations.cs
- MethodRental.cs
- XmlDataSource.cs
- HashLookup.cs
- TypeExtensionConverter.cs
- ServiceModelExtensionCollectionElement.cs
- SqlDataSourceTableQuery.cs
- MemoryFailPoint.cs
- DataSourceSelectArguments.cs
- TextEditorMouse.cs
- WebColorConverter.cs
- SqlSelectClauseBuilder.cs
- MonthCalendar.cs
- ExecutionEngineException.cs
- ValidatedControlConverter.cs
- SmiConnection.cs
- RemotingException.cs
- UnSafeCharBuffer.cs
- MdImport.cs
- TripleDES.cs
- EncryptRequest.cs
- ListViewItem.cs
- MarginCollapsingState.cs
- printdlgexmarshaler.cs
- TextSearch.cs
- Error.cs
- SafeJobHandle.cs
- RightsManagementPermission.cs
- SqlDataSourceCustomCommandPanel.cs
- DateTimeParse.cs
- uribuilder.cs
- SimpleType.cs
- GenerateScriptTypeAttribute.cs
- DropShadowEffect.cs
- DataGridViewToolTip.cs
- AssociationEndMember.cs
- Error.cs
- NotifyIcon.cs
- FileFormatException.cs
- D3DImage.cs
- ElapsedEventArgs.cs
- ExpressionList.cs
- CompilationUtil.cs
- VirtualPathProvider.cs
- TargetPerspective.cs
- DictionaryBase.cs
- DocComment.cs
- userdatakeys.cs
- X509Certificate.cs
- safelink.cs
- Compilation.cs
- CodePrimitiveExpression.cs
- ConfigXmlCDataSection.cs
- ClosureBinding.cs
- KeyTimeConverter.cs
- WebServiceHandler.cs
- FlagsAttribute.cs
- PersonalizableTypeEntry.cs
- OleDbEnumerator.cs
- CompensationToken.cs
- DirectionalAction.cs
- XslTransform.cs
- TreeViewImageIndexConverter.cs
- UpnEndpointIdentityExtension.cs
- DesignerHelpers.cs
- TextRunCache.cs