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
- ConsoleCancelEventArgs.cs
- RayHitTestParameters.cs
- Parser.cs
- DragCompletedEventArgs.cs
- InputLangChangeEvent.cs
- PkcsUtils.cs
- HttpRequest.cs
- GroupByExpressionRewriter.cs
- SocketAddress.cs
- PrtTicket_Public_Simple.cs
- PropertyInformation.cs
- StrokeCollection.cs
- BrowserDefinitionCollection.cs
- PerformanceCounter.cs
- ConfigXmlText.cs
- ClientEventManager.cs
- DynamicResourceExtensionConverter.cs
- RadioButton.cs
- ToolTip.cs
- DecodeHelper.cs
- BackgroundWorker.cs
- SafeFileMappingHandle.cs
- SmtpReplyReaderFactory.cs
- ControlBuilder.cs
- PeerNearMe.cs
- SafeLocalAllocation.cs
- QilPatternFactory.cs
- ColorDialog.cs
- SerializeAbsoluteContext.cs
- MarginCollapsingState.cs
- GridItemPattern.cs
- SqlNodeAnnotation.cs
- SqlBooleanMismatchVisitor.cs
- SchemaElementLookUpTable.cs
- __TransparentProxy.cs
- PrintDialog.cs
- EntityDataSourceConfigureObjectContextPanel.cs
- XmlSerializerAssemblyAttribute.cs
- DesignTimeParseData.cs
- TPLETWProvider.cs
- EntityDataSourceViewSchema.cs
- CryptoConfig.cs
- RtType.cs
- IPipelineRuntime.cs
- RectConverter.cs
- ContextProperty.cs
- InstanceCreationEditor.cs
- SqlDataRecord.cs
- HyperLinkField.cs
- UIElement3DAutomationPeer.cs
- EntityDataSourceDataSelection.cs
- RightNameExpirationInfoPair.cs
- Visual.cs
- Processor.cs
- GcSettings.cs
- DocComment.cs
- WebPartEditVerb.cs
- MultiView.cs
- FrameworkContentElementAutomationPeer.cs
- CodeAttachEventStatement.cs
- ArrayConverter.cs
- DBNull.cs
- MouseDevice.cs
- MatrixCamera.cs
- Fx.cs
- Menu.cs
- HwndHostAutomationPeer.cs
- Array.cs
- StateMachine.cs
- Debug.cs
- CRYPTPROTECT_PROMPTSTRUCT.cs
- AttributeCollection.cs
- ListCommandEventArgs.cs
- Brush.cs
- Utils.cs
- NonBatchDirectoryCompiler.cs
- DrawItemEvent.cs
- cookieexception.cs
- KeyGestureValueSerializer.cs
- Thickness.cs
- ConsumerConnectionPointCollection.cs
- activationcontext.cs
- ProviderSettings.cs
- OrderByQueryOptionExpression.cs
- PersianCalendar.cs
- ResourceManager.cs
- DataTableNewRowEvent.cs
- TransactionsSectionGroup.cs
- StrongNameMembershipCondition.cs
- DataRow.cs
- ContainerFilterService.cs
- InkCanvasFeedbackAdorner.cs
- EmptyQuery.cs
- JsonUriDataContract.cs
- BaseDataList.cs
- SynchronizationScope.cs
- TextTreeText.cs
- NamespaceEmitter.cs
- MailAddressCollection.cs
- BaseEntityWrapper.cs