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
- SystemGatewayIPAddressInformation.cs
- TypeReference.cs
- AttachedPropertyBrowsableForChildrenAttribute.cs
- dtdvalidator.cs
- HttpProfileBase.cs
- _NtlmClient.cs
- TemplatePartAttribute.cs
- BigInt.cs
- MsmqIntegrationSecurityMode.cs
- DWriteFactory.cs
- WinFormsUtils.cs
- SplitterCancelEvent.cs
- SHA512Managed.cs
- RegexTree.cs
- Selection.cs
- XmlObjectSerializer.cs
- ProtocolsSection.cs
- CacheVirtualItemsEvent.cs
- DialogWindow.cs
- DefaultTextStoreTextComposition.cs
- DiagnosticEventProvider.cs
- HtmlInputFile.cs
- TypeInitializationException.cs
- GroupLabel.cs
- PermissionRequestEvidence.cs
- basevalidator.cs
- TableLayoutStyle.cs
- TerminatorSinks.cs
- TextLineBreak.cs
- Size.cs
- DependencyObjectCodeDomSerializer.cs
- FolderLevelBuildProvider.cs
- DotExpr.cs
- ReflectionUtil.cs
- ServiceDocumentFormatter.cs
- ToolStripItemClickedEventArgs.cs
- SiteMapHierarchicalDataSourceView.cs
- Predicate.cs
- ProvideValueServiceProvider.cs
- ProxyManager.cs
- RightsManagementEncryptedStream.cs
- SqlUserDefinedAggregateAttribute.cs
- ImageIndexConverter.cs
- Path.cs
- _NegoState.cs
- CodeEventReferenceExpression.cs
- BinaryReader.cs
- TraceProvider.cs
- UInt32.cs
- EntityDataSource.cs
- LocalizeDesigner.cs
- ResXFileRef.cs
- AppDomainFactory.cs
- CommandBindingCollection.cs
- ValidationEventArgs.cs
- LinearKeyFrames.cs
- SynchronizationContext.cs
- Trace.cs
- EpmSyndicationContentDeSerializer.cs
- AssemblyCache.cs
- IdentityNotMappedException.cs
- HashSet.cs
- unsafenativemethodstextservices.cs
- DataColumnCollection.cs
- Regex.cs
- RequiredFieldValidator.cs
- PartialList.cs
- SolidColorBrush.cs
- WebHeaderCollection.cs
- BitmapFrameDecode.cs
- FileVersion.cs
- LinkTarget.cs
- COM2PropertyBuilderUITypeEditor.cs
- CookielessData.cs
- LocalValueEnumerator.cs
- CounterSetInstance.cs
- NodeLabelEditEvent.cs
- Error.cs
- DataBinder.cs
- PeerNameRecord.cs
- Stroke2.cs
- CodePrimitiveExpression.cs
- ImageUrlEditor.cs
- IBuiltInEvidence.cs
- DataQuery.cs
- ToolStripGrip.cs
- EdmTypeAttribute.cs
- TreeNodeClickEventArgs.cs
- TypeNameConverter.cs
- TraceSource.cs
- SineEase.cs
- OleDbRowUpdatingEvent.cs
- ObjectKeyFrameCollection.cs
- UpDownBase.cs
- Buffer.cs
- EventWaitHandleSecurity.cs
- EntityTypeBase.cs
- TiffBitmapEncoder.cs
- XmlSchemaAttribute.cs
- SoapEnumAttribute.cs