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
- RtfControls.cs
- AsyncDataRequest.cs
- ObjectDataSourceMethodEventArgs.cs
- CodeDirectoryCompiler.cs
- UrlMapping.cs
- ObjectParameter.cs
- ConsoleTraceListener.cs
- BindingExpressionBase.cs
- ChangePassword.cs
- SafeViewOfFileHandle.cs
- OrderedEnumerableRowCollection.cs
- AssemblyHash.cs
- ScriptRef.cs
- Quaternion.cs
- UnsafeNativeMethods.cs
- CounterNameConverter.cs
- MaskInputRejectedEventArgs.cs
- querybuilder.cs
- EntryIndex.cs
- Int16KeyFrameCollection.cs
- SQLCharsStorage.cs
- CodeSpit.cs
- WebPartManagerInternals.cs
- TimeIntervalCollection.cs
- RuntimeWrappedException.cs
- UnauthorizedWebPart.cs
- DataGridPagingPage.cs
- HttpStreamFormatter.cs
- XsltLibrary.cs
- WindowsServiceElement.cs
- QilPatternFactory.cs
- EntityDataSourceColumn.cs
- BaseAppDomainProtocolHandler.cs
- rsa.cs
- BitmapEffectrendercontext.cs
- ProfileSection.cs
- SqlCaseSimplifier.cs
- DataGridViewRowHeaderCell.cs
- DataGridToolTip.cs
- LinearGradientBrush.cs
- OdbcError.cs
- NativeMethods.cs
- ProviderSettings.cs
- ConfigurationStrings.cs
- FunctionParameter.cs
- BindingElement.cs
- MethodBuilder.cs
- StructuralType.cs
- AmbientEnvironment.cs
- MethodAccessException.cs
- tooltip.cs
- DataViewSettingCollection.cs
- SqlRewriteScalarSubqueries.cs
- XPathCompileException.cs
- DispatcherSynchronizationContext.cs
- _AutoWebProxyScriptEngine.cs
- AutomationPattern.cs
- Token.cs
- XmlIgnoreAttribute.cs
- DataStorage.cs
- FontResourceCache.cs
- TextElementEnumerator.cs
- SrgsOneOf.cs
- HotCommands.cs
- CfgRule.cs
- RC2.cs
- TextBoxBase.cs
- AuthenticatingEventArgs.cs
- CodeAttributeArgument.cs
- PlatformNotSupportedException.cs
- entityreference_tresulttype.cs
- ServiceOperationInfoTypeConverter.cs
- RegisteredDisposeScript.cs
- MILUtilities.cs
- Activator.cs
- DBSchemaTable.cs
- FixedTextContainer.cs
- SortQuery.cs
- FaultCode.cs
- CompositeControl.cs
- HtmlInputImage.cs
- ClientScriptItemCollection.cs
- DataSourceControl.cs
- PageOutputColor.cs
- QuaternionIndependentAnimationStorage.cs
- MessageParameterAttribute.cs
- ProviderManager.cs
- TrustManagerPromptUI.cs
- StrongBox.cs
- SystemIcmpV6Statistics.cs
- ParserOptions.cs
- ApplicationFileCodeDomTreeGenerator.cs
- DataSourceCache.cs
- ObjectDataSourceView.cs
- ProgressiveCrcCalculatingStream.cs
- CodeSnippetCompileUnit.cs
- SoapObjectWriter.cs
- XmlImplementation.cs
- __Filters.cs
- ContextMenuAutomationPeer.cs