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
- WebPartVerbCollection.cs
- ProfileEventArgs.cs
- ProviderBase.cs
- SmiContext.cs
- BitArray.cs
- IssuedSecurityTokenParameters.cs
- MetaData.cs
- isolationinterop.cs
- WindowsAuthenticationEventArgs.cs
- NTAccount.cs
- BlobPersonalizationState.cs
- RedistVersionInfo.cs
- SwitchLevelAttribute.cs
- XmlWriter.cs
- SocketInformation.cs
- Blend.cs
- ObjectSet.cs
- SelectionProviderWrapper.cs
- UndoEngine.cs
- MouseEventArgs.cs
- DbProviderFactories.cs
- ClientRoleProvider.cs
- MissingMethodException.cs
- TextBoxBase.cs
- CodeThrowExceptionStatement.cs
- GACIdentityPermission.cs
- PrintingPermissionAttribute.cs
- SqlUserDefinedTypeAttribute.cs
- CheckBoxStandardAdapter.cs
- SignerInfo.cs
- HttpSessionStateWrapper.cs
- ISCIIEncoding.cs
- DispatcherEventArgs.cs
- ScriptControlDescriptor.cs
- DataContractSerializerSection.cs
- AdapterDictionary.cs
- ComMethodElementCollection.cs
- OleDbStruct.cs
- ResourcesChangeInfo.cs
- TdsParameterSetter.cs
- StreamInfo.cs
- UTF8Encoding.cs
- MenuItemCollectionEditorDialog.cs
- Registry.cs
- TextDecoration.cs
- InteropDesigner.xaml.cs
- Crc32Helper.cs
- Point.cs
- SslStream.cs
- DataTableReaderListener.cs
- ToolboxItemFilterAttribute.cs
- RequestCachePolicyConverter.cs
- ScriptReference.cs
- ActiveXContainer.cs
- AutoResetEvent.cs
- EditorPart.cs
- XmlException.cs
- DateTimeSerializationSection.cs
- SessionParameter.cs
- mactripleDES.cs
- CngKey.cs
- CharacterString.cs
- WorkItem.cs
- SharedStatics.cs
- NavigationPropertyEmitter.cs
- ConfigurationStrings.cs
- PictureBoxDesigner.cs
- BitConverter.cs
- UdpDiscoveryEndpoint.cs
- GridItemCollection.cs
- namescope.cs
- PagesChangedEventArgs.cs
- DataGridViewColumn.cs
- ListViewSelectEventArgs.cs
- RectangleHotSpot.cs
- DefaultBinder.cs
- XmlSerializerVersionAttribute.cs
- GotoExpression.cs
- RepeaterDataBoundAdapter.cs
- WorkflowDesigner.cs
- SelectionUIHandler.cs
- InkCanvasSelectionAdorner.cs
- AttachedPropertyMethodSelector.cs
- DefaultParameterValueAttribute.cs
- JobDuplex.cs
- WaitForChangedResult.cs
- TemplateComponentConnector.cs
- TextContainerChangedEventArgs.cs
- TimeSpanValidator.cs
- CodeAssignStatement.cs
- DataGridViewControlCollection.cs
- ReadOnlyKeyedCollection.cs
- ManagementClass.cs
- TrackingLocation.cs
- GetLastErrorDetailsRequest.cs
- BuildProvider.cs
- CodeAssignStatement.cs
- ScaleTransform3D.cs
- UIntPtr.cs
- TabletDevice.cs