Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WCF / infocard / Client / System / IdentityModel / Selectors / SafeLibraryHandle.cs / 1305376 / SafeLibraryHandle.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace System.IdentityModel.Selectors { using System; using System.IO; using System.Collections.Generic; using System.Collections.ObjectModel; using System.ComponentModel; using System.Runtime.InteropServices; using System.Runtime.ConstrainedExecution; using System.Runtime.CompilerServices; using Microsoft.InfoCards.Diagnostics; using Microsoft.Win32; using System.Security.Permissions; using Microsoft.Win32.SafeHandles; // // Summary: // A class to wrap a library handle for reliability. // When LoadLibrary returns, the runtime stores the resulting IntPtr // into the already created SafeLibraryHandle. The runtime guarantees that // this operation is atomic, meaning that if the P/Invoke method successfully returns, // the IntPtr will be stored safely inside the SafeHandle. Once inside the SafeHandle, // even if an asynchronous exception occurs and prevents LoadLibrary's SafeLibraryHandle return // value from being stored, the relevant IntPtr is already stored within a managed object // whose critical finalizer will ensure its proper release. // [ SecurityPermission( SecurityAction.LinkDemand, UnmanagedCode=true ) ] class SafeLibraryHandle : SafeHandleZeroOrMinusOneIsInvalid { private SafeLibraryHandle() : base( true ) { } protected override bool ReleaseHandle() { #pragma warning suppress 56523 return FreeLibrary( handle ); } [DllImport( "kernel32.dll", CharSet = CharSet.Unicode, ExactSpelling = true, SetLastError = true, CallingConvention = CallingConvention.StdCall )] internal static extern SafeLibraryHandle LoadLibraryW( [MarshalAs( UnmanagedType.LPWStr )] string dllname ); [DllImport( "kernel32.dll", CharSet = CharSet.Unicode, ExactSpelling = true, SetLastError = true, CallingConvention = CallingConvention.StdCall )] internal static extern bool FreeLibrary( IntPtr hModule ); } } // 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
- mediaeventargs.cs
- ScrollContentPresenter.cs
- DataGridViewComboBoxColumn.cs
- HandleRef.cs
- FrameworkElementFactoryMarkupObject.cs
- CommandTreeTypeHelper.cs
- RtfControls.cs
- Control.cs
- ToolStripContentPanelRenderEventArgs.cs
- ConnectionModeReader.cs
- ParagraphResult.cs
- SourceInterpreter.cs
- TableStyle.cs
- SHA1.cs
- AssociatedControlConverter.cs
- assemblycache.cs
- BuildProviderInstallComponent.cs
- StorageRoot.cs
- SigningProgress.cs
- XmlCompatibilityReader.cs
- Section.cs
- MobileResource.cs
- OdbcParameterCollection.cs
- AnnotationMap.cs
- PropertyRecord.cs
- HTMLTextWriter.cs
- OuterGlowBitmapEffect.cs
- ApplicationInfo.cs
- CodeDelegateCreateExpression.cs
- Parallel.cs
- Vector3DIndependentAnimationStorage.cs
- InvalidDataException.cs
- AccessViolationException.cs
- counter.cs
- OleDbPropertySetGuid.cs
- RawStylusSystemGestureInputReport.cs
- Knowncolors.cs
- BitmapEffectCollection.cs
- AppDomainAttributes.cs
- DbConnectionPoolGroup.cs
- XmlStreamNodeWriter.cs
- ValueChangedEventManager.cs
- ListViewVirtualItemsSelectionRangeChangedEvent.cs
- URLMembershipCondition.cs
- XmlSchemaException.cs
- SHA256.cs
- ValuePatternIdentifiers.cs
- SamlAudienceRestrictionCondition.cs
- XmlExpressionDumper.cs
- IconConverter.cs
- ConditionalExpression.cs
- OSFeature.cs
- ArcSegment.cs
- FieldToken.cs
- Variant.cs
- CleanUpVirtualizedItemEventArgs.cs
- SqlTypesSchemaImporter.cs
- TextDataBindingHandler.cs
- FocusChangedEventArgs.cs
- ContextStaticAttribute.cs
- ParseHttpDate.cs
- Int32.cs
- SaveFileDialog.cs
- RelationshipWrapper.cs
- Viewport3DVisual.cs
- CmsUtils.cs
- EnumerationRangeValidationUtil.cs
- oledbmetadatacollectionnames.cs
- EventHandlerList.cs
- Compiler.cs
- NumberFunctions.cs
- SemanticBasicElement.cs
- ChtmlTextBoxAdapter.cs
- ArgumentOutOfRangeException.cs
- DeflateStreamAsyncResult.cs
- SqlConnectionHelper.cs
- Int32RectValueSerializer.cs
- PropertyEntry.cs
- VerificationAttribute.cs
- WebBrowserNavigatedEventHandler.cs
- Directory.cs
- D3DImage.cs
- MarkerProperties.cs
- ViewBase.cs
- KeyGestureValueSerializer.cs
- TaskHelper.cs
- PackageDigitalSignatureManager.cs
- DrawingCollection.cs
- FunctionImportMapping.ReturnTypeRenameMapping.cs
- HttpListener.cs
- DataServiceException.cs
- _LocalDataStoreMgr.cs
- MethodAccessException.cs
- validation.cs
- Journal.cs
- CollectionViewProxy.cs
- AbstractSvcMapFileLoader.cs
- ApplicationDirectoryMembershipCondition.cs
- DataObjectAttribute.cs
- MoveSizeWinEventHandler.cs