Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / wpf / src / UIAutomation / Win32Providers / MS / Internal / AutomationProxies / SafeProcessHandle.cs / 1 / SafeProcessHandle.cs
//---------------------------------------------------------------------------- // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // Description: // // History: // 10/04/2003 : [....] Created //--------------------------------------------------------------------------- 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.AutomationProxies { 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(IntPtr hwnd) : base(true) { uint processId; if (hwnd == IntPtr.Zero) { processId = UnsafeNativeMethods.GetCurrentProcessId(); } else { // Get process id... Misc.GetWindowThreadProcessId(hwnd, out processId); } // handle might be used to query for Wow64 information (_QUERY_), or to do cross-process allocs (VM_*) SetHandle(Misc.OpenProcess(NativeMethods.PROCESS_QUERY_INFORMATION | NativeMethods.PROCESS_VM_OPERATION | NativeMethods.PROCESS_VM_READ | NativeMethods.PROCESS_VM_WRITE, false, processId, hwnd)); } // Uncomment this if & only if we need a constructor // that takes a handle from external code //internal SafeProcessHandle(IntPtr preexistingHandle, bool ownsHandle) : base(ownsHandle) //{ // SetHandle(preexistingHandle); //} // 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 //--------------------------------------------------------------------------- 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.AutomationProxies { 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(IntPtr hwnd) : base(true) { uint processId; if (hwnd == IntPtr.Zero) { processId = UnsafeNativeMethods.GetCurrentProcessId(); } else { // Get process id... Misc.GetWindowThreadProcessId(hwnd, out processId); } // handle might be used to query for Wow64 information (_QUERY_), or to do cross-process allocs (VM_*) SetHandle(Misc.OpenProcess(NativeMethods.PROCESS_QUERY_INFORMATION | NativeMethods.PROCESS_VM_OPERATION | NativeMethods.PROCESS_VM_READ | NativeMethods.PROCESS_VM_WRITE, false, processId, hwnd)); } // Uncomment this if & only if we need a constructor // that takes a handle from external code //internal SafeProcessHandle(IntPtr preexistingHandle, bool ownsHandle) : base(ownsHandle) //{ // SetHandle(preexistingHandle); //} // 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
- XmlSchemaSimpleContent.cs
- UnitControl.cs
- DisposableCollectionWrapper.cs
- StylusPlugInCollection.cs
- RepeaterCommandEventArgs.cs
- TagMapInfo.cs
- EncodingStreamWrapper.cs
- RadioButtonBaseAdapter.cs
- ToolStripScrollButton.cs
- WebBrowsableAttribute.cs
- DiagnosticTrace.cs
- EllipseGeometry.cs
- BamlMapTable.cs
- DataGridViewTopLeftHeaderCell.cs
- SplitterEvent.cs
- CodeMethodReturnStatement.cs
- CodeValidator.cs
- TextInfo.cs
- ManualResetEvent.cs
- DataGrid.cs
- NavigationPropertyEmitter.cs
- SoapDocumentMethodAttribute.cs
- FlowStep.cs
- PostBackOptions.cs
- UserControlAutomationPeer.cs
- RelationshipWrapper.cs
- HttpCacheVary.cs
- ValidateNames.cs
- ListItemCollection.cs
- SQLInt64Storage.cs
- ByteAnimation.cs
- SqlDataSourceCache.cs
- MainMenu.cs
- DateTimeEditor.cs
- SystemIPv4InterfaceProperties.cs
- DesignerActionGlyph.cs
- PublishLicense.cs
- AccessedThroughPropertyAttribute.cs
- LazyTextWriterCreator.cs
- BackStopAuthenticationModule.cs
- DaylightTime.cs
- MeshGeometry3D.cs
- ListViewDeletedEventArgs.cs
- SchemaTypeEmitter.cs
- XmlEncoding.cs
- InvalidComObjectException.cs
- DataServiceStreamResponse.cs
- ParagraphVisual.cs
- SpeakCompletedEventArgs.cs
- QueryNode.cs
- DataSourceConverter.cs
- OperatingSystemVersionCheck.cs
- WindowInteropHelper.cs
- ScaleTransform.cs
- ToolStripPanel.cs
- DataGridViewSelectedCellCollection.cs
- CodeStatementCollection.cs
- SettingsBase.cs
- CompoundFileStreamReference.cs
- XmlTextEncoder.cs
- VectorAnimationBase.cs
- XmlNotation.cs
- FontSource.cs
- _LocalDataStoreMgr.cs
- ToolBar.cs
- OrCondition.cs
- DocumentProperties.cs
- RoleService.cs
- TraceUtility.cs
- Native.cs
- TCPClient.cs
- WindowsFormsSynchronizationContext.cs
- TemplateControl.cs
- UIElementIsland.cs
- SQLBinary.cs
- PropertyChangedEventArgs.cs
- LoadedEvent.cs
- EdgeModeValidation.cs
- HttpDigestClientElement.cs
- TableLayoutColumnStyleCollection.cs
- FollowerQueueCreator.cs
- Solver.cs
- SchemaEntity.cs
- HtmlElementCollection.cs
- PostBackOptions.cs
- TextFormatterContext.cs
- CreateUserWizard.cs
- QueryOutputWriterV1.cs
- TreeNodeConverter.cs
- HideDisabledControlAdapter.cs
- FormatException.cs
- XmlDataContract.cs
- KeyToListMap.cs
- ComboBoxDesigner.cs
- UserPersonalizationStateInfo.cs
- DoubleStorage.cs
- XsdDateTime.cs
- BindToObject.cs
- FileDialog_Vista.cs
- ListChangedEventArgs.cs