Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / clr / src / BCL / Microsoft / Win32 / SafeHandles / Win32SafeHandles.cs / 1305376 / Win32SafeHandles.cs
// ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== // // Abstract derivations of SafeHandle designed to provide the common // functionality supporting Win32 handles. More specifically, they describe how // an invalid handle looks (for instance, some handles use -1 as an invalid // handle value, others use 0). // // Further derivations of these classes can specialise this even further (e.g. // file or registry handles). // // namespace Microsoft.Win32.SafeHandles { using System; using System.Runtime.InteropServices; using System.Runtime.CompilerServices; using System.Security.Permissions; using System.Runtime.ConstrainedExecution; // Class of safe handle which uses 0 or -1 as an invalid handle. [System.Security.SecurityCritical] // auto-generated_required [SecurityPermission(SecurityAction.InheritanceDemand, UnmanagedCode=true)] public abstract class SafeHandleZeroOrMinusOneIsInvalid : SafeHandle { [ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)] protected SafeHandleZeroOrMinusOneIsInvalid(bool ownsHandle) : base(IntPtr.Zero, ownsHandle) { } #if FEATURE_CORECLR // A default constructor is needed to satisfy CoreCLR inheritence rules. It should not be called at runtime protected SafeHandleZeroOrMinusOneIsInvalid() { throw new NotImplementedException(); } #endif // FEATURE_CORECLR public override bool IsInvalid { [System.Security.SecurityCritical] get { return handle.IsNull() || handle == new IntPtr(-1); } } } // Class of safe handle which uses only -1 as an invalid handle. [System.Security.SecurityCritical] // auto-generated_required [SecurityPermission(SecurityAction.InheritanceDemand, UnmanagedCode=true)] public abstract class SafeHandleMinusOneIsInvalid : SafeHandle { [ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)] protected SafeHandleMinusOneIsInvalid(bool ownsHandle) : base(new IntPtr(-1), ownsHandle) { } #if FEATURE_CORECLR // A default constructor is needed to satisfy CoreCLR inheritence rules. It should not be called at runtime protected SafeHandleMinusOneIsInvalid() { throw new NotImplementedException(); } #endif // FEATURE_CORECLR public override bool IsInvalid { [System.Security.SecurityCritical] get { return handle == new IntPtr(-1); } } } // Class of critical handle which uses 0 or -1 as an invalid handle. [System.Security.SecurityCritical] // auto-generated_required [SecurityPermission(SecurityAction.InheritanceDemand, UnmanagedCode=true)] public abstract class CriticalHandleZeroOrMinusOneIsInvalid : CriticalHandle { [ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)] protected CriticalHandleZeroOrMinusOneIsInvalid() : base(IntPtr.Zero) { } public override bool IsInvalid { [System.Security.SecurityCritical] get { return handle.IsNull() || handle == new IntPtr(-1); } } } // Class of critical handle which uses only -1 as an invalid handle. [System.Security.SecurityCritical] // auto-generated_required [SecurityPermission(SecurityAction.InheritanceDemand, UnmanagedCode=true)] public abstract class CriticalHandleMinusOneIsInvalid : CriticalHandle { [ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)] protected CriticalHandleMinusOneIsInvalid() : base(new IntPtr(-1)) { } public override bool IsInvalid { [System.Security.SecurityCritical] get { return handle == new IntPtr(-1); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== // // Abstract derivations of SafeHandle designed to provide the common // functionality supporting Win32 handles. More specifically, they describe how // an invalid handle looks (for instance, some handles use -1 as an invalid // handle value, others use 0). // // Further derivations of these classes can specialise this even further (e.g. // file or registry handles). // // namespace Microsoft.Win32.SafeHandles { using System; using System.Runtime.InteropServices; using System.Runtime.CompilerServices; using System.Security.Permissions; using System.Runtime.ConstrainedExecution; // Class of safe handle which uses 0 or -1 as an invalid handle. [System.Security.SecurityCritical] // auto-generated_required [SecurityPermission(SecurityAction.InheritanceDemand, UnmanagedCode=true)] public abstract class SafeHandleZeroOrMinusOneIsInvalid : SafeHandle { [ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)] protected SafeHandleZeroOrMinusOneIsInvalid(bool ownsHandle) : base(IntPtr.Zero, ownsHandle) { } #if FEATURE_CORECLR // A default constructor is needed to satisfy CoreCLR inheritence rules. It should not be called at runtime protected SafeHandleZeroOrMinusOneIsInvalid() { throw new NotImplementedException(); } #endif // FEATURE_CORECLR public override bool IsInvalid { [System.Security.SecurityCritical] get { return handle.IsNull() || handle == new IntPtr(-1); } } } // Class of safe handle which uses only -1 as an invalid handle. [System.Security.SecurityCritical] // auto-generated_required [SecurityPermission(SecurityAction.InheritanceDemand, UnmanagedCode=true)] public abstract class SafeHandleMinusOneIsInvalid : SafeHandle { [ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)] protected SafeHandleMinusOneIsInvalid(bool ownsHandle) : base(new IntPtr(-1), ownsHandle) { } #if FEATURE_CORECLR // A default constructor is needed to satisfy CoreCLR inheritence rules. It should not be called at runtime protected SafeHandleMinusOneIsInvalid() { throw new NotImplementedException(); } #endif // FEATURE_CORECLR public override bool IsInvalid { [System.Security.SecurityCritical] get { return handle == new IntPtr(-1); } } } // Class of critical handle which uses 0 or -1 as an invalid handle. [System.Security.SecurityCritical] // auto-generated_required [SecurityPermission(SecurityAction.InheritanceDemand, UnmanagedCode=true)] public abstract class CriticalHandleZeroOrMinusOneIsInvalid : CriticalHandle { [ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)] protected CriticalHandleZeroOrMinusOneIsInvalid() : base(IntPtr.Zero) { } public override bool IsInvalid { [System.Security.SecurityCritical] get { return handle.IsNull() || handle == new IntPtr(-1); } } } // Class of critical handle which uses only -1 as an invalid handle. [System.Security.SecurityCritical] // auto-generated_required [SecurityPermission(SecurityAction.InheritanceDemand, UnmanagedCode=true)] public abstract class CriticalHandleMinusOneIsInvalid : CriticalHandle { [ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)] protected CriticalHandleMinusOneIsInvalid() : base(new IntPtr(-1)) { } public override bool IsInvalid { [System.Security.SecurityCritical] get { return handle == new IntPtr(-1); } } } } // 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
- MessagingActivityHelper.cs
- ToolStripItemClickedEventArgs.cs
- Attachment.cs
- XmlTypeAttribute.cs
- Soap11ServerProtocol.cs
- ListSortDescription.cs
- ILGenerator.cs
- UnsafeNativeMethodsMilCoreApi.cs
- TrackBarDesigner.cs
- CuspData.cs
- WpfXamlType.cs
- StyleSheetComponentEditor.cs
- BitmapEffect.cs
- DupHandleConnectionReader.cs
- WorkflowTerminatedException.cs
- SerializerProvider.cs
- FacetValues.cs
- PrintPreviewGraphics.cs
- SQLDateTime.cs
- SafeFileHandle.cs
- Matrix3DStack.cs
- System.Data.OracleClient_BID.cs
- DataGridViewTextBoxEditingControl.cs
- Int16Storage.cs
- PartialCachingAttribute.cs
- EntitySetDataBindingList.cs
- DocobjHost.cs
- LinqDataView.cs
- HtmlInputImage.cs
- ICspAsymmetricAlgorithm.cs
- MediaElement.cs
- LinqDataSource.cs
- AnnotationDocumentPaginator.cs
- UIHelper.cs
- WebAdminConfigurationHelper.cs
- Tracer.cs
- DrawToolTipEventArgs.cs
- DesignerOptionService.cs
- COM2PictureConverter.cs
- SelectionItemPatternIdentifiers.cs
- ResourceReferenceExpression.cs
- EntityDataSourceValidationException.cs
- CodeStatementCollection.cs
- UrlPropertyAttribute.cs
- UpdateTranslator.cs
- DefaultWorkflowSchedulerService.cs
- StyleXamlParser.cs
- Menu.cs
- SelectionEditor.cs
- FontStyle.cs
- SourceFilter.cs
- ViewValidator.cs
- WebPartDisplayModeCancelEventArgs.cs
- ChildDocumentBlock.cs
- TickBar.cs
- WebPartTransformerAttribute.cs
- WebBaseEventKeyComparer.cs
- AsyncPostBackTrigger.cs
- Interlocked.cs
- KnownTypes.cs
- ComplexPropertyEntry.cs
- TransactionState.cs
- ComboBoxItem.cs
- TextSelectionHelper.cs
- BrowserInteropHelper.cs
- LogicalExpr.cs
- FlowNode.cs
- ArcSegment.cs
- RectAnimationUsingKeyFrames.cs
- VersionedStream.cs
- DefaultSection.cs
- XhtmlTextWriter.cs
- DataGridViewHitTestInfo.cs
- TlsSspiNegotiation.cs
- ClientTargetSection.cs
- RoleManagerEventArgs.cs
- Annotation.cs
- IDQuery.cs
- AutomationPropertyInfo.cs
- Win32.cs
- WithParamAction.cs
- XmlSchemaCollection.cs
- NavigationPropertyAccessor.cs
- ReflectionHelper.cs
- DataSourceView.cs
- _TransmitFileOverlappedAsyncResult.cs
- EntityCollection.cs
- VarRefManager.cs
- HttpContextWrapper.cs
- TrackingProfileDeserializationException.cs
- EventSourceCreationData.cs
- FormViewUpdateEventArgs.cs
- TypeNameConverter.cs
- TraceEventCache.cs
- BitmapEditor.cs
- DocumentXPathNavigator.cs
- COM2EnumConverter.cs
- GridViewRowPresenterBase.cs
- PageCodeDomTreeGenerator.cs
- BitmapData.cs