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
- ToolStripDropDownMenu.cs
- CFGGrammar.cs
- EditorZone.cs
- DNS.cs
- SslStreamSecurityUpgradeProvider.cs
- DataColumnMapping.cs
- SafeArrayRankMismatchException.cs
- ConnectionProviderAttribute.cs
- MulticastOption.cs
- PropagatorResult.cs
- MethodImplAttribute.cs
- HttpRawResponse.cs
- HyperLinkField.cs
- ConsoleTraceListener.cs
- DataGridViewSortCompareEventArgs.cs
- OutputCacheProfileCollection.cs
- GeneralTransformGroup.cs
- BaseParaClient.cs
- WebPartDisplayModeCancelEventArgs.cs
- DetailsViewInsertedEventArgs.cs
- NotifyInputEventArgs.cs
- SiteOfOriginPart.cs
- WebConfigurationHostFileChange.cs
- AnnotationResourceCollection.cs
- TreeViewImageIndexConverter.cs
- SliderAutomationPeer.cs
- FixedTextSelectionProcessor.cs
- LoginView.cs
- ConfigXmlDocument.cs
- StorageEntitySetMapping.cs
- PenCursorManager.cs
- AutoGeneratedFieldProperties.cs
- PerformanceCounterCategory.cs
- NullableBoolConverter.cs
- WebControl.cs
- ControlPager.cs
- EditorPart.cs
- SessionConnectionReader.cs
- TextTreeNode.cs
- MdImport.cs
- SkewTransform.cs
- ColumnResizeAdorner.cs
- RoutedUICommand.cs
- MimeMultiPart.cs
- SqlDependencyListener.cs
- addressfiltermode.cs
- SafeBitVector32.cs
- XmlLanguageConverter.cs
- ToolStripItemDesigner.cs
- NativeMethods.cs
- MediaCommands.cs
- TextFormatterHost.cs
- MarginsConverter.cs
- XsltArgumentList.cs
- PathData.cs
- MetadataCacheItem.cs
- SpellerHighlightLayer.cs
- CqlIdentifiers.cs
- GridViewDesigner.cs
- objectresult_tresulttype.cs
- EnumMemberAttribute.cs
- SerializableAttribute.cs
- SecuritySessionClientSettings.cs
- ImageMap.cs
- SocketPermission.cs
- UInt16.cs
- ScriptingProfileServiceSection.cs
- SqlClientPermission.cs
- GridViewColumn.cs
- IMembershipProvider.cs
- OutputCacheModule.cs
- UpdateProgress.cs
- SiteMapNodeCollection.cs
- GregorianCalendar.cs
- GeneralTransform3D.cs
- RoutedCommand.cs
- PlanCompiler.cs
- CompiledRegexRunner.cs
- LocalizableAttribute.cs
- _emptywebproxy.cs
- XmlStreamNodeWriter.cs
- RemoteWebConfigurationHostStream.cs
- CodeMemberEvent.cs
- RectangleGeometry.cs
- ImageClickEventArgs.cs
- WebPartEventArgs.cs
- _TransmitFileOverlappedAsyncResult.cs
- followingquery.cs
- WebResourceAttribute.cs
- RegisteredExpandoAttribute.cs
- ISFClipboardData.cs
- ChannelServices.cs
- DesignerInterfaces.cs
- ObjectViewListener.cs
- OracleColumn.cs
- CustomAttribute.cs
- Point.cs
- BitmapEffectvisualstate.cs
- formatter.cs
- Package.cs