Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / AccessibleTech / longhorn / Automation / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- TextReader.cs
- GestureRecognizer.cs
- NegationPusher.cs
- ScriptReference.cs
- CachedFontFace.cs
- _emptywebproxy.cs
- HostingPreferredMapPath.cs
- AccessKeyManager.cs
- ChineseLunisolarCalendar.cs
- SearchForVirtualItemEventArgs.cs
- VirtualPath.cs
- XsdBuilder.cs
- XmlName.cs
- QueryInterceptorAttribute.cs
- BinaryFormatter.cs
- QuadraticBezierSegment.cs
- TabControlCancelEvent.cs
- TypeConverterHelper.cs
- CmsUtils.cs
- UserPersonalizationStateInfo.cs
- StickyNote.cs
- HttpRequestCacheValidator.cs
- DataGridTable.cs
- EntityViewGenerationConstants.cs
- FamilyCollection.cs
- StateItem.cs
- DocumentSequence.cs
- ListViewGroupConverter.cs
- SamlEvidence.cs
- RequiredAttributeAttribute.cs
- WebPartDisplayModeCollection.cs
- BinaryVersion.cs
- FontSource.cs
- OpenTypeLayoutCache.cs
- RepeaterItemCollection.cs
- InvalidProgramException.cs
- SymbolPair.cs
- TraceRecords.cs
- compensatingcollection.cs
- UpWmlPageAdapter.cs
- DataGridPageChangedEventArgs.cs
- UserControlBuildProvider.cs
- SpeechRecognitionEngine.cs
- EmptyElement.cs
- PreservationFileWriter.cs
- XMLSyntaxException.cs
- CallbackHandler.cs
- OpenFileDialog.cs
- _CacheStreams.cs
- SiteMapHierarchicalDataSourceView.cs
- FontCollection.cs
- EntityDesignerBuildProvider.cs
- Underline.cs
- ObjectReferenceStack.cs
- Attributes.cs
- XmlBinaryWriterSession.cs
- ItemContainerGenerator.cs
- SymbolResolver.cs
- Filter.cs
- XmlAttributeCollection.cs
- DriveNotFoundException.cs
- ComponentEditorForm.cs
- ItemCollection.cs
- TemplateColumn.cs
- ToolStripSettings.cs
- HttpFileCollection.cs
- XmlSchemaParticle.cs
- SemanticResolver.cs
- ScriptManagerProxy.cs
- StopStoryboard.cs
- _CookieModule.cs
- DataGridColumnEventArgs.cs
- WizardPanel.cs
- ListDictionary.cs
- SettingsPropertyWrongTypeException.cs
- AxHost.cs
- System.Data.OracleClient_BID.cs
- DateBoldEvent.cs
- ExpandCollapsePattern.cs
- Icon.cs
- GC.cs
- ActiveXContainer.cs
- AppDomainInfo.cs
- MemberRelationshipService.cs
- OutputCacheModule.cs
- Debugger.cs
- SqlTriggerAttribute.cs
- ObjectDataSourceStatusEventArgs.cs
- VBIdentifierName.cs
- CallbackValidator.cs
- WCFBuildProvider.cs
- Inline.cs
- PairComparer.cs
- ClientData.cs
- CircleEase.cs
- XmlSchemaNotation.cs
- TemplateColumn.cs
- UmAlQuraCalendar.cs
- ProxyOperationRuntime.cs
- LineSegment.cs