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
- TextProviderWrapper.cs
- UInt64Storage.cs
- DnsPermission.cs
- OleDbException.cs
- ISAPIRuntime.cs
- Rule.cs
- X509Utils.cs
- TargetControlTypeAttribute.cs
- CatalogZoneBase.cs
- StaticSiteMapProvider.cs
- ClientEventManager.cs
- SelectionPattern.cs
- TimelineClockCollection.cs
- InternalEnumValidatorAttribute.cs
- EndpointAddressProcessor.cs
- ClientConfigPaths.cs
- RuntimeHandles.cs
- CommandField.cs
- ListControl.cs
- FixedSOMImage.cs
- FormatSettings.cs
- CircleHotSpot.cs
- NameValueConfigurationCollection.cs
- HierarchicalDataBoundControl.cs
- ConvertEvent.cs
- TimerElapsedEvenArgs.cs
- Rect3DConverter.cs
- AssemblyInfo.cs
- KeyValueSerializer.cs
- LineGeometry.cs
- _SingleItemRequestCache.cs
- SymmetricCryptoHandle.cs
- RuntimeCompatibilityAttribute.cs
- TypeUtils.cs
- AppDomainCompilerProxy.cs
- Floater.cs
- FlowDocumentFormatter.cs
- ObservableDictionary.cs
- CollectionBase.cs
- XmlCharacterData.cs
- DataSourceControlBuilder.cs
- FormViewPageEventArgs.cs
- MenuAutomationPeer.cs
- PagedDataSource.cs
- SiteMapNodeItemEventArgs.cs
- CqlErrorHelper.cs
- EventDrivenDesigner.cs
- CheckPair.cs
- PropertyIDSet.cs
- MimeTextImporter.cs
- EventLogPropertySelector.cs
- RecordConverter.cs
- BindingWorker.cs
- Configuration.cs
- CompleteWizardStep.cs
- HttpContext.cs
- Byte.cs
- MediaElementAutomationPeer.cs
- Int16Storage.cs
- GridLengthConverter.cs
- PermissionSet.cs
- HtmlControl.cs
- RoutedEventArgs.cs
- GridSplitter.cs
- RequestResponse.cs
- ObjectDesignerDataSourceView.cs
- SmtpSection.cs
- XmlSerializerOperationGenerator.cs
- DateTimeConverter.cs
- MatrixValueSerializer.cs
- ByeOperationCD1AsyncResult.cs
- TypeUtils.cs
- PropertyIdentifier.cs
- VideoDrawing.cs
- StatusBarItem.cs
- ChannelBuilder.cs
- HttpCacheVary.cs
- AmbientProperties.cs
- EpmContentSerializer.cs
- ButtonBaseAdapter.cs
- FindSimilarActivitiesVerb.cs
- SimplePropertyEntry.cs
- KeyedHashAlgorithm.cs
- TransformProviderWrapper.cs
- RectValueSerializer.cs
- BookmarkTable.cs
- ElementHost.cs
- SchemaType.cs
- DataGridViewTextBoxEditingControl.cs
- ConfigXmlText.cs
- SqlDataSourceCache.cs
- RijndaelManaged.cs
- UnaryNode.cs
- SamlAssertionKeyIdentifierClause.cs
- PropertyCollection.cs
- EventDescriptorCollection.cs
- TabControlEvent.cs
- DrawListViewColumnHeaderEventArgs.cs
- CallbackException.cs
- ValueUnavailableException.cs