Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / 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
- Filter.cs
- CryptoStream.cs
- CompositeScriptReferenceEventArgs.cs
- EventSource.cs
- DataGridViewTopLeftHeaderCell.cs
- FileLevelControlBuilderAttribute.cs
- OpCopier.cs
- AccessViolationException.cs
- CoreChannel.cs
- sqlser.cs
- MediaContextNotificationWindow.cs
- RbTree.cs
- OrderedHashRepartitionStream.cs
- HttpVersion.cs
- HtmlTableRow.cs
- securitymgrsite.cs
- RIPEMD160Managed.cs
- controlskin.cs
- Pts.cs
- DebugController.cs
- WebResponse.cs
- DataTrigger.cs
- ListParagraph.cs
- TimeEnumHelper.cs
- CommandPlan.cs
- StateDesigner.LayoutSelectionGlyph.cs
- FastEncoderStatics.cs
- EndpointConfigContainer.cs
- BindingCollection.cs
- IEnumerable.cs
- XPathPatternParser.cs
- mongolianshape.cs
- MimeTypeMapper.cs
- KnownTypesProvider.cs
- Image.cs
- RangeContentEnumerator.cs
- SchemaDeclBase.cs
- SqlProcedureAttribute.cs
- DataSetUtil.cs
- ExceptionRoutedEventArgs.cs
- ActivityCollectionMarkupSerializer.cs
- CSharpCodeProvider.cs
- ViewEvent.cs
- WebControl.cs
- IDispatchConstantAttribute.cs
- SqlRowUpdatedEvent.cs
- GetTokenRequest.cs
- LayeredChannelFactory.cs
- HttpServerVarsCollection.cs
- MeasurementDCInfo.cs
- AttachedProperty.cs
- PropertyChangedEventManager.cs
- EpmCustomContentWriterNodeData.cs
- UrlParameterReader.cs
- DesignConnectionCollection.cs
- CompoundFileStorageReference.cs
- LicenseException.cs
- ManagedFilter.cs
- AllMembershipCondition.cs
- BinaryExpression.cs
- ApplicationInfo.cs
- PermissionSetTriple.cs
- NamedPipeConnectionPoolSettingsElement.cs
- Section.cs
- TextComposition.cs
- ConfigurationValidatorAttribute.cs
- SqlDuplicator.cs
- RNGCryptoServiceProvider.cs
- NameValueSectionHandler.cs
- DbConvert.cs
- PathSegment.cs
- DrawingBrush.cs
- DetailsViewInsertEventArgs.cs
- CatalogZoneBase.cs
- SendKeys.cs
- FullTextState.cs
- Interlocked.cs
- AttachedPropertyMethodSelector.cs
- PowerStatus.cs
- Grammar.cs
- X509WindowsSecurityToken.cs
- XhtmlBasicControlAdapter.cs
- ParameterEditorUserControl.cs
- XmlElementAttribute.cs
- NamedServiceModelExtensionCollectionElement.cs
- RowTypePropertyElement.cs
- CalendarDateRangeChangingEventArgs.cs
- ParallelQuery.cs
- ToolStripGrip.cs
- BinarySerializer.cs
- MembershipValidatePasswordEventArgs.cs
- TraversalRequest.cs
- QilLoop.cs
- CompilerParameters.cs
- XmlStringTable.cs
- Accessible.cs
- Thickness.cs
- _NegoState.cs
- FlowDocumentReader.cs
- NativeWindow.cs