Code:
/ 4.0 / 4.0 / 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. //------------------------------------------------------------------------------ //// 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
- Int64AnimationBase.cs
- ObjectDataSourceSelectingEventArgs.cs
- IsolatedStorage.cs
- AsyncPostBackErrorEventArgs.cs
- AutomationProperties.cs
- RIPEMD160.cs
- sqlmetadatafactory.cs
- ExceptionUtil.cs
- ContextMenuStripGroupCollection.cs
- HuffModule.cs
- XmlEntity.cs
- ISAPIWorkerRequest.cs
- ClientCultureInfo.cs
- AuthenticationModuleElement.cs
- XmlConvert.cs
- FilteredDataSetHelper.cs
- Models.cs
- LingerOption.cs
- Queue.cs
- BlurEffect.cs
- BitmapEffectInput.cs
- XmlEventCache.cs
- HtmlMeta.cs
- TryExpression.cs
- DbQueryCommandTree.cs
- PriorityBinding.cs
- ProcessModelInfo.cs
- WizardPanel.cs
- KoreanCalendar.cs
- InvokePattern.cs
- MergeFailedEvent.cs
- OracleRowUpdatingEventArgs.cs
- PerformanceCounterPermission.cs
- ListViewTableCell.cs
- AndCondition.cs
- FieldAccessException.cs
- ListViewItemSelectionChangedEvent.cs
- NestedContainer.cs
- RegexParser.cs
- AdapterUtil.cs
- Process.cs
- NamedPipeProcessProtocolHandler.cs
- DbProviderFactory.cs
- ColorAnimationUsingKeyFrames.cs
- MatrixTransform3D.cs
- Drawing.cs
- QuaternionAnimation.cs
- CommonDialog.cs
- ListSourceHelper.cs
- RelatedImageListAttribute.cs
- SafeWaitHandle.cs
- ComponentResourceManager.cs
- ToolboxBitmapAttribute.cs
- StringAnimationUsingKeyFrames.cs
- IPHostEntry.cs
- WpfSharedXamlSchemaContext.cs
- ListViewItemSelectionChangedEvent.cs
- XpsSerializationManagerAsync.cs
- SudsParser.cs
- ThreadAttributes.cs
- ComponentDesigner.cs
- DataChangedEventManager.cs
- Inline.cs
- SqlDataRecord.cs
- UnionQueryOperator.cs
- DocComment.cs
- DataListCommandEventArgs.cs
- SpellerStatusTable.cs
- BaseTemplateParser.cs
- TabOrder.cs
- SkewTransform.cs
- TypeNameConverter.cs
- CacheSection.cs
- ItemsPresenter.cs
- StringHelper.cs
- CodeDirectionExpression.cs
- UInt16.cs
- ToolboxItemCollection.cs
- UIElementAutomationPeer.cs
- CompositeCollectionView.cs
- ParamArrayAttribute.cs
- EditorAttribute.cs
- SimpleExpression.cs
- RichTextBox.cs
- SSmlParser.cs
- InternalDuplexBindingElement.cs
- SqlGatherProducedAliases.cs
- CompositeScriptReference.cs
- InputScopeNameConverter.cs
- TakeOrSkipWhileQueryOperator.cs
- InlinedAggregationOperator.cs
- COM2DataTypeToManagedDataTypeConverter.cs
- Menu.cs
- ClientSettingsStore.cs
- DataGridColumn.cs
- ComponentResourceKeyConverter.cs
- DataGridViewButtonColumn.cs
- InternalEnumValidatorAttribute.cs
- DbParameterCollectionHelper.cs
- SimpleLine.cs