Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / ndp / clr / src / BCL / Microsoft / Win32 / SafeHandles / SafeRegistryHandle.cs / 1 / SafeRegistryHandle.cs
// ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== /*============================================================ ** ** Class: SafeRegistryHandle ** ** ** A wrapper for registry handles ** ** ===========================================================*/ using System; using System.Security; using System.Security.Permissions; using System.Runtime.InteropServices; using System.Runtime.CompilerServices; using System.Runtime.ConstrainedExecution; namespace Microsoft.Win32.SafeHandles { internal sealed class SafeRegistryHandle : SafeHandleZeroOrMinusOneIsInvalid { // Note: Officially -1 is the recommended invalid handle value for // registry keys, but we'll also get back 0 as an invalid handle from // RegOpenKeyEx. [SecurityPermission(SecurityAction.LinkDemand, UnmanagedCode=true)] internal SafeRegistryHandle() : base(true) {} [SecurityPermission(SecurityAction.LinkDemand, UnmanagedCode=true)] internal SafeRegistryHandle(IntPtr preexistingHandle, bool ownsHandle) : base(ownsHandle) { SetHandle(preexistingHandle); } [DllImport(Win32Native.ADVAPI32), SuppressUnmanagedCodeSecurity, ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)] private static extern int RegCloseKey(IntPtr hKey); override protected bool ReleaseHandle() { // Returns a Win32 error code, 0 for success int r = RegCloseKey(handle); return r == 0; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== /*============================================================ ** ** Class: SafeRegistryHandle ** ** ** A wrapper for registry handles ** ** ===========================================================*/ using System; using System.Security; using System.Security.Permissions; using System.Runtime.InteropServices; using System.Runtime.CompilerServices; using System.Runtime.ConstrainedExecution; namespace Microsoft.Win32.SafeHandles { internal sealed class SafeRegistryHandle : SafeHandleZeroOrMinusOneIsInvalid { // Note: Officially -1 is the recommended invalid handle value for // registry keys, but we'll also get back 0 as an invalid handle from // RegOpenKeyEx. [SecurityPermission(SecurityAction.LinkDemand, UnmanagedCode=true)] internal SafeRegistryHandle() : base(true) {} [SecurityPermission(SecurityAction.LinkDemand, UnmanagedCode=true)] internal SafeRegistryHandle(IntPtr preexistingHandle, bool ownsHandle) : base(ownsHandle) { SetHandle(preexistingHandle); } [DllImport(Win32Native.ADVAPI32), SuppressUnmanagedCodeSecurity, ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)] private static extern int RegCloseKey(IntPtr hKey); override protected bool ReleaseHandle() { // Returns a Win32 error code, 0 for success int r = RegCloseKey(handle); return r == 0; } } } // 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
- X509Certificate2.cs
- TimeSpanStorage.cs
- CapabilitiesSection.cs
- Enumerable.cs
- ConstraintConverter.cs
- DragStartedEventArgs.cs
- SemanticResolver.cs
- TypeConverters.cs
- ToolStripContainer.cs
- InputScopeNameConverter.cs
- AttachedPropertyBrowsableAttribute.cs
- SqlDuplicator.cs
- COM2ExtendedUITypeEditor.cs
- ButtonStandardAdapter.cs
- SpeechUI.cs
- FontNamesConverter.cs
- SchemaTypeEmitter.cs
- HwndSource.cs
- PathSegmentCollection.cs
- PropertyItemInternal.cs
- ImportContext.cs
- GeometryHitTestResult.cs
- EndpointFilterProvider.cs
- XmlReader.cs
- CharAnimationUsingKeyFrames.cs
- TypedReference.cs
- SrgsElementFactoryCompiler.cs
- VScrollProperties.cs
- TaiwanLunisolarCalendar.cs
- CodeSubDirectory.cs
- AsyncPostBackTrigger.cs
- PackageRelationshipSelector.cs
- BackStopAuthenticationModule.cs
- Compilation.cs
- HttpStreams.cs
- MenuItemAutomationPeer.cs
- SoapIgnoreAttribute.cs
- WebBrowsableAttribute.cs
- AssemblyNameProxy.cs
- HttpHandlerAction.cs
- TableHeaderCell.cs
- SchemaCompiler.cs
- ClientUIRequest.cs
- Bitmap.cs
- WindowsTokenRoleProvider.cs
- WindowsRichEditRange.cs
- EndOfStreamException.cs
- RIPEMD160Managed.cs
- Stream.cs
- DesignerLoader.cs
- ScriptResourceAttribute.cs
- Binding.cs
- ParserContext.cs
- HttpConfigurationContext.cs
- CompilerGlobalScopeAttribute.cs
- ProtectedConfiguration.cs
- DSASignatureDeformatter.cs
- SlipBehavior.cs
- UnmanagedBitmapWrapper.cs
- ObjectDataSourceView.cs
- HtmlTableCell.cs
- OracleTimeSpan.cs
- QueuePropertyVariants.cs
- Overlapped.cs
- XXXInfos.cs
- ISSmlParser.cs
- RectAnimationClockResource.cs
- RotateTransform3D.cs
- RawStylusInputCustomData.cs
- ListView.cs
- AutoScrollExpandMessageFilter.cs
- DataGridViewRowContextMenuStripNeededEventArgs.cs
- ConfigXmlCDataSection.cs
- ConfigsHelper.cs
- ConnectionString.cs
- AppDomainProtocolHandler.cs
- Win32MouseDevice.cs
- TemplateControl.cs
- AttributeParameterInfo.cs
- PackageRelationshipSelector.cs
- NetDataContractSerializer.cs
- ObjectViewEntityCollectionData.cs
- ListViewCancelEventArgs.cs
- WebReferencesBuildProvider.cs
- DataGridViewAutoSizeModeEventArgs.cs
- BuildTopDownAttribute.cs
- SelectionWordBreaker.cs
- Semaphore.cs
- FrameworkElementFactoryMarkupObject.cs
- NavigationWindowAutomationPeer.cs
- HelpInfo.cs
- SchemaCollectionCompiler.cs
- FeatureSupport.cs
- SecurityContext.cs
- AccessibleObject.cs
- RewritingProcessor.cs
- DetailsViewModeEventArgs.cs
- mactripleDES.cs
- PropertyManager.cs
- URLIdentityPermission.cs