Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / wpf / src / Framework / MS / Internal / PtsHost / UnmanagedHandle.cs / 1 / UnmanagedHandle.cs
//---------------------------------------------------------------------------- // // Copyright (C) Microsoft Corporation. All rights reserved. // // File: UnmanagedHandle.cs // // Description: Definition for Unmanaged Handle. Provides identity (handle), // which can be used in unmanaged world. // // History: // 05/02/2003 : grzegorz - moving from Avalon branch. // //--------------------------------------------------------------------------- using System; namespace MS.Internal.PtsHost { ////// Provides identity (handle), which can be used in unmanaged world. /// If object is passed into unmanaged world, and there is a need to identify /// that object later on, its class should inherit from UnmanagedHandle. /// internal class UnmanagedHandle : IDisposable { ////// Constructor. Used when object derives from UnmanagedHandle. /// /// /// PTS context /// protected UnmanagedHandle(PtsContext ptsContext) { _ptsContext = ptsContext; _handle = ptsContext.CreateHandle(this); } ////// Dispose the object and release handle. /// public virtual void Dispose() { try { _ptsContext.ReleaseHandle(_handle); } finally { _handle = IntPtr.Zero; } } ////// Handle of an object. /// internal IntPtr Handle { get { return _handle; } } private IntPtr _handle; ////// PtsContext that is the owner of the handle. /// It is required to store it here for Dispose. When Dispose is called /// it is not always possible to get instance of PtsContext that /// has been used to create this handle. /// internal PtsContext PtsContext { get { return _ptsContext; } } private readonly PtsContext _ptsContext; } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. //---------------------------------------------------------------------------- // // Copyright (C) Microsoft Corporation. All rights reserved. // // File: UnmanagedHandle.cs // // Description: Definition for Unmanaged Handle. Provides identity (handle), // which can be used in unmanaged world. // // History: // 05/02/2003 : grzegorz - moving from Avalon branch. // //--------------------------------------------------------------------------- using System; namespace MS.Internal.PtsHost { ////// Provides identity (handle), which can be used in unmanaged world. /// If object is passed into unmanaged world, and there is a need to identify /// that object later on, its class should inherit from UnmanagedHandle. /// internal class UnmanagedHandle : IDisposable { ////// Constructor. Used when object derives from UnmanagedHandle. /// /// /// PTS context /// protected UnmanagedHandle(PtsContext ptsContext) { _ptsContext = ptsContext; _handle = ptsContext.CreateHandle(this); } ////// Dispose the object and release handle. /// public virtual void Dispose() { try { _ptsContext.ReleaseHandle(_handle); } finally { _handle = IntPtr.Zero; } } ////// Handle of an object. /// internal IntPtr Handle { get { return _handle; } } private IntPtr _handle; ////// PtsContext that is the owner of the handle. /// It is required to store it here for Dispose. When Dispose is called /// it is not always possible to get instance of PtsContext that /// has been used to create this handle. /// internal PtsContext PtsContext { get { return _ptsContext; } } private readonly PtsContext _ptsContext; } } // 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
- SafeEventLogReadHandle.cs
- SHA512.cs
- PanelDesigner.cs
- FormsAuthenticationUserCollection.cs
- QueryResult.cs
- DocumentXmlWriter.cs
- ReaderOutput.cs
- CacheEntry.cs
- SocketException.cs
- BindingCompleteEventArgs.cs
- TraceXPathNavigator.cs
- LoginView.cs
- EncryptedData.cs
- TargetException.cs
- DockAndAnchorLayout.cs
- SqlClientMetaDataCollectionNames.cs
- LinqToSqlWrapper.cs
- TimestampInformation.cs
- Image.cs
- ITextView.cs
- Group.cs
- StaticResourceExtension.cs
- CoreChannel.cs
- SuppressMessageAttribute.cs
- FileDetails.cs
- Speller.cs
- Tag.cs
- VBCodeProvider.cs
- ManagementOptions.cs
- CheckPair.cs
- ExtendedPropertiesHandler.cs
- WebPartUtil.cs
- InternalCache.cs
- RankException.cs
- IntegerCollectionEditor.cs
- TextElementEnumerator.cs
- _OSSOCK.cs
- CodeExpressionCollection.cs
- StaticExtensionConverter.cs
- SqlConnectionPoolGroupProviderInfo.cs
- GetTokenRequest.cs
- Rotation3D.cs
- EpmSyndicationContentDeSerializer.cs
- RSAOAEPKeyExchangeDeformatter.cs
- ReadOnlyCollection.cs
- ToolStripOverflow.cs
- DataPagerCommandEventArgs.cs
- Control.cs
- RSAOAEPKeyExchangeDeformatter.cs
- ChangeProcessor.cs
- XmlSchemaDocumentation.cs
- _SpnDictionary.cs
- TreePrinter.cs
- XmlStreamStore.cs
- EncoderParameters.cs
- CodeRegionDirective.cs
- ServerValidateEventArgs.cs
- StringBuilder.cs
- SubtreeProcessor.cs
- MediaSystem.cs
- ProjectionNode.cs
- Vector3DValueSerializer.cs
- XmlRawWriter.cs
- SpeechUI.cs
- TracingConnection.cs
- LocalizationCodeDomSerializer.cs
- ExpressionNode.cs
- EnumerationRangeValidationUtil.cs
- XmlDataImplementation.cs
- ByteStream.cs
- HTMLTextWriter.cs
- ErrorWebPart.cs
- TemplateColumn.cs
- OleDbConnectionPoolGroupProviderInfo.cs
- SelectorItemAutomationPeer.cs
- DetailsViewDeletedEventArgs.cs
- SynchronizedRandom.cs
- X509RawDataKeyIdentifierClause.cs
- WebScriptServiceHostFactory.cs
- GridViewCellAutomationPeer.cs
- SaveFileDialog.cs
- EntitySqlQueryState.cs
- DataGridViewCellStyleConverter.cs
- HwndHostAutomationPeer.cs
- EntityCollection.cs
- DiscoveryDocumentSerializer.cs
- DataKeyCollection.cs
- IsolatedStorageFilePermission.cs
- SafeNativeMethods.cs
- OverflowException.cs
- EventSinkHelperWriter.cs
- XamlToRtfParser.cs
- RealProxy.cs
- PanelStyle.cs
- FixedSOMPageElement.cs
- safelink.cs
- TextDecorationCollection.cs
- ConnectionStringEditor.cs
- EventSinkActivityDesigner.cs
- XPathMultyIterator.cs