Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / Tools / xws_reg / System / ServiceModel / Install / RegistryHandle.cs / 1 / RegistryHandle.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace System.ServiceModel.Install { using Microsoft.Win32.SafeHandles; using System.ComponentModel; using System.Text; class RegistryHandle : SafeHandleZeroOrMinusOneIsInvalid { static readonly RegistryHandle HKEY_LOCAL_MACHINE = new RegistryHandle(new IntPtr(unchecked((int)0x80000002)), false); const uint KEY_QUERY_VALUE = 0x0001; const uint KEY_WOW64_64KEY = 0x0100; const int REG_SZ = 1; RegistryHandle(IntPtr hKey, bool ownHandle) : base(ownHandle) { handle = hKey; } RegistryHandle() : base(true) { // empty } public static RegistryHandle OpenNativeHKLMSubkey(string subKey) { RegistryHandle result; const uint samDesired = KEY_QUERY_VALUE | KEY_WOW64_64KEY; int status = NativeMethods.RegOpenKeyEx(RegistryHandle.HKEY_LOCAL_MACHINE, subKey, 0, samDesired, out result); if (status != ErrorCodes.ERROR_SUCCESS) { throw new Win32Exception(status); } return result; } public string QueryStringValue(string value) { int type; int sizeInBytes = 0; int status = NativeMethods.RegQueryValueEx(this, value, null, out type, null, ref sizeInBytes); if (status != ErrorCodes.ERROR_SUCCESS) { throw new Win32Exception(status); } if (type != REG_SZ) { throw new InvalidOperationException(SR.GetString(SR.QueryStringValueTypeMismatch, value, type)); } StringBuilder builder = new StringBuilder(sizeInBytes / sizeof(char)); status = NativeMethods.RegQueryValueEx(this, value, null, out type, builder, ref sizeInBytes); if (status != ErrorCodes.ERROR_SUCCESS) { throw new Win32Exception(status); } return builder.ToString(); } protected override bool ReleaseHandle() { return (NativeMethods.RegCloseKey(handle) == ErrorCodes.ERROR_SUCCESS); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- TextSpanModifier.cs
- GeneratedContractType.cs
- CqlLexer.cs
- ScrollProperties.cs
- Events.cs
- BamlCollectionHolder.cs
- EntityAdapter.cs
- TemplateBaseAction.cs
- Latin1Encoding.cs
- BoundingRectTracker.cs
- WinEventHandler.cs
- Canvas.cs
- TouchesCapturedWithinProperty.cs
- ExplicitDiscriminatorMap.cs
- TreeViewCancelEvent.cs
- ValidationPropertyAttribute.cs
- BrowserCapabilitiesFactory.cs
- TreeNodeEventArgs.cs
- KeyGesture.cs
- DelegatingChannelListener.cs
- SystemTcpConnection.cs
- XmlUtil.cs
- CodeTypeDelegate.cs
- HierarchicalDataSourceControl.cs
- Constant.cs
- InvokeMemberBinder.cs
- SoapCodeExporter.cs
- ContainsRowNumberChecker.cs
- StructuredTypeInfo.cs
- LateBoundBitmapDecoder.cs
- CopyOfAction.cs
- ComMethodElementCollection.cs
- XamlReader.cs
- TraceUtility.cs
- OperationParameterInfo.cs
- Error.cs
- DateTimeStorage.cs
- HitTestDrawingContextWalker.cs
- WebPartChrome.cs
- XmlBinaryReader.cs
- ContractMapping.cs
- PeerTransportElement.cs
- ServiceAuthorizationBehavior.cs
- ParserStreamGeometryContext.cs
- ComPlusDiagnosticTraceSchemas.cs
- AutomationIdentifierGuids.cs
- SoapFault.cs
- BCryptSafeHandles.cs
- WebZone.cs
- SimpleRecyclingCache.cs
- ImmComposition.cs
- EnumMember.cs
- ProcessManager.cs
- mediaeventargs.cs
- Transform.cs
- TextSelectionHelper.cs
- sqlstateclientmanager.cs
- FileDialogPermission.cs
- OleDbCommandBuilder.cs
- ControlCodeDomSerializer.cs
- SystemIPInterfaceProperties.cs
- MemberDescriptor.cs
- QueryResponse.cs
- ConfigurationStrings.cs
- FormViewCommandEventArgs.cs
- CachedBitmap.cs
- TemplatePropertyEntry.cs
- ApplicationManager.cs
- DataGridViewRowStateChangedEventArgs.cs
- ForEach.cs
- RenderOptions.cs
- CacheOutputQuery.cs
- WebPartEditorOkVerb.cs
- CompoundFileReference.cs
- DataGridTableCollection.cs
- ExternalCalls.cs
- XmlQuerySequence.cs
- PropertyValueChangedEvent.cs
- AsymmetricAlgorithm.cs
- DataSpaceManager.cs
- SequentialOutput.cs
- Model3DCollection.cs
- DesignerView.cs
- ChangeTracker.cs
- MenuCommand.cs
- WindowsListViewItemStartMenu.cs
- WindowsSecurityToken.cs
- FrameworkElement.cs
- DBDataPermissionAttribute.cs
- TranslateTransform3D.cs
- DbConvert.cs
- DataControlReferenceCollection.cs
- ResponseStream.cs
- EmptyImpersonationContext.cs
- XamlContextStack.cs
- WebCodeGenerator.cs
- ItemList.cs
- MonthCalendar.cs
- ValidatorUtils.cs
- PersonalizationStateInfoCollection.cs