Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / ndp / fx / src / Configuration / Microsoft / Win32 / SafeNativeMemoryHandle.cs / 1 / 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. //------------------------------------------------------------------------------ //// 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
- XmlRawWriter.cs
- NetNamedPipeBindingCollectionElement.cs
- TakeOrSkipWhileQueryOperator.cs
- DateTimeFormatInfo.cs
- SerialPinChanges.cs
- SourceFilter.cs
- Model3DGroup.cs
- MetadataArtifactLoaderXmlReaderWrapper.cs
- XmlAttributeAttribute.cs
- SmtpMail.cs
- XPathNavigatorKeyComparer.cs
- DiffuseMaterial.cs
- WinInetCache.cs
- SpotLight.cs
- ScriptResourceInfo.cs
- WaitHandle.cs
- XmlSchemaNotation.cs
- ConcurrentStack.cs
- NegatedCellConstant.cs
- DispatcherHookEventArgs.cs
- ListInitExpression.cs
- PolicyReader.cs
- DiscoveryExceptionDictionary.cs
- DoubleLinkListEnumerator.cs
- SmtpLoginAuthenticationModule.cs
- MetadataFile.cs
- DocobjHost.cs
- AssemblyCache.cs
- MeasureItemEvent.cs
- OracleString.cs
- WebRequestModulesSection.cs
- ItemCollection.cs
- EmptyImpersonationContext.cs
- AssemblyAssociatedContentFileAttribute.cs
- EnumBuilder.cs
- SafeBitVector32.cs
- StylusPointCollection.cs
- EnumValAlphaComparer.cs
- PointConverter.cs
- EncoderReplacementFallback.cs
- EntityDataSourceDataSelectionPanel.cs
- TaiwanLunisolarCalendar.cs
- MenuRendererClassic.cs
- ToolStripDropDownClosedEventArgs.cs
- CheckBox.cs
- CodeDomDecompiler.cs
- DomainUpDown.cs
- PrePostDescendentsWalker.cs
- DropSource.cs
- FontNamesConverter.cs
- DependencyObject.cs
- SafeFileHandle.cs
- AsymmetricSignatureDeformatter.cs
- CSharpCodeProvider.cs
- RightsManagementEncryptionTransform.cs
- DesignTimeSiteMapProvider.cs
- SettingsPropertyValue.cs
- EntityDataSourceValidationException.cs
- ProviderCommandInfoUtils.cs
- DiagnosticTraceSource.cs
- FontWeights.cs
- X509ChainPolicy.cs
- MILUtilities.cs
- DataTableClearEvent.cs
- AppSettings.cs
- LocatorGroup.cs
- TypeReference.cs
- CopyNodeSetAction.cs
- FileFormatException.cs
- DSASignatureFormatter.cs
- Substitution.cs
- EdmEntityTypeAttribute.cs
- BaseTemplateCodeDomTreeGenerator.cs
- ContentHostHelper.cs
- PerspectiveCamera.cs
- CustomLineCap.cs
- ProxyHwnd.cs
- NextPreviousPagerField.cs
- HighlightComponent.cs
- LostFocusEventManager.cs
- QueryHandler.cs
- RoutedEventValueSerializer.cs
- DesignerOptions.cs
- GenericsInstances.cs
- TaskScheduler.cs
- PartialTrustVisibleAssemblyCollection.cs
- ImageProxy.cs
- DescendantQuery.cs
- ArrayListCollectionBase.cs
- EmptyQuery.cs
- ChtmlSelectionListAdapter.cs
- Oid.cs
- AnnouncementEventArgs.cs
- QueryActivatableWorkflowsCommand.cs
- ProcessManager.cs
- RichTextBox.cs
- NetTcpBinding.cs
- CodeSnippetCompileUnit.cs
- HttpRequest.cs
- PerfCounterSection.cs