Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / MS / Internal / PtsHost / UnmanagedHandle.cs / 1305600 / 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 : [....] - 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; } GC.SuppressFinalize(this); } ////// 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 : [....] - 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; } GC.SuppressFinalize(this); } ////// 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
- TextRunCacheImp.cs
- InputLanguageSource.cs
- ButtonChrome.cs
- DateTimeConverter2.cs
- FormsAuthenticationConfiguration.cs
- OrElse.cs
- VBIdentifierDesigner.xaml.cs
- CollectionViewGroup.cs
- PropertyOrder.cs
- DropTarget.cs
- ControlSerializer.cs
- HttpResponse.cs
- HTMLTagNameToTypeMapper.cs
- HttpHandler.cs
- InvokeMethodActivity.cs
- SecurityDocument.cs
- BinaryObjectInfo.cs
- MouseButtonEventArgs.cs
- OwnerDrawPropertyBag.cs
- DataGridViewRowDividerDoubleClickEventArgs.cs
- FilteredAttributeCollection.cs
- DataBindingExpressionBuilder.cs
- ScrollableControlDesigner.cs
- Section.cs
- ResourceReferenceExpression.cs
- EventLog.cs
- EUCJPEncoding.cs
- EntityKey.cs
- SafeBitVector32.cs
- EventItfInfo.cs
- Image.cs
- CallbackCorrelationInitializer.cs
- EncoderParameter.cs
- FontNamesConverter.cs
- Propagator.Evaluator.cs
- DllNotFoundException.cs
- ToolStripHighContrastRenderer.cs
- OrderByQueryOptionExpression.cs
- ExceptionHandlersDesigner.cs
- DiagnosticEventProvider.cs
- TransformConverter.cs
- FreezableOperations.cs
- XmlSiteMapProvider.cs
- StringAnimationUsingKeyFrames.cs
- CuspData.cs
- SecurityRuntime.cs
- TaskFileService.cs
- DynamicDiscoveryDocument.cs
- ListViewDeleteEventArgs.cs
- TypeUnloadedException.cs
- TreeView.cs
- InputLanguage.cs
- SourceLineInfo.cs
- InputMethodStateChangeEventArgs.cs
- ContainerParaClient.cs
- ReadWriteSpinLock.cs
- ObjectListGeneralPage.cs
- CalloutQueueItem.cs
- CompareValidator.cs
- ThreadTrace.cs
- XPathMultyIterator.cs
- SlipBehavior.cs
- _TLSstream.cs
- Tile.cs
- KeysConverter.cs
- WebScriptMetadataFormatter.cs
- RandomNumberGenerator.cs
- MailHeaderInfo.cs
- ExceptionUtil.cs
- WebAdminConfigurationHelper.cs
- Directory.cs
- InheritedPropertyDescriptor.cs
- OletxVolatileEnlistment.cs
- PublisherMembershipCondition.cs
- XsltOutput.cs
- GeometryValueSerializer.cs
- CodeComment.cs
- WsdlWriter.cs
- ParseHttpDate.cs
- LayoutSettings.cs
- SmiEventSink_DeferedProcessing.cs
- ColumnMapTranslator.cs
- ValueCollectionParameterReader.cs
- JulianCalendar.cs
- PersonalizationProviderHelper.cs
- SynchronizedDispatch.cs
- WebServiceResponseDesigner.cs
- LineServicesRun.cs
- FrameAutomationPeer.cs
- PrinterSettings.cs
- Timer.cs
- StringComparer.cs
- TransformerInfo.cs
- NamedServiceModelExtensionCollectionElement.cs
- ServiceDesigner.cs
- ToolStripGripRenderEventArgs.cs
- UrlAuthFailedErrorFormatter.cs
- TabletDevice.cs
- CorrelationTokenTypeConvertor.cs
- DefaultIfEmptyQueryOperator.cs