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
- XmlJsonWriter.cs
- UTF8Encoding.cs
- LoginNameDesigner.cs
- XmlSchemaGroup.cs
- MarkerProperties.cs
- OracleDateTime.cs
- DBCommand.cs
- wgx_exports.cs
- EntityParameterCollection.cs
- AsymmetricKeyExchangeDeformatter.cs
- WorkerRequest.cs
- SortedSet.cs
- DateTimeUtil.cs
- ActivationServices.cs
- SocketCache.cs
- ObjectView.cs
- XmlMtomReader.cs
- Attributes.cs
- EdmScalarPropertyAttribute.cs
- DispatchOperationRuntime.cs
- Pair.cs
- MexHttpsBindingElement.cs
- TabControl.cs
- ObjectDataSourceView.cs
- SafeRightsManagementHandle.cs
- ThumbAutomationPeer.cs
- EnumMemberAttribute.cs
- ListViewTableRow.cs
- TypeSystem.cs
- CachedPathData.cs
- TextBox.cs
- RSAOAEPKeyExchangeFormatter.cs
- ProcessInputEventArgs.cs
- ApplicationId.cs
- OdbcEnvironment.cs
- ImageConverter.cs
- Transform3DCollection.cs
- IntranetCredentialPolicy.cs
- DbProviderConfigurationHandler.cs
- CustomServiceCredentials.cs
- ExpressionEvaluator.cs
- X509KeyIdentifierClauseType.cs
- ImageCollectionCodeDomSerializer.cs
- HasCopySemanticsAttribute.cs
- ListViewItem.cs
- DbConnectionPoolGroup.cs
- DefaultAsyncDataDispatcher.cs
- GroupBox.cs
- InputLanguageSource.cs
- ClientConfigurationSystem.cs
- SqlTriggerContext.cs
- EdmRelationshipRoleAttribute.cs
- RenderingBiasValidation.cs
- MemberRelationshipService.cs
- ServiceOperation.cs
- QilPatternVisitor.cs
- AppSettingsExpressionBuilder.cs
- ZipPackage.cs
- MetadataAssemblyHelper.cs
- GridViewDeleteEventArgs.cs
- ToolBar.cs
- SimpleHandlerBuildProvider.cs
- SymbolUsageManager.cs
- QueryStringHandler.cs
- PrimitiveXmlSerializers.cs
- SqlSelectStatement.cs
- CheckBoxPopupAdapter.cs
- BaseTransportHeaders.cs
- InvalidateEvent.cs
- NativeMethods.cs
- AnnotationResource.cs
- Profiler.cs
- ADConnectionHelper.cs
- PermissionSetTriple.cs
- ConsoleKeyInfo.cs
- DataGridViewColumnEventArgs.cs
- MenuItem.cs
- FreezableDefaultValueFactory.cs
- DeferredRunTextReference.cs
- ConfigurationProperty.cs
- MimeObjectFactory.cs
- GridViewColumnHeaderAutomationPeer.cs
- ObjectManager.cs
- FaultContractAttribute.cs
- SystemTcpConnection.cs
- VectorValueSerializer.cs
- NativeMethodsCLR.cs
- RowUpdatingEventArgs.cs
- DomainUpDown.cs
- EntityDesignerDataSourceView.cs
- WmlLiteralTextAdapter.cs
- CopyOnWriteList.cs
- StreamSecurityUpgradeInitiatorBase.cs
- NameValueConfigurationElement.cs
- TraceHwndHost.cs
- EditorPartCollection.cs
- UiaCoreProviderApi.cs
- TableDetailsRow.cs
- FileUpload.cs
- BaseValidator.cs