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
- FixedDocument.cs
- TextDataBindingHandler.cs
- WinFormsSecurity.cs
- HtmlTable.cs
- DetailsView.cs
- DataGridTableCollection.cs
- XmlQualifiedNameTest.cs
- Italic.cs
- CachedResourceDictionaryExtension.cs
- ResXResourceReader.cs
- RequiredArgumentAttribute.cs
- WeakReferenceList.cs
- InlineCollection.cs
- RangeBase.cs
- ClientUtils.cs
- Point.cs
- InkCollectionBehavior.cs
- ProgressBarAutomationPeer.cs
- UpdatePanel.cs
- DbXmlEnabledProviderManifest.cs
- FixedSOMImage.cs
- OdbcException.cs
- RouteValueDictionary.cs
- SafeMemoryMappedFileHandle.cs
- LineServicesRun.cs
- RegexBoyerMoore.cs
- TypeUnloadedException.cs
- SHA384.cs
- TextChangedEventArgs.cs
- PathSegmentCollection.cs
- HelloOperationAsyncResult.cs
- IisTraceWebEventProvider.cs
- PointAnimationBase.cs
- Vector3DCollectionConverter.cs
- PhysicalOps.cs
- CaseStatement.cs
- XsltArgumentList.cs
- SchemaCollectionCompiler.cs
- XmlDataSourceNodeDescriptor.cs
- SQlBooleanStorage.cs
- ChangePasswordAutoFormat.cs
- Inflater.cs
- LostFocusEventManager.cs
- DropTarget.cs
- SiteMapHierarchicalDataSourceView.cs
- PropertyGrid.cs
- FileUtil.cs
- PeerNameRecord.cs
- NotificationContext.cs
- SelectedDatesCollection.cs
- ActivationArguments.cs
- CannotUnloadAppDomainException.cs
- ALinqExpressionVisitor.cs
- ConstraintStruct.cs
- TimeSpanConverter.cs
- FontUnit.cs
- DBDataPermission.cs
- ItemList.cs
- TypeGeneratedEventArgs.cs
- ListSourceHelper.cs
- ObjectAnimationUsingKeyFrames.cs
- GridSplitter.cs
- TabControlEvent.cs
- LayoutEvent.cs
- ExpressionCopier.cs
- Renderer.cs
- Visitor.cs
- CurrentChangedEventManager.cs
- Propagator.cs
- LongSumAggregationOperator.cs
- DataGridToolTip.cs
- DesignerUtility.cs
- IItemContainerGenerator.cs
- MenuItemBindingCollection.cs
- ContentPresenter.cs
- ComponentResourceManager.cs
- IODescriptionAttribute.cs
- SourceExpressionException.cs
- CommaDelimitedStringAttributeCollectionConverter.cs
- TextRangeEditLists.cs
- EventWaitHandle.cs
- Publisher.cs
- IntSecurity.cs
- DataGridViewRowCancelEventArgs.cs
- DependencyPropertyValueSerializer.cs
- Emitter.cs
- AttachInfo.cs
- WeakEventTable.cs
- StorageEntitySetMapping.cs
- BaseResourcesBuildProvider.cs
- GlobalProxySelection.cs
- HasCopySemanticsAttribute.cs
- InfiniteIntConverter.cs
- TriggerActionCollection.cs
- Substitution.cs
- UmAlQuraCalendar.cs
- IndexedString.cs
- ComboBoxAutomationPeer.cs
- FakeModelPropertyImpl.cs
- DrawingGroup.cs