Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / CompMod / Microsoft / Win32 / SafeHandles / SafeLibraryHandle.cs / 1305376 / SafeLibraryHandle.cs
// ==++==
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
/*============================================================
**
** Class: SafeLibraryHandle
**
** Author: David Gutierrez ([....])
**
** A wrapper for a library handles
**
** Date: July 8, 2002
**
===========================================================*/
using System;
using System.Security;
using System.Security.Permissions;
using System.Runtime.InteropServices;
using System.Runtime.CompilerServices;
using Microsoft.Win32;
using Microsoft.Win32.SafeHandles;
using System.Runtime.ConstrainedExecution;
using System.Runtime.Versioning;
namespace Microsoft.Win32.SafeHandles {
[HostProtectionAttribute(MayLeakOnAbort = true)]
[SuppressUnmanagedCodeSecurityAttribute]
internal sealed class SafeLibraryHandle : SafeHandleZeroOrMinusOneIsInvalid
{
// Note that LoadLibraryEx returns 0 on failure
internal SafeLibraryHandle() : base(true) {}
[DllImport(ExternDll.Kernel32, CharSet=System.Runtime.InteropServices.CharSet.Unicode, SetLastError=true)]
[ResourceExposure(ResourceScope.Machine)]
internal static extern SafeLibraryHandle LoadLibraryEx(string libFilename, IntPtr reserved, int flags);
[DllImport(ExternDll.Kernel32, CharSet=System.Runtime.InteropServices.CharSet.Unicode)]
[ResourceExposure(ResourceScope.None)]
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
private static extern bool FreeLibrary(IntPtr hModule);
override protected bool ReleaseHandle()
{
return FreeLibrary(handle);
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// ==++==
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
/*============================================================
**
** Class: SafeLibraryHandle
**
** Author: David Gutierrez ([....])
**
** A wrapper for a library handles
**
** Date: July 8, 2002
**
===========================================================*/
using System;
using System.Security;
using System.Security.Permissions;
using System.Runtime.InteropServices;
using System.Runtime.CompilerServices;
using Microsoft.Win32;
using Microsoft.Win32.SafeHandles;
using System.Runtime.ConstrainedExecution;
using System.Runtime.Versioning;
namespace Microsoft.Win32.SafeHandles {
[HostProtectionAttribute(MayLeakOnAbort = true)]
[SuppressUnmanagedCodeSecurityAttribute]
internal sealed class SafeLibraryHandle : SafeHandleZeroOrMinusOneIsInvalid
{
// Note that LoadLibraryEx returns 0 on failure
internal SafeLibraryHandle() : base(true) {}
[DllImport(ExternDll.Kernel32, CharSet=System.Runtime.InteropServices.CharSet.Unicode, SetLastError=true)]
[ResourceExposure(ResourceScope.Machine)]
internal static extern SafeLibraryHandle LoadLibraryEx(string libFilename, IntPtr reserved, int flags);
[DllImport(ExternDll.Kernel32, CharSet=System.Runtime.InteropServices.CharSet.Unicode)]
[ResourceExposure(ResourceScope.None)]
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
private static extern bool FreeLibrary(IntPtr hModule);
override protected bool ReleaseHandle()
{
return FreeLibrary(handle);
}
}
}
// 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
- ConfigXmlElement.cs
- DbDataReader.cs
- NavigationProperty.cs
- Timer.cs
- OleDbRowUpdatingEvent.cs
- ResourceDescriptionAttribute.cs
- SqlProviderUtilities.cs
- MergeFailedEvent.cs
- Buffer.cs
- ShapingEngine.cs
- PartialTrustValidationBehavior.cs
- WindowsStatic.cs
- MetadataArtifactLoaderResource.cs
- Transform.cs
- CustomValidator.cs
- IPCCacheManager.cs
- BaseTemplateCodeDomTreeGenerator.cs
- Bezier.cs
- SingleConverter.cs
- RegexInterpreter.cs
- ColorInterpolationModeValidation.cs
- Token.cs
- EventListenerClientSide.cs
- TransferRequestHandler.cs
- OuterGlowBitmapEffect.cs
- FileIOPermission.cs
- Grid.cs
- PrivateUnsafeNativeCompoundFileMethods.cs
- OdbcInfoMessageEvent.cs
- Rect3DConverter.cs
- QilName.cs
- FormParameter.cs
- UpdateRecord.cs
- JournalEntryListConverter.cs
- DateTime.cs
- Binding.cs
- TextCharacters.cs
- dbenumerator.cs
- ServiceChannelProxy.cs
- UInt32.cs
- SecureConversationSecurityTokenParameters.cs
- PublisherIdentityPermission.cs
- JournalEntry.cs
- WsdlBuildProvider.cs
- OrderedDictionaryStateHelper.cs
- XmlMtomReader.cs
- AutomationIdentifierGuids.cs
- Codec.cs
- oledbmetadatacolumnnames.cs
- GregorianCalendar.cs
- Separator.cs
- InstanceKeyCompleteException.cs
- ModulesEntry.cs
- LoginCancelEventArgs.cs
- ZipIORawDataFileBlock.cs
- ProgressBar.cs
- SurrogateSelector.cs
- TimeZone.cs
- XmlStreamStore.cs
- WebDisplayNameAttribute.cs
- ColumnHeaderConverter.cs
- TextReturnReader.cs
- PageParserFilter.cs
- Empty.cs
- SqlIdentifier.cs
- ScrollViewerAutomationPeer.cs
- ProgressChangedEventArgs.cs
- RepeaterDataBoundAdapter.cs
- AuthenticationService.cs
- TreeNodeConverter.cs
- _AutoWebProxyScriptHelper.cs
- SafeNativeMethods.cs
- OutOfProcStateClientManager.cs
- ConfigXmlCDataSection.cs
- UnSafeCharBuffer.cs
- ProcessHostMapPath.cs
- StorageComplexTypeMapping.cs
- XmlNotation.cs
- CryptoProvider.cs
- OpenFileDialog.cs
- SqlInternalConnectionSmi.cs
- TrimSurroundingWhitespaceAttribute.cs
- LicenseException.cs
- controlskin.cs
- HttpProfileBase.cs
- UnmanagedHandle.cs
- X509CertificateChain.cs
- DefaultHttpHandler.cs
- SendKeys.cs
- RoleManagerEventArgs.cs
- RadioButton.cs
- SettingsPropertyWrongTypeException.cs
- InstanceStore.cs
- OfTypeExpression.cs
- XmlBinaryReader.cs
- TextBounds.cs
- DataGridAddNewRow.cs
- ResourceDescriptionAttribute.cs
- PropertySet.cs
- ThicknessAnimationBase.cs