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
- MetadataArtifactLoaderXmlReaderWrapper.cs
- TreeNodeBinding.cs
- SelectingProviderEventArgs.cs
- ApplicationDirectory.cs
- GPPOINTF.cs
- EntityViewContainer.cs
- SessionStateContainer.cs
- GridViewRowEventArgs.cs
- NameValuePermission.cs
- ExpandSegment.cs
- MetabaseServerConfig.cs
- MailWriter.cs
- BitStack.cs
- UserControl.cs
- DataFormats.cs
- FilterQueryOptionExpression.cs
- LocationReferenceValue.cs
- WebBrowserProgressChangedEventHandler.cs
- Internal.cs
- SiteOfOriginPart.cs
- ListBox.cs
- IndexerNameAttribute.cs
- TransformGroup.cs
- UIElementParagraph.cs
- HandlerFactoryWrapper.cs
- BindingMAnagerBase.cs
- NameGenerator.cs
- _ListenerResponseStream.cs
- GrabHandleGlyph.cs
- ToolStripGripRenderEventArgs.cs
- ProvidersHelper.cs
- OdbcTransaction.cs
- HostedElements.cs
- AsyncOperationManager.cs
- KnownTypes.cs
- Reference.cs
- Convert.cs
- ImageMetadata.cs
- VirtualDirectoryMappingCollection.cs
- WebReferencesBuildProvider.cs
- DataGridViewButtonCell.cs
- ListViewInsertEventArgs.cs
- infer.cs
- FolderBrowserDialog.cs
- WebPartManager.cs
- TreeViewCancelEvent.cs
- UrlUtility.cs
- SecondaryIndexList.cs
- WebPartExportVerb.cs
- FixedNode.cs
- XamlToRtfWriter.cs
- CopyOfAction.cs
- Models.cs
- PerformanceCounterPermission.cs
- HttpConfigurationSystem.cs
- DescendantQuery.cs
- ManagedIStream.cs
- XmlILOptimizerVisitor.cs
- PTConverter.cs
- Helper.cs
- WebPartDeleteVerb.cs
- DataGridColumnHeaderItemAutomationPeer.cs
- WorkflowDesignerMessageFilter.cs
- FontCollection.cs
- CodeIterationStatement.cs
- DefaultValueTypeConverter.cs
- TextOptions.cs
- AutomationProperties.cs
- FixedPageStructure.cs
- AppDomainProtocolHandler.cs
- ConfigurationElementProperty.cs
- WindowAutomationPeer.cs
- CssClassPropertyAttribute.cs
- AsyncPostBackTrigger.cs
- QueryReaderSettings.cs
- EditorServiceContext.cs
- OdbcStatementHandle.cs
- TextEffectCollection.cs
- DirectionalLight.cs
- PlainXmlDeserializer.cs
- ECDiffieHellmanPublicKey.cs
- ComAdminWrapper.cs
- AsyncStreamReader.cs
- TableAdapterManagerMethodGenerator.cs
- SymLanguageType.cs
- XamlDesignerSerializationManager.cs
- ConnectionStringsSection.cs
- GridViewColumnCollectionChangedEventArgs.cs
- EntityDataSourceView.cs
- SerializationFieldInfo.cs
- TableAdapterManagerGenerator.cs
- SettingsPropertyNotFoundException.cs
- DuplicateDetector.cs
- CompoundFileStreamReference.cs
- GridViewHeaderRowPresenterAutomationPeer.cs
- PermissionSetTriple.cs
- ComboBox.cs
- ZoneButton.cs
- XmlAttributeAttribute.cs
- CompositeActivityDesigner.cs