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
- SubMenuStyleCollection.cs
- OdbcPermission.cs
- SectionVisual.cs
- ApplicationDirectory.cs
- FileSystemWatcher.cs
- XhtmlCssHandler.cs
- SafeRightsManagementPubHandle.cs
- InteropBitmapSource.cs
- UnsafeNativeMethods.cs
- SafeFileMapViewHandle.cs
- TextOptionsInternal.cs
- NullableFloatAverageAggregationOperator.cs
- Panel.cs
- CorrelationExtension.cs
- TimeEnumHelper.cs
- DrawingAttributesDefaultValueFactory.cs
- ComponentRenameEvent.cs
- XmlElementAttributes.cs
- EndpointIdentityConverter.cs
- RuntimeEnvironment.cs
- PrefixQName.cs
- FileChangesMonitor.cs
- Executor.cs
- Int32CollectionConverter.cs
- SectionInput.cs
- Perspective.cs
- HMACSHA512.cs
- MailWriter.cs
- XmlWrappingReader.cs
- GridViewDeleteEventArgs.cs
- AutomationPatternInfo.cs
- Span.cs
- MemberExpression.cs
- XamlBrushSerializer.cs
- RefType.cs
- OnOperation.cs
- FileBasedResourceGroveler.cs
- ConfigurationElementCollection.cs
- ImageSourceValueSerializer.cs
- CryptoKeySecurity.cs
- SecurityUtils.cs
- MouseEvent.cs
- ToolboxItemFilterAttribute.cs
- WebPartActionVerb.cs
- PageClientProxyGenerator.cs
- StickyNote.cs
- Typeface.cs
- TreeNodeCollectionEditorDialog.cs
- FileDetails.cs
- HttpRequestCacheValidator.cs
- MultitargetUtil.cs
- SystemWebCachingSectionGroup.cs
- AnnotationService.cs
- UnsafeNativeMethods.cs
- ExceptionValidationRule.cs
- LogWriteRestartAreaState.cs
- PipelineModuleStepContainer.cs
- OutOfProcStateClientManager.cs
- Span.cs
- Registry.cs
- OleServicesContext.cs
- TagElement.cs
- EqualityComparer.cs
- ExpressionConverter.cs
- translator.cs
- FontConverter.cs
- listitem.cs
- SqlDataAdapter.cs
- EastAsianLunisolarCalendar.cs
- XmlSchemas.cs
- DirtyTextRange.cs
- XamlGridLengthSerializer.cs
- MouseBinding.cs
- MimeObjectFactory.cs
- Misc.cs
- ResXResourceSet.cs
- XmlQualifiedName.cs
- AnnotationAdorner.cs
- ComPlusAuthorization.cs
- Ppl.cs
- ToolboxControl.cs
- TypedTableGenerator.cs
- TextEncodedRawTextWriter.cs
- Vector3D.cs
- DesignerView.cs
- LambdaCompiler.Logical.cs
- CodeSubDirectoriesCollection.cs
- DataSvcMapFileSerializer.cs
- ReferentialConstraint.cs
- DbConnectionInternal.cs
- DispatchChannelSink.cs
- HttpsHostedTransportConfiguration.cs
- ShaderRenderModeValidation.cs
- StickyNote.cs
- TableLayoutSettingsTypeConverter.cs
- XmlComplianceUtil.cs
- CommandValueSerializer.cs
- WebPartVerbsEventArgs.cs
- Rect.cs
- oledbmetadatacollectionnames.cs