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
- GrammarBuilderDictation.cs
- WizardPanel.cs
- NetMsmqBinding.cs
- SemanticResolver.cs
- CopyAction.cs
- ConsoleKeyInfo.cs
- UserControlDesigner.cs
- DependencyObject.cs
- CategoriesDocumentFormatter.cs
- JsonByteArrayDataContract.cs
- BuildProvider.cs
- TracingConnectionListener.cs
- SqlTypesSchemaImporter.cs
- Dictionary.cs
- pingexception.cs
- AliasedExpr.cs
- XmlAttribute.cs
- CreateUserErrorEventArgs.cs
- AngleUtil.cs
- WebPartTransformer.cs
- AssemblyGen.cs
- TaskSchedulerException.cs
- ChannelCacheDefaults.cs
- StyleCollection.cs
- ReaderWriterLockWrapper.cs
- Processor.cs
- _NtlmClient.cs
- BaseResourcesBuildProvider.cs
- Timer.cs
- ActionFrame.cs
- AutomationEvent.cs
- SqlSelectStatement.cs
- RC2CryptoServiceProvider.cs
- SessionIDManager.cs
- XmlStrings.cs
- Facet.cs
- FileDialogCustomPlace.cs
- ScriptDescriptor.cs
- PersonalizableAttribute.cs
- EnvironmentPermission.cs
- DataTableReader.cs
- ToolZone.cs
- OleDbRowUpdatingEvent.cs
- GridViewDeletedEventArgs.cs
- TextRange.cs
- ParameterElement.cs
- TableLayoutPanel.cs
- SafeSerializationManager.cs
- HtmlHistory.cs
- StyleCollection.cs
- TreeIterator.cs
- SingleConverter.cs
- StandardRuntimeEnumValidatorAttribute.cs
- DayRenderEvent.cs
- DefinitionUpdate.cs
- QuestionEventArgs.cs
- DataGridCaption.cs
- X509KeyIdentifierClauseType.cs
- CodeArrayIndexerExpression.cs
- ResourcePool.cs
- AnnotationAuthorChangedEventArgs.cs
- TreeNodeClickEventArgs.cs
- HostingEnvironmentException.cs
- IisTraceWebEventProvider.cs
- TraceLog.cs
- GetReadStreamResult.cs
- ScriptHandlerFactory.cs
- ConfigXmlElement.cs
- SimpleTextLine.cs
- MouseCaptureWithinProperty.cs
- ListItemParagraph.cs
- ElementsClipboardData.cs
- PingOptions.cs
- SmiRecordBuffer.cs
- FigureHelper.cs
- RelationshipManager.cs
- ComponentManagerBroker.cs
- GregorianCalendarHelper.cs
- MenuEventArgs.cs
- ConfigurationManagerHelperFactory.cs
- PeerObject.cs
- MatrixAnimationBase.cs
- CharacterBufferReference.cs
- Dictionary.cs
- ButtonField.cs
- TableDesigner.cs
- SelectionWordBreaker.cs
- ValidateNames.cs
- ZipIOFileItemStream.cs
- GridToolTip.cs
- ContainerFilterService.cs
- NetCodeGroup.cs
- Encoder.cs
- UnauthorizedWebPart.cs
- ListViewItemMouseHoverEvent.cs
- IndependentlyAnimatedPropertyMetadata.cs
- QilInvoke.cs
- TypeConverter.cs
- CalculatedColumn.cs
- NegatedConstant.cs