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
- TreeView.cs
- QueryReaderSettings.cs
- DocumentSchemaValidator.cs
- CompilerTypeWithParams.cs
- WebFormDesignerActionService.cs
- ValidationManager.cs
- DataGridHyperlinkColumn.cs
- RuleAction.cs
- PagedDataSource.cs
- AsnEncodedData.cs
- SQLUtility.cs
- PseudoWebRequest.cs
- ImpersonateTokenRef.cs
- KeySplineConverter.cs
- DayRenderEvent.cs
- PrincipalPermission.cs
- XmlObjectSerializer.cs
- DateTimeParse.cs
- SizeAnimationClockResource.cs
- HttpClientCertificate.cs
- LambdaCompiler.Address.cs
- TextDecoration.cs
- XmlAttributes.cs
- CodeRemoveEventStatement.cs
- ChannelBinding.cs
- RelatedEnd.cs
- Delay.cs
- SQLChars.cs
- TrustManagerMoreInformation.cs
- CodeGenHelper.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- XmlCharacterData.cs
- sortedlist.cs
- Thumb.cs
- PassportAuthentication.cs
- HttpInputStream.cs
- DesignerExtenders.cs
- RenderOptions.cs
- XmlExceptionHelper.cs
- Array.cs
- RadioButton.cs
- BaseDataList.cs
- BinaryMethodMessage.cs
- SmtpNetworkElement.cs
- mediapermission.cs
- PrintDialog.cs
- HandledEventArgs.cs
- Switch.cs
- BitmapDownload.cs
- DeclarativeExpressionConditionDeclaration.cs
- VersionedStreamOwner.cs
- EntityDataSourceEntityTypeFilterConverter.cs
- FieldReference.cs
- CodeExpressionCollection.cs
- GridView.cs
- GeometryDrawing.cs
- ProcessHostServerConfig.cs
- CultureInfoConverter.cs
- TextViewDesigner.cs
- mediaeventshelper.cs
- Menu.cs
- KeyTime.cs
- LingerOption.cs
- InternalPolicyElement.cs
- XPathExpr.cs
- TextAnchor.cs
- ContextStaticAttribute.cs
- Version.cs
- DiscoveryVersionConverter.cs
- DependencySource.cs
- WebPartCollection.cs
- WindowsFormsHelpers.cs
- CommandLineParser.cs
- DynamicMethod.cs
- ContentFileHelper.cs
- OdbcConnectionHandle.cs
- OleDbConnectionInternal.cs
- ClientFormsIdentity.cs
- RoutedPropertyChangedEventArgs.cs
- HwndSourceKeyboardInputSite.cs
- TextEndOfLine.cs
- SimpleHandlerFactory.cs
- CompositeActivityTypeDescriptor.cs
- StringInfo.cs
- SqlLiftWhereClauses.cs
- RouteUrlExpressionBuilder.cs
- Point.cs
- UnwrappedTypesXmlSerializerManager.cs
- AsyncPostBackErrorEventArgs.cs
- FormViewDesigner.cs
- GeometryHitTestResult.cs
- Timer.cs
- PrintDocument.cs
- BitmapEffectDrawingContent.cs
- ADMembershipProvider.cs
- SourceFileInfo.cs
- QueueProcessor.cs
- ReliableSessionElement.cs
- TreeView.cs
- Timeline.cs