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
- ArraySet.cs
- ValidationRule.cs
- ExpressionCopier.cs
- DynamicValidator.cs
- SoapFault.cs
- PackWebResponse.cs
- DynamicMethod.cs
- SqlCacheDependencyDatabase.cs
- XmlCharType.cs
- MSAANativeProvider.cs
- LicenseProviderAttribute.cs
- Transform3DCollection.cs
- DataRowCollection.cs
- TextBox.cs
- DesignerValidationSummaryAdapter.cs
- InkCanvasAutomationPeer.cs
- BmpBitmapEncoder.cs
- JournalEntryStack.cs
- ProgressBarAutomationPeer.cs
- ComboBoxAutomationPeer.cs
- ButtonAutomationPeer.cs
- UInt64Converter.cs
- ResXBuildProvider.cs
- TextMarkerSource.cs
- Int64Storage.cs
- AccessibilityHelperForXpWin2k3.cs
- FamilyCollection.cs
- WinFormsUtils.cs
- PropertyMetadata.cs
- FileClassifier.cs
- WindowsTitleBar.cs
- sitestring.cs
- MimeObjectFactory.cs
- CompressionTransform.cs
- EntityWrapper.cs
- DbDeleteCommandTree.cs
- RenderOptions.cs
- IgnoreSectionHandler.cs
- LinqDataSourceValidationException.cs
- SimpleFieldTemplateUserControl.cs
- UnsafeNativeMethods.cs
- WpfGeneratedKnownTypes.cs
- SignatureDescription.cs
- FlowLayoutPanelDesigner.cs
- httpapplicationstate.cs
- RSAPKCS1KeyExchangeFormatter.cs
- XmlDownloadManager.cs
- AdornerLayer.cs
- MemberListBinding.cs
- FrameworkTemplate.cs
- _AutoWebProxyScriptWrapper.cs
- XmlCharacterData.cs
- CustomBinding.cs
- SafeWaitHandle.cs
- OciLobLocator.cs
- CultureTable.cs
- TraceHandler.cs
- OpenTypeCommon.cs
- Operand.cs
- DateTimeFormat.cs
- PropertyGrid.cs
- ProfessionalColorTable.cs
- ParserOptions.cs
- OleDbConnection.cs
- ComponentCommands.cs
- ProfessionalColors.cs
- WebDescriptionAttribute.cs
- ToolStripItemRenderEventArgs.cs
- BinaryFormatter.cs
- DesignerDataSourceView.cs
- XmlStreamStore.cs
- ImageUrlEditor.cs
- TextCompositionEventArgs.cs
- InputElement.cs
- _ListenerAsyncResult.cs
- CodeBlockBuilder.cs
- ConnectionStringsSection.cs
- ScopelessEnumAttribute.cs
- Visual3D.cs
- ScriptingWebServicesSectionGroup.cs
- ToolboxItem.cs
- StructuralCache.cs
- SelectorAutomationPeer.cs
- AssemblyBuilder.cs
- UICuesEvent.cs
- ExpressionParser.cs
- ConsumerConnectionPoint.cs
- RuntimeConfig.cs
- Byte.cs
- MulticastOption.cs
- ChannelReliableSession.cs
- BasicHttpBinding.cs
- SiteMembershipCondition.cs
- CompleteWizardStep.cs
- WizardForm.cs
- ResourceDescriptionAttribute.cs
- WindowsGraphics.cs
- RecordBuilder.cs
- LinqDataSourceEditData.cs
- KnownTypesProvider.cs