Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / infocard / Service / managed / Microsoft / InfoCards / SafeNativeHandle.cs / 1 / SafeNativeHandle.cs
//------------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------------------------
//
// Presharp uses the c# pragma mechanism to supress its warnings.
// These are not recognised by the base compiler so we need to explictly
// disable the following warnings. See http://winweb/cse/Tools/PREsharp/userguide/default.asp
// for details.
//
#pragma warning disable 1634, 1691 // unknown message, unknown pragma
namespace Microsoft.InfoCards
{
using System;
using System.Security;
using System.Security.Permissions;
using System.Runtime.InteropServices;
using System.Runtime.CompilerServices;
using System.Runtime.ConstrainedExecution;
using Microsoft.Win32.SafeHandles;
//
// Summary:
// This is a wrapper for Native handles that ensures that they get closed and that the handle
// held by this object isn't recycled.
//
internal sealed class SafeNativeHandle : SafeHandleZeroOrMinusOneIsInvalid
{
// Called by P/Invoke marshaler
private SafeNativeHandle() : base( true )
{
}
//
// Summary:
// Creates a new SafeNativeHandle.
//
// Parameters:
// existingHandle - A pointer to an existing native handle.
// ownsHandle - Indicates whether this object owns the handle and should clean it up.
//
public SafeNativeHandle( IntPtr existingHandle, bool ownsHandle ) : base( ownsHandle )
{
SetHandle( existingHandle );
}
override protected bool ReleaseHandle()
{
//
// Presharp: we want to return even in the case of failure. Useless to examine return error.
//
#pragma warning suppress 56523
return NativeMethods.SafeHandleOnlyMethods.CloseHandle( handle );
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- HttpDictionary.cs
- BindingContext.cs
- BaseDataBoundControl.cs
- Range.cs
- NTAccount.cs
- EditorPart.cs
- SmiEventSink.cs
- IpcPort.cs
- AutoCompleteStringCollection.cs
- DataBoundLiteralControl.cs
- TileBrush.cs
- XmlnsDefinitionAttribute.cs
- ReceiveActivityValidator.cs
- Dictionary.cs
- RuntimeEnvironment.cs
- BufferedMessageWriter.cs
- TextParentUndoUnit.cs
- XslCompiledTransform.cs
- UserMapPath.cs
- XpsFixedDocumentReaderWriter.cs
- OpenTypeCommon.cs
- PersonalizationEntry.cs
- GridSplitterAutomationPeer.cs
- MailAddress.cs
- SqlDataSourceView.cs
- ChangeConflicts.cs
- XsdValidatingReader.cs
- Mappings.cs
- ViewDesigner.cs
- XmlHelper.cs
- ScriptReferenceBase.cs
- PtsPage.cs
- DataControlFieldCollection.cs
- XmlNodeChangedEventManager.cs
- documentation.cs
- ThemeDirectoryCompiler.cs
- BitmapEffectInputData.cs
- Events.cs
- HttpSessionStateBase.cs
- CommandPlan.cs
- Menu.cs
- OdbcPermission.cs
- GeometryHitTestParameters.cs
- ProjectionAnalyzer.cs
- TextFormatter.cs
- Verify.cs
- IdentityManager.cs
- MappedMetaModel.cs
- ReaderWriterLockWrapper.cs
- DbReferenceCollection.cs
- DPTypeDescriptorContext.cs
- ManifestSignedXml.cs
- SectionInformation.cs
- SystemException.cs
- BaseAsyncResult.cs
- WebPartEditVerb.cs
- SelectedGridItemChangedEvent.cs
- LogWriteRestartAreaAsyncResult.cs
- SiteMapDataSource.cs
- BitmapFrame.cs
- EntityContainer.cs
- _UncName.cs
- PriorityItem.cs
- HierarchicalDataBoundControlAdapter.cs
- DirectoryNotFoundException.cs
- CustomValidator.cs
- BooleanKeyFrameCollection.cs
- TextSpan.cs
- ipaddressinformationcollection.cs
- EventSchemaTraceListener.cs
- ObjectDataSourceFilteringEventArgs.cs
- WindowsListBox.cs
- ArcSegment.cs
- AuthenticationService.cs
- WebPartZone.cs
- DSACryptoServiceProvider.cs
- SqlGenerator.cs
- IDReferencePropertyAttribute.cs
- Buffer.cs
- StreamGeometry.cs
- ViewBox.cs
- SQLResource.cs
- Scene3D.cs
- PreviewPrintController.cs
- FileSecurity.cs
- PriorityQueue.cs
- DataReceivedEventArgs.cs
- BitmapVisualManager.cs
- ListViewItemEventArgs.cs
- ButtonFlatAdapter.cs
- SoapSchemaImporter.cs
- DtdParser.cs
- ToolStripItem.cs
- InputBuffer.cs
- BinaryKeyIdentifierClause.cs
- CompiledIdentityConstraint.cs
- InvalidPrinterException.cs
- CustomError.cs
- ExpressionTable.cs
- FlowDocumentPage.cs