Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WCF / Log / System / IO / Log / SmuggledIUnknown.cs / 1305376 / SmuggledIUnknown.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.IO.Log { using System; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Remoting.Services; internal sealed class SmuggledIUnknown : SafeHandle { internal SmuggledIUnknown() : base(IntPtr.Zero, true) { } internal SmuggledIUnknown(object unknown) : this() { RuntimeHelpers.PrepareConstrainedRegions(); try { } finally { base.handle = Marshal.GetIUnknownForObject(unknown); } } public override bool IsInvalid { get { return (IsClosed || (IntPtr.Zero == base.handle)); } } public object Smuggle() { object comObject; RuntimeHelpers.PrepareConstrainedRegions(); try { } finally { comObject = EnterpriseServicesHelper.WrapIUnknownWithComObject(base.handle); GC.KeepAlive(this); } return comObject; } override protected bool ReleaseHandle() { if (base.handle != IntPtr.Zero) { Marshal.Release(base.handle); base.handle = IntPtr.Zero; } return true; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.IO.Log { using System; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Remoting.Services; internal sealed class SmuggledIUnknown : SafeHandle { internal SmuggledIUnknown() : base(IntPtr.Zero, true) { } internal SmuggledIUnknown(object unknown) : this() { RuntimeHelpers.PrepareConstrainedRegions(); try { } finally { base.handle = Marshal.GetIUnknownForObject(unknown); } } public override bool IsInvalid { get { return (IsClosed || (IntPtr.Zero == base.handle)); } } public object Smuggle() { object comObject; RuntimeHelpers.PrepareConstrainedRegions(); try { } finally { comObject = EnterpriseServicesHelper.WrapIUnknownWithComObject(base.handle); GC.KeepAlive(this); } return comObject; } override protected bool ReleaseHandle() { if (base.handle != IntPtr.Zero) { Marshal.Release(base.handle); base.handle = IntPtr.Zero; } return true; } } } // 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
- CustomAssemblyResolver.cs
- SQLCharsStorage.cs
- PropertyValueUIItem.cs
- ScalarRestriction.cs
- StrokeIntersection.cs
- FlowLayoutPanel.cs
- NaturalLanguageHyphenator.cs
- LoadMessageLogger.cs
- PropertyCollection.cs
- UITypeEditors.cs
- LineUtil.cs
- XmlCharacterData.cs
- SpecularMaterial.cs
- MetadataPropertyvalue.cs
- MultipleViewPattern.cs
- PathGeometry.cs
- SubstitutionList.cs
- ConnectionPoint.cs
- Mapping.cs
- SubMenuStyleCollection.cs
- ReadContentAsBinaryHelper.cs
- AutoResizedEvent.cs
- ReadOnlyDataSourceView.cs
- TrackingExtract.cs
- TextEditorParagraphs.cs
- PtsCache.cs
- AnnouncementService.cs
- ChtmlCommandAdapter.cs
- ControlValuePropertyAttribute.cs
- ElapsedEventArgs.cs
- Collection.cs
- TraceListener.cs
- SubtreeProcessor.cs
- TrackingExtract.cs
- GlyphTypeface.cs
- LogRestartAreaEnumerator.cs
- PolicyValidator.cs
- TextRangeSerialization.cs
- FileUpload.cs
- UrlPath.cs
- StateDesigner.Helpers.cs
- PageAsyncTaskManager.cs
- ListControl.cs
- OptimalTextSource.cs
- FusionWrap.cs
- FormsAuthenticationModule.cs
- BufferModeSettings.cs
- VarRemapper.cs
- SamlAttribute.cs
- ComboBoxRenderer.cs
- DataKeyCollection.cs
- InstanceHandle.cs
- TouchesCapturedWithinProperty.cs
- ColumnHeaderConverter.cs
- util.cs
- X509SecurityTokenAuthenticator.cs
- SrgsRulesCollection.cs
- CompoundFileReference.cs
- X509Utils.cs
- XpsResourcePolicy.cs
- DiagnosticEventProvider.cs
- Effect.cs
- Blend.cs
- PackWebRequestFactory.cs
- HttpGetProtocolImporter.cs
- TheQuery.cs
- FontCacheLogic.cs
- UserPreferenceChangedEventArgs.cs
- SplitterCancelEvent.cs
- PartialCachingControl.cs
- GiveFeedbackEventArgs.cs
- WindowClosedEventArgs.cs
- PropertyChangeTracker.cs
- FrameDimension.cs
- SmtpNetworkElement.cs
- ListViewTableRow.cs
- ReliableOutputConnection.cs
- UniqueEventHelper.cs
- Logging.cs
- WindowsScrollBar.cs
- Win32Native.cs
- DelegatingTypeDescriptionProvider.cs
- ReflectionServiceProvider.cs
- TimeStampChecker.cs
- DataSourceXmlElementAttribute.cs
- _RequestCacheProtocol.cs
- odbcmetadatacolumnnames.cs
- fixedPageContentExtractor.cs
- OleDbWrapper.cs
- ButtonField.cs
- SchemaConstraints.cs
- MatrixCamera.cs
- SqlDataAdapter.cs
- XpsDocumentEvent.cs
- DynamicRenderer.cs
- ScriptModule.cs
- DrawToolTipEventArgs.cs
- AuthenticationSection.cs
- DataGridViewRowStateChangedEventArgs.cs
- HttpHandlerAction.cs