Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / 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; } } }
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- StorageEntityTypeMapping.cs
- CodeFieldReferenceExpression.cs
- ConditionValidator.cs
- SQLGuidStorage.cs
- EmptyQuery.cs
- SpecularMaterial.cs
- SqlDataSourceQueryConverter.cs
- StrongNameMembershipCondition.cs
- Int32Converter.cs
- SwitchAttribute.cs
- PathFigure.cs
- WebExceptionStatus.cs
- ParameterRetriever.cs
- ExtensionSurface.cs
- RoleManagerModule.cs
- ComponentResourceKey.cs
- DataGridSortCommandEventArgs.cs
- MappingException.cs
- ScrollItemPatternIdentifiers.cs
- PageBreakRecord.cs
- MemberPathMap.cs
- AppModelKnownContentFactory.cs
- HMACRIPEMD160.cs
- MenuEventArgs.cs
- SemaphoreSecurity.cs
- ControlUtil.cs
- securestring.cs
- XmlDataProvider.cs
- XmlSchemaObject.cs
- X509Utils.cs
- DesignerWebPartChrome.cs
- PersonalizationProvider.cs
- PersonalizationStateInfo.cs
- EmptyCollection.cs
- ProcessHostConfigUtils.cs
- FormatConvertedBitmap.cs
- DataGridColumnReorderingEventArgs.cs
- mansign.cs
- filewebresponse.cs
- XmlILAnnotation.cs
- TreeWalker.cs
- StrokeCollection2.cs
- COM2Enum.cs
- ZipIOCentralDirectoryBlock.cs
- XmlILIndex.cs
- AppDomainFactory.cs
- DBParameter.cs
- TextBounds.cs
- MobileControl.cs
- Validator.cs
- DetailsViewInsertEventArgs.cs
- ITextView.cs
- RoleManagerModule.cs
- ActivityCodeDomSerializer.cs
- GlyphingCache.cs
- RoutedEvent.cs
- CqlParser.cs
- TerminatorSinks.cs
- SubstitutionDesigner.cs
- SQLBinary.cs
- BinaryFormatter.cs
- DiagnosticTraceSource.cs
- TemplateField.cs
- TableItemPatternIdentifiers.cs
- StylusDownEventArgs.cs
- StylusPointPropertyInfoDefaults.cs
- PerformanceCounterCategory.cs
- BoolExpressionVisitors.cs
- SoapAttributeAttribute.cs
- ToolBar.cs
- ISFClipboardData.cs
- DataKeyArray.cs
- wgx_exports.cs
- ContextStack.cs
- MemberRelationshipService.cs
- DbBuffer.cs
- cookieexception.cs
- ControlTemplate.cs
- SegmentInfo.cs
- XmlAttributeOverrides.cs
- MethodBuilderInstantiation.cs
- DelegateBodyWriter.cs
- AesManaged.cs
- ExpressionBuilder.cs
- ProviderCollection.cs
- DesignerEventService.cs
- FrameworkTemplate.cs
- UInt16.cs
- ObjectListFieldCollection.cs
- PaperSource.cs
- ProgressBar.cs
- EventData.cs
- RoutingBehavior.cs
- CFGGrammar.cs
- XmlSchemaSet.cs
- JsonSerializer.cs
- DataGridViewColumnCollectionDialog.cs
- NeutralResourcesLanguageAttribute.cs
- GlobalProxySelection.cs
- WindowsTitleBar.cs