Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / UIAutomation / UIAutomationClient / MS / Internal / Automation / SafeProcessHandle.cs / 1305600 / 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
- XmlValueConverter.cs
- RoutedEventArgs.cs
- TextRangeEditLists.cs
- ControlUtil.cs
- VectorAnimation.cs
- FrameDimension.cs
- ValueChangedEventManager.cs
- ProtocolsSection.cs
- WebPartZoneBaseDesigner.cs
- DetailsViewRow.cs
- ShaderEffect.cs
- Evidence.cs
- ListItemViewControl.cs
- RowUpdatedEventArgs.cs
- HtmlInputCheckBox.cs
- RoutedPropertyChangedEventArgs.cs
- ColumnResizeAdorner.cs
- ContractUtils.cs
- RTLAwareMessageBox.cs
- RowsCopiedEventArgs.cs
- ListSortDescription.cs
- TemplateBindingExtension.cs
- ToolStripLabel.cs
- HwndSource.cs
- ArrangedElement.cs
- FileSystemEventArgs.cs
- Speller.cs
- XmlKeywords.cs
- SelectionGlyphBase.cs
- TreeNode.cs
- RequestFactory.cs
- EntityDataSourceMemberPath.cs
- MessageBox.cs
- NCryptSafeHandles.cs
- BatchParser.cs
- HtmlInputFile.cs
- XamlTreeBuilderBamlRecordWriter.cs
- ToolStripSplitButton.cs
- CroppedBitmap.cs
- PauseStoryboard.cs
- NotCondition.cs
- WebPartConnectionsCancelEventArgs.cs
- MethodCallTranslator.cs
- DecimalFormatter.cs
- StatusBar.cs
- QueryServiceConfigHandle.cs
- SqlFlattener.cs
- Point4DConverter.cs
- ToolStripItemGlyph.cs
- UpDownBase.cs
- StorageComplexTypeMapping.cs
- WindowsStatusBar.cs
- SoapRpcMethodAttribute.cs
- StagingAreaInputItem.cs
- DataGridViewDesigner.cs
- SrgsDocument.cs
- HandlerMappingMemo.cs
- MarkupObject.cs
- VerticalConnector.xaml.cs
- SafeNativeMethodsMilCoreApi.cs
- ReceiveDesigner.xaml.cs
- SecurityPolicySection.cs
- Point3DCollectionValueSerializer.cs
- FormsAuthenticationEventArgs.cs
- WebConfigurationHostFileChange.cs
- ItemMap.cs
- ImageMapEventArgs.cs
- HtmlShim.cs
- OutKeywords.cs
- StateItem.cs
- AstNode.cs
- SecurityPermission.cs
- DataBoundControlActionList.cs
- Set.cs
- XslAstAnalyzer.cs
- ConfigurationLocationCollection.cs
- DataServiceConfiguration.cs
- ConfigXmlComment.cs
- ButtonChrome.cs
- BasicExpressionVisitor.cs
- Rect3DConverter.cs
- SyndicationSerializer.cs
- RequestCacheManager.cs
- PageThemeBuildProvider.cs
- StringDictionary.cs
- WebBrowserUriTypeConverter.cs
- TableLayoutCellPaintEventArgs.cs
- TimeSpan.cs
- ServicePointManagerElement.cs
- PublisherIdentityPermission.cs
- CustomTokenProvider.cs
- DataBoundControlDesigner.cs
- OleCmdHelper.cs
- WebPartManagerInternals.cs
- RelationshipConverter.cs
- columnmapkeybuilder.cs
- DataServiceQuery.cs
- EncodingInfo.cs
- WindowsTreeView.cs
- StylusPointPropertyInfoDefaults.cs