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
- ResourcePropertyMemberCodeDomSerializer.cs
- ServiceOperation.cs
- Int32CAMarshaler.cs
- TemplateControlParser.cs
- ValidatingReaderNodeData.cs
- Dictionary.cs
- AbandonedMutexException.cs
- Deflater.cs
- WindowsListViewItemCheckBox.cs
- RuleElement.cs
- OracleParameter.cs
- TemplateField.cs
- JoinSymbol.cs
- SingleBodyParameterMessageFormatter.cs
- XmlComment.cs
- coordinatorfactory.cs
- SplineKeyFrames.cs
- XmlLanguage.cs
- ClientTargetSection.cs
- ConvertersCollection.cs
- SecureEnvironment.cs
- PermissionSetTriple.cs
- EdmPropertyAttribute.cs
- InstanceKeyCollisionException.cs
- DbConnectionInternal.cs
- ServiceDesigner.cs
- TrustLevel.cs
- HtmlTextArea.cs
- FixedSOMGroup.cs
- DesignerCategoryAttribute.cs
- AssemblyBuilder.cs
- CodeTypeReference.cs
- FixedTextContainer.cs
- ISO2022Encoding.cs
- CodeCommentStatement.cs
- MessageQueue.cs
- NumberFormatInfo.cs
- SystemColorTracker.cs
- RequestResizeEvent.cs
- ZipIOLocalFileDataDescriptor.cs
- SignatureDescription.cs
- RoutedEventArgs.cs
- SingleStorage.cs
- HttpHandlerActionCollection.cs
- ContainerControl.cs
- ServiceContractViewControl.Designer.cs
- EncryptedKey.cs
- OdbcCommandBuilder.cs
- MouseEvent.cs
- AuthorizationContext.cs
- SmtpNtlmAuthenticationModule.cs
- DbConnectionPoolGroupProviderInfo.cs
- RenderDataDrawingContext.cs
- MetadataCache.cs
- XmlArrayItemAttributes.cs
- TextDecorationCollection.cs
- InfoCardTrace.cs
- DocumentManager.cs
- ProviderConnectionPointCollection.cs
- XmlSchemaCompilationSettings.cs
- InvalidComObjectException.cs
- TemplateBaseAction.cs
- MemberJoinTreeNode.cs
- MDIControlStrip.cs
- HttpContext.cs
- DelegatingMessage.cs
- MinMaxParagraphWidth.cs
- OleDbCommandBuilder.cs
- SourceElementsCollection.cs
- ResourceDictionaryCollection.cs
- MediaCommands.cs
- SQLMoney.cs
- ToolStripSettings.cs
- UdpContractFilterBehavior.cs
- CachedFontFamily.cs
- StyleBamlTreeBuilder.cs
- RequestValidator.cs
- SinglePageViewer.cs
- LayoutDump.cs
- UndirectedGraph.cs
- PolyLineSegmentFigureLogic.cs
- Camera.cs
- ImageCreator.cs
- Span.cs
- CatalogZone.cs
- ContentControl.cs
- DependencyPropertyDescriptor.cs
- ShaperBuffers.cs
- XmlHierarchicalDataSourceView.cs
- DataPointer.cs
- HttpListenerRequest.cs
- DynamicPropertyHolder.cs
- AddingNewEventArgs.cs
- loginstatus.cs
- FieldNameLookup.cs
- Validator.cs
- BorderSidesEditor.cs
- Compress.cs
- ReflectEventDescriptor.cs
- IdnElement.cs