Code:
/ FX-1434 / FX-1434 / 1.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
- PreApplicationStartMethodAttribute.cs
- Transform.cs
- InvalidPrinterException.cs
- KeyGesture.cs
- PointIndependentAnimationStorage.cs
- FileSystemWatcher.cs
- PriorityBindingExpression.cs
- ConfigurationProperty.cs
- SmiContextFactory.cs
- DynamicPhysicalDiscoSearcher.cs
- PageRequestManager.cs
- AssemblyInfo.cs
- InvalidProgramException.cs
- XmlIlTypeHelper.cs
- XmlComplianceUtil.cs
- CurrentChangedEventManager.cs
- StrongNameMembershipCondition.cs
- SerialPort.cs
- RelationshipFixer.cs
- CompositeActivityMarkupSerializer.cs
- DataFormats.cs
- XmlUrlResolver.cs
- CompoundFileDeflateTransform.cs
- Compiler.cs
- RoleManagerEventArgs.cs
- CallbackException.cs
- RequiredAttributeAttribute.cs
- Typeface.cs
- ClientBuildManager.cs
- SpotLight.cs
- ScrollPattern.cs
- METAHEADER.cs
- XmlDataCollection.cs
- BindMarkupExtensionSerializer.cs
- SqlCommandSet.cs
- PartialCachingAttribute.cs
- XmlValueConverter.cs
- ObjectSet.cs
- ProtocolsSection.cs
- NullReferenceException.cs
- PolyQuadraticBezierSegment.cs
- TypeInfo.cs
- ListDataHelper.cs
- TagPrefixInfo.cs
- Bold.cs
- MemoryRecordBuffer.cs
- WebControl.cs
- EventRouteFactory.cs
- VirtualDirectoryMappingCollection.cs
- PageContentAsyncResult.cs
- Pens.cs
- DataGrid.cs
- Listener.cs
- CodePageUtils.cs
- Schema.cs
- ReadOnlyObservableCollection.cs
- OptimizedTemplateContentHelper.cs
- DataPager.cs
- Resources.Designer.cs
- CompositeScriptReference.cs
- SpnegoTokenProvider.cs
- FramingDecoders.cs
- DefaultHttpHandler.cs
- XmlWriterDelegator.cs
- ApplyTemplatesAction.cs
- InlineCollection.cs
- LoginName.cs
- InvalidEnumArgumentException.cs
- VersionPair.cs
- TrustLevelCollection.cs
- VariableReference.cs
- WrappedIUnknown.cs
- ClonableStack.cs
- NamespaceListProperty.cs
- PageWrapper.cs
- FaultReason.cs
- CodeMethodReturnStatement.cs
- WindowsAuthenticationModule.cs
- CodeParameterDeclarationExpressionCollection.cs
- RealizationContext.cs
- AtomEntry.cs
- LocalizedNameDescriptionPair.cs
- UndoManager.cs
- ResourcePermissionBaseEntry.cs
- RenderCapability.cs
- SimpleNameService.cs
- Vector3DConverter.cs
- ClipboardProcessor.cs
- TdsParserStaticMethods.cs
- ServerIdentity.cs
- DataBoundControlAdapter.cs
- DataBinder.cs
- NamespaceExpr.cs
- ConstructorBuilder.cs
- DesignTimeParseData.cs
- MultipleViewProviderWrapper.cs
- ScrollItemProviderWrapper.cs
- TaskResultSetter.cs
- MemberExpression.cs
- BindingValueChangedEventArgs.cs