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
- X509Utils.cs
- PersonalizationStateInfoCollection.cs
- InstanceDescriptor.cs
- BitmapFrameEncode.cs
- ListBoxItem.cs
- MenuStrip.cs
- ImageIndexEditor.cs
- MetadataWorkspace.cs
- SectionRecord.cs
- DomNameTable.cs
- DataServiceKeyAttribute.cs
- ConvertBinder.cs
- EventDescriptor.cs
- TypeValidationEventArgs.cs
- Schema.cs
- SqlLiftWhereClauses.cs
- SecurityAppliedMessage.cs
- NameTable.cs
- SafeSecurityHandles.cs
- HighlightComponent.cs
- CngKey.cs
- NameHandler.cs
- IgnoreSectionHandler.cs
- ProtocolsConfigurationHandler.cs
- DesignerCategoryAttribute.cs
- Perspective.cs
- AlternateViewCollection.cs
- ClickablePoint.cs
- GraphicsState.cs
- BaseDataBoundControl.cs
- XmlSchemaCollection.cs
- CharacterString.cs
- DocumentViewerBase.cs
- XamlStream.cs
- XmlSchemaAttributeGroupRef.cs
- XPathChildIterator.cs
- TextTreeDeleteContentUndoUnit.cs
- SettingsAttributeDictionary.cs
- RichTextBox.cs
- ClipboardData.cs
- _ChunkParse.cs
- ObjectConverter.cs
- SharedStream.cs
- SqlLiftIndependentRowExpressions.cs
- Debug.cs
- HttpConfigurationSystem.cs
- ValidatingReaderNodeData.cs
- Int32CollectionValueSerializer.cs
- XMLSyntaxException.cs
- PersistenceMetadataNamespace.cs
- PointLight.cs
- GridViewColumnCollection.cs
- FileDialogCustomPlacesCollection.cs
- DetailsViewDeletedEventArgs.cs
- MiniModule.cs
- unsafeIndexingFilterStream.cs
- XmlSchemaAttributeGroupRef.cs
- RemotingException.cs
- SamlAssertion.cs
- WorkflowOwnerAsyncResult.cs
- XmlUTF8TextWriter.cs
- ExpressionPrefixAttribute.cs
- PeerCredential.cs
- OdbcReferenceCollection.cs
- WindowsRebar.cs
- PageHandlerFactory.cs
- TextWriterTraceListener.cs
- securitycriticaldata.cs
- CellParaClient.cs
- PrePrepareMethodAttribute.cs
- Focus.cs
- RadioButtonRenderer.cs
- UnmanagedHandle.cs
- CodeAccessSecurityEngine.cs
- EncoderParameters.cs
- Matrix.cs
- AspNetHostingPermission.cs
- QuaternionRotation3D.cs
- SourceElementsCollection.cs
- DbParameterHelper.cs
- SettingsPropertyNotFoundException.cs
- CustomLineCap.cs
- XmlTextReaderImplHelpers.cs
- ServiceContractAttribute.cs
- RemoteWebConfigurationHostStream.cs
- BaseDataListDesigner.cs
- base64Transforms.cs
- PostBackTrigger.cs
- ToolStripItemImageRenderEventArgs.cs
- ValueSerializerAttribute.cs
- SqlDelegatedTransaction.cs
- EntityDataSource.cs
- SaveWorkflowCommand.cs
- FreezableDefaultValueFactory.cs
- ByteStreamGeometryContext.cs
- RangeValuePattern.cs
- GeometryGroup.cs
- RequiredFieldValidator.cs
- XmlSchemaDatatype.cs
- DBSqlParserTable.cs