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
- ValidationManager.cs
- ClientTarget.cs
- XPathNodeInfoAtom.cs
- DocumentViewerAutomationPeer.cs
- MeasurementDCInfo.cs
- FrameworkElementFactoryMarkupObject.cs
- MediaPlayer.cs
- ObjectPersistData.cs
- SID.cs
- SessionEndingCancelEventArgs.cs
- QuestionEventArgs.cs
- PkcsMisc.cs
- Scene3D.cs
- AttributeData.cs
- metadatamappinghashervisitor.cs
- DataGridRelationshipRow.cs
- ActivationArguments.cs
- SystemInformation.cs
- OleDbFactory.cs
- ReadOnlyCollectionBase.cs
- UniqueID.cs
- WorkflowExecutor.cs
- _LazyAsyncResult.cs
- HtmlInputReset.cs
- srgsitem.cs
- MultilineStringEditor.cs
- ReadonlyMessageFilter.cs
- BinaryObjectInfo.cs
- InvalidOleVariantTypeException.cs
- ListViewDeletedEventArgs.cs
- HttpRequestContext.cs
- Trigger.cs
- basemetadatamappingvisitor.cs
- MemberDomainMap.cs
- ClosureBinding.cs
- Module.cs
- DataGridViewRowPrePaintEventArgs.cs
- ControlAdapter.cs
- BaseTemplateBuildProvider.cs
- KeyBinding.cs
- RichTextBox.cs
- XmlAttributeAttribute.cs
- RelationshipType.cs
- StringBuilder.cs
- GlyphRunDrawing.cs
- DetectRunnableInstancesTask.cs
- RawMouseInputReport.cs
- Identifier.cs
- VisualCollection.cs
- OdbcConnection.cs
- WorkflowCommandExtensionItem.cs
- DPCustomTypeDescriptor.cs
- VisualCollection.cs
- XmlSerializerSection.cs
- RegexGroup.cs
- SiteMapHierarchicalDataSourceView.cs
- Queue.cs
- DiffuseMaterial.cs
- NetSectionGroup.cs
- ExternalCalls.cs
- SigningDialog.cs
- SmtpReplyReaderFactory.cs
- InitializationEventAttribute.cs
- Pen.cs
- FloaterParagraph.cs
- TTSEvent.cs
- XmlNotation.cs
- TwoPhaseCommit.cs
- ObjectDataSourceView.cs
- XmlAttributeAttribute.cs
- WindowsMenu.cs
- NetCodeGroup.cs
- ToolStripDropDownItemDesigner.cs
- XsltSettings.cs
- unsafenativemethodstextservices.cs
- StrongNameMembershipCondition.cs
- DbParameterCollectionHelper.cs
- Model3DCollection.cs
- EditorPartCollection.cs
- SectionVisual.cs
- RewritingValidator.cs
- DesignerDataConnection.cs
- CompilerParameters.cs
- BaseTemplateBuildProvider.cs
- NativeMethods.cs
- figurelengthconverter.cs
- InternalConfigSettingsFactory.cs
- OracleNumber.cs
- DeviceContext2.cs
- ClientApiGenerator.cs
- SamlAuthenticationClaimResource.cs
- ArgumentException.cs
- TypeListConverter.cs
- COM2PropertyPageUITypeConverter.cs
- TypeDependencyAttribute.cs
- DbParameterCollectionHelper.cs
- ServerIdentity.cs
- ListBoxItem.cs
- EntitySet.cs
- FamilyMap.cs