Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WCF / Tools / WSATConfig / Configuration / SafeIUnknown.cs / 1305376 / SafeIUnknown.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace Microsoft.Tools.ServiceModel.WsatConfig { using System; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.ConstrainedExecution; using System.Security.Permissions; // Keep an interface pointer that will not be used in a SafeHandle derived so // that it will be properly released. internal sealed class SafeIUnknown : SafeHandle { // This constructor is called by ComInterop [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] internal SafeIUnknown() : base(IntPtr.Zero, true) { } // This constructor is called by ComInterop [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] internal SafeIUnknown(IntPtr unknown) : base(IntPtr.Zero, true) { RuntimeHelpers.PrepareConstrainedRegions(); try { } finally { base.handle = unknown; } } public override bool IsInvalid { get { return (IsClosed || (IntPtr.Zero == base.handle)); } } override protected bool ReleaseHandle() { // NOTE: The SafeHandle class guarantees this will be called exactly once. IntPtr ptr = base.handle; base.handle = IntPtr.Zero; if (IntPtr.Zero != ptr) { Marshal.Release(ptr); } 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
- RecognizedAudio.cs
- MessageQueuePermissionEntry.cs
- Quack.cs
- NegatedCellConstant.cs
- SymDocumentType.cs
- DefaultAuthorizationContext.cs
- RectAnimationUsingKeyFrames.cs
- DtcInterfaces.cs
- Verify.cs
- GridSplitter.cs
- ListViewItem.cs
- MimeParameters.cs
- CultureInfo.cs
- XmlSchemaInferenceException.cs
- IisTraceWebEventProvider.cs
- StringComparer.cs
- ControlPaint.cs
- PromptEventArgs.cs
- Menu.cs
- _UncName.cs
- TreeIterators.cs
- CustomWebEventKey.cs
- TdsParserHelperClasses.cs
- WriterOutput.cs
- SubMenuStyle.cs
- EllipseGeometry.cs
- ExpandCollapsePattern.cs
- IncrementalHitTester.cs
- XmlDataSourceNodeDescriptor.cs
- AnnotationObservableCollection.cs
- XmlAttributeOverrides.cs
- GeometryConverter.cs
- EditingCoordinator.cs
- DetailsViewRow.cs
- InternalBase.cs
- DataGridViewSelectedRowCollection.cs
- MouseGesture.cs
- TextTreeRootTextBlock.cs
- TagMapCollection.cs
- Membership.cs
- Pen.cs
- AuthorizationRule.cs
- SubMenuStyle.cs
- PenThreadWorker.cs
- EditingCommands.cs
- FixedMaxHeap.cs
- VerifyHashRequest.cs
- AccessViolationException.cs
- RegexInterpreter.cs
- WindowsImpersonationContext.cs
- Point3D.cs
- ZipIOCentralDirectoryFileHeader.cs
- HttpProxyTransportBindingElement.cs
- ToolStrip.cs
- ProtectedConfigurationSection.cs
- CustomAttribute.cs
- SiteMapNodeItemEventArgs.cs
- CategoryNameCollection.cs
- AttributeEmitter.cs
- Psha1DerivedKeyGeneratorHelper.cs
- sqlpipe.cs
- ProgressPage.cs
- DataGridViewColumnConverter.cs
- SafeRightsManagementEnvironmentHandle.cs
- RegistrySecurity.cs
- CorrelationScope.cs
- WindowsSpinner.cs
- QilTypeChecker.cs
- XmlAnyElementAttributes.cs
- StrokeSerializer.cs
- DependentList.cs
- Native.cs
- RouteItem.cs
- InlineCollection.cs
- XmlNamespaceDeclarationsAttribute.cs
- TextBox.cs
- SendKeys.cs
- TemplateNodeContextMenu.cs
- SmtpClient.cs
- CollectionViewGroupInternal.cs
- DigitShape.cs
- CultureMapper.cs
- Pair.cs
- FastEncoderWindow.cs
- DesignerVerb.cs
- BridgeDataReader.cs
- ManipulationBoundaryFeedbackEventArgs.cs
- Model3DGroup.cs
- BindingWorker.cs
- Utils.cs
- HttpInputStream.cs
- MembershipPasswordException.cs
- TextRangeSerialization.cs
- PeerInvitationResponse.cs
- SimpleHandlerFactory.cs
- Border.cs
- ListControl.cs
- SerializerDescriptor.cs
- CompositeActivityCodeGenerator.cs
- TableHeaderCell.cs