Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / wpf / src / UIAutomation / UIAutomationClient / MS / Internal / Automation / SafeProcessHandle.cs / 1 / SafeProcessHandle.cs
//---------------------------------------------------------------------------- // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // Description: // // History: // 10/04/2003 : [....] Created //--------------------------------------------------------------------------- // PRESHARP: In order to avoid generating warnings about unkown message numbers and unknown pragmas. #pragma warning disable 1634, 1691 using System; using System.Security; using System.Security.Permissions; using System.Runtime.InteropServices; using System.Runtime.CompilerServices; using System.Windows.Automation; using Microsoft.Win32.SafeHandles; using MS.Win32; namespace MS.Internal.Automation { internal sealed class SafeProcessHandle : SafeHandleZeroOrMinusOneIsInvalid { // This constructor is used by the P/Invoke marshaling layer // to allocate a SafeHandle instance. P/Invoke then does the // appropriate method call, storing the handle in this class. private SafeProcessHandle() : base(true) {} internal SafeProcessHandle(NativeMethods.HWND hwnd) : base(true) { int processId; // Get process id... // GetWindowThreadProcessId does use SetLastError(). So a call to GetLastError() would be meanless. // Disabling the PreSharp warning. #pragma warning suppress 6523 if (SafeNativeMethods.GetWindowThreadProcessId(hwnd, out processId) == 0) { throw new ElementNotAvailableException(); } SetHandle(Misc.OpenProcess(UnsafeNativeMethods.PROCESS_QUERY_INFORMATION | UnsafeNativeMethods.PROCESS_VM_READ, false, processId, hwnd)); } // protected override bool ReleaseHandle() { return Misc.CloseHandle(handle); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. //---------------------------------------------------------------------------- // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // Description: // // History: // 10/04/2003 : [....] Created //--------------------------------------------------------------------------- // PRESHARP: In order to avoid generating warnings about unkown message numbers and unknown pragmas. #pragma warning disable 1634, 1691 using System; using System.Security; using System.Security.Permissions; using System.Runtime.InteropServices; using System.Runtime.CompilerServices; using System.Windows.Automation; using Microsoft.Win32.SafeHandles; using MS.Win32; namespace MS.Internal.Automation { internal sealed class SafeProcessHandle : SafeHandleZeroOrMinusOneIsInvalid { // This constructor is used by the P/Invoke marshaling layer // to allocate a SafeHandle instance. P/Invoke then does the // appropriate method call, storing the handle in this class. private SafeProcessHandle() : base(true) {} internal SafeProcessHandle(NativeMethods.HWND hwnd) : base(true) { int processId; // Get process id... // GetWindowThreadProcessId does use SetLastError(). So a call to GetLastError() would be meanless. // Disabling the PreSharp warning. #pragma warning suppress 6523 if (SafeNativeMethods.GetWindowThreadProcessId(hwnd, out processId) == 0) { throw new ElementNotAvailableException(); } SetHandle(Misc.OpenProcess(UnsafeNativeMethods.PROCESS_QUERY_INFORMATION | UnsafeNativeMethods.PROCESS_VM_READ, false, processId, hwnd)); } // protected override bool ReleaseHandle() { return Misc.CloseHandle(handle); } } } // 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
- SqlVisitor.cs
- MessageQuerySet.cs
- formatstringdialog.cs
- AppearanceEditorPart.cs
- PersonalizationStateInfo.cs
- __FastResourceComparer.cs
- StatusBarPanelClickEvent.cs
- StackOverflowException.cs
- BuildProvider.cs
- RuleSettingsCollection.cs
- WmfPlaceableFileHeader.cs
- ValidationEventArgs.cs
- ProxyBuilder.cs
- BinaryReader.cs
- Brush.cs
- SmiConnection.cs
- ProfileProvider.cs
- EditingCommands.cs
- CompilerGlobalScopeAttribute.cs
- TextSelectionHelper.cs
- HttpCookiesSection.cs
- RoutedPropertyChangedEventArgs.cs
- EpmHelper.cs
- EmissiveMaterial.cs
- Exceptions.cs
- Expression.DebuggerProxy.cs
- GridLengthConverter.cs
- WebReferenceCollection.cs
- WsdlInspector.cs
- NameTable.cs
- CompileLiteralTextParser.cs
- StaticExtension.cs
- ColorAnimationBase.cs
- ConfigurationSchemaErrors.cs
- QueryOutputWriter.cs
- ExpandoObject.cs
- ObjectViewEntityCollectionData.cs
- NativeCompoundFileAPIs.cs
- ExitEventArgs.cs
- RouteUrlExpressionBuilder.cs
- ObjectQueryState.cs
- Mappings.cs
- TextContainer.cs
- XPathDocument.cs
- Int32RectConverter.cs
- TimeoutException.cs
- ConfigUtil.cs
- SelfIssuedAuthRSACryptoProvider.cs
- VisualTreeUtils.cs
- ToolboxItemCollection.cs
- Parser.cs
- MiniAssembly.cs
- XmlUtil.cs
- RecognizerBase.cs
- XmlTypeAttribute.cs
- IERequestCache.cs
- messageonlyhwndwrapper.cs
- DataGridViewTextBoxColumn.cs
- SessionPageStatePersister.cs
- StreamingContext.cs
- SoapEnumAttribute.cs
- XmlIlVisitor.cs
- Button.cs
- NullEntityWrapper.cs
- SqlCacheDependency.cs
- DataServiceResponse.cs
- WindowsRebar.cs
- RequiredAttributeAttribute.cs
- BinaryExpressionHelper.cs
- XmlSchemaSimpleContent.cs
- MouseEvent.cs
- DataGridViewTextBoxEditingControl.cs
- BaseCAMarshaler.cs
- SeparatorAutomationPeer.cs
- PassportAuthenticationEventArgs.cs
- InputChannel.cs
- PerspectiveCamera.cs
- SqlCacheDependencyDatabaseCollection.cs
- QueueProcessor.cs
- SynchronizationLockException.cs
- SystemColorTracker.cs
- DocumentViewerAutomationPeer.cs
- GroupDescription.cs
- FixedSOMImage.cs
- MenuAutoFormat.cs
- EnvelopedSignatureTransform.cs
- HttpPostLocalhostServerProtocol.cs
- ButtonAutomationPeer.cs
- RoleManagerEventArgs.cs
- PrinterUnitConvert.cs
- HttpCacheVary.cs
- PaintEvent.cs
- TypeDelegator.cs
- XmlSchemaSimpleContentRestriction.cs
- ServiceInfoCollection.cs
- WindowsBrush.cs
- ConfigurationElement.cs
- EntityWrapperFactory.cs
- AssemblyCache.cs
- ConfigurationPermission.cs