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
- TraceHandler.cs
- FormDesigner.cs
- RangeValuePattern.cs
- Ref.cs
- MetadataPropertyAttribute.cs
- DynamicPhysicalDiscoSearcher.cs
- ValueUnavailableException.cs
- CanExecuteRoutedEventArgs.cs
- PostBackOptions.cs
- PhysicalOps.cs
- UpdatePanel.cs
- MinMaxParagraphWidth.cs
- SoapInteropTypes.cs
- FocusChangedEventArgs.cs
- ControlCachePolicy.cs
- UserValidatedEventArgs.cs
- WebServiceHost.cs
- DatePickerDateValidationErrorEventArgs.cs
- CurrentTimeZone.cs
- ScriptRef.cs
- JapaneseCalendar.cs
- ConnectionPointCookie.cs
- DecimalConstantAttribute.cs
- CompensatableTransactionScopeActivity.cs
- ClickablePoint.cs
- PrivilegedConfigurationManager.cs
- COM2IDispatchConverter.cs
- DebuggerAttributes.cs
- FirstQueryOperator.cs
- AttachedAnnotation.cs
- GridViewRowEventArgs.cs
- SerializableAttribute.cs
- InstanceOwnerQueryResult.cs
- EntityClassGenerator.cs
- DeviceSpecificDialogCachedState.cs
- WhitespaceRuleLookup.cs
- WithStatement.cs
- NamespaceInfo.cs
- XPathPatternParser.cs
- smtppermission.cs
- RectConverter.cs
- RecommendedAsConfigurableAttribute.cs
- PropertyPathWorker.cs
- OLEDB_Enum.cs
- PageRanges.cs
- MsmqDecodeHelper.cs
- SimpleHandlerBuildProvider.cs
- TextControl.cs
- FilteredSchemaElementLookUpTable.cs
- FlowDocumentReader.cs
- SoapSchemaExporter.cs
- Logging.cs
- WindowPattern.cs
- DynamicDiscoveryDocument.cs
- OutputCacheProfile.cs
- XPathSelfQuery.cs
- DependencyObjectValidator.cs
- FlowLayoutPanel.cs
- Selection.cs
- MouseGesture.cs
- LoginView.cs
- EntityCommandExecutionException.cs
- Brushes.cs
- HScrollBar.cs
- safelink.cs
- FragmentNavigationEventArgs.cs
- TemplateFactory.cs
- RequestCache.cs
- EdmFunction.cs
- TraceContext.cs
- Descriptor.cs
- DesignerMetadata.cs
- DependencyObjectCodeDomSerializer.cs
- DrawTreeNodeEventArgs.cs
- NamespaceList.cs
- CodeIdentifiers.cs
- IconBitmapDecoder.cs
- LayoutManager.cs
- ProfileModule.cs
- ListBoxAutomationPeer.cs
- XmlnsCache.cs
- HttpsChannelFactory.cs
- QueueProcessor.cs
- TraceLevelStore.cs
- HttpApplicationStateWrapper.cs
- InputMethodStateChangeEventArgs.cs
- TreeNodeStyle.cs
- IgnorePropertiesAttribute.cs
- SystemIPv6InterfaceProperties.cs
- ItemMap.cs
- Comparer.cs
- HitTestDrawingContextWalker.cs
- Constraint.cs
- AttributeSetAction.cs
- SystemSounds.cs
- ContentType.cs
- ClientSettings.cs
- InternalReceiveMessage.cs
- NativeMethods.cs
- AdPostCacheSubstitution.cs