Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / 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
- _FtpDataStream.cs
- SQLInt16Storage.cs
- SafeFindHandle.cs
- Block.cs
- SoapElementAttribute.cs
- ToolStripItemGlyph.cs
- ProtocolViolationException.cs
- AdRotator.cs
- LinkDesigner.cs
- SystemUdpStatistics.cs
- ListViewUpdateEventArgs.cs
- TextServicesCompartment.cs
- SerializerWriterEventHandlers.cs
- LinearKeyFrames.cs
- MsmqTransportElement.cs
- DataGridViewRowsAddedEventArgs.cs
- DataGridTable.cs
- SQLGuid.cs
- ListenerElementsCollection.cs
- Attribute.cs
- XamlTypeMapper.cs
- CacheMode.cs
- OuterGlowBitmapEffect.cs
- Visitors.cs
- DataGridRowDetailsEventArgs.cs
- WindowsGraphicsWrapper.cs
- XmlNamedNodeMap.cs
- InfoCardRSAPKCS1KeyExchangeDeformatter.cs
- CreateUserWizard.cs
- EventWaitHandleSecurity.cs
- EventSetter.cs
- WebPartAuthorizationEventArgs.cs
- GeneralTransform3DCollection.cs
- RequestCachingSection.cs
- SolidColorBrush.cs
- StaticTextPointer.cs
- SafeArchiveContext.cs
- SystemIcmpV4Statistics.cs
- DataGridBoolColumn.cs
- CodeCommentStatementCollection.cs
- WebPartMenu.cs
- ContractNamespaceAttribute.cs
- CodeNamespace.cs
- CacheDependency.cs
- Function.cs
- HtmlImage.cs
- SpecialNameAttribute.cs
- CngProvider.cs
- MimeTypeMapper.cs
- XmlDataImplementation.cs
- KeyValueConfigurationElement.cs
- PublisherMembershipCondition.cs
- DesignerDataRelationship.cs
- Html32TextWriter.cs
- SqlCachedBuffer.cs
- LocalizeDesigner.cs
- TemplateLookupAction.cs
- AccessDataSourceView.cs
- HierarchicalDataTemplate.cs
- DomNameTable.cs
- RemotingAttributes.cs
- TdsValueSetter.cs
- hresults.cs
- EventHandlers.cs
- UnauthorizedWebPart.cs
- IssuanceLicense.cs
- CrossContextChannel.cs
- DataObjectFieldAttribute.cs
- RegexRunnerFactory.cs
- CompoundFileStorageReference.cs
- GeometryCombineModeValidation.cs
- TableLayoutPanelCellPosition.cs
- HttpCacheVaryByContentEncodings.cs
- UserControlBuildProvider.cs
- Assert.cs
- TypeUtils.cs
- DbTransaction.cs
- DiffuseMaterial.cs
- BamlTreeMap.cs
- ProgressBar.cs
- Viewport3DAutomationPeer.cs
- IListConverters.cs
- TextEncodedRawTextWriter.cs
- CrossContextChannel.cs
- AppModelKnownContentFactory.cs
- CodeTypeOfExpression.cs
- ExternalCalls.cs
- CompoundFileReference.cs
- CompositeControl.cs
- RuntimeResourceSet.cs
- CombinedTcpChannel.cs
- WorkflowInstanceProxy.cs
- TypeForwardedFromAttribute.cs
- HttpValueCollection.cs
- CfgParser.cs
- OlePropertyStructs.cs
- JsonStringDataContract.cs
- StringAnimationUsingKeyFrames.cs
- Marshal.cs
- OleDbConnectionInternal.cs