Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / 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
- PropertyCollection.cs
- AssemblyResourceLoader.cs
- mactripleDES.cs
- CodeDelegateInvokeExpression.cs
- VariableAction.cs
- DefaultHttpHandler.cs
- IgnorePropertiesAttribute.cs
- FontEmbeddingManager.cs
- XmlSerializerVersionAttribute.cs
- MatrixConverter.cs
- _LocalDataStoreMgr.cs
- FirstMatchCodeGroup.cs
- MSAANativeProvider.cs
- PriorityRange.cs
- SystemNetHelpers.cs
- BindableAttribute.cs
- BaseCAMarshaler.cs
- ApplicationSecurityInfo.cs
- DateTimeValueSerializerContext.cs
- EdmSchemaError.cs
- ChannelTraceRecord.cs
- TransformCollection.cs
- XmlTypeMapping.cs
- DataSpaceManager.cs
- ResourcePermissionBase.cs
- ListenerElementsCollection.cs
- CommonObjectSecurity.cs
- StateRuntime.cs
- StatusBarDrawItemEvent.cs
- EdmComplexTypeAttribute.cs
- NativeMethods.cs
- ToolStripPanelCell.cs
- ModuleElement.cs
- CodeCatchClauseCollection.cs
- PropertyToken.cs
- SchemaHelper.cs
- TrimSurroundingWhitespaceAttribute.cs
- MessageLogger.cs
- TrackingValidationObjectDictionary.cs
- DocComment.cs
- TreeNodeCollection.cs
- EnvironmentPermission.cs
- ProfilePropertySettingsCollection.cs
- FixedPageAutomationPeer.cs
- TextReader.cs
- ApplicationDirectory.cs
- FormatException.cs
- Main.cs
- EasingKeyFrames.cs
- TextModifierScope.cs
- ServicePointManagerElement.cs
- DataServiceRequestArgs.cs
- QilParameter.cs
- NonParentingControl.cs
- RequestQueryProcessor.cs
- _UriTypeConverter.cs
- StringResourceManager.cs
- FileDialog.cs
- EditorZoneBase.cs
- ListItemParagraph.cs
- ResourceReferenceExpressionConverter.cs
- ToolboxComponentsCreatedEventArgs.cs
- StatusBarAutomationPeer.cs
- WindowsGrip.cs
- TextEditorLists.cs
- TreeNodeStyle.cs
- DocComment.cs
- GcHandle.cs
- ControlValuePropertyAttribute.cs
- EntityViewGenerationAttribute.cs
- CfgRule.cs
- Region.cs
- DefaultShape.cs
- TypePropertyEditor.cs
- SymbolUsageManager.cs
- DoubleAnimationClockResource.cs
- RuleConditionDialog.cs
- CompilerResults.cs
- SQLSingle.cs
- MultiTrigger.cs
- HwndSubclass.cs
- AdapterDictionary.cs
- Int32Rect.cs
- WebPartEventArgs.cs
- ToolboxItemWrapper.cs
- RegistrationServices.cs
- AuthenticateEventArgs.cs
- sqlcontext.cs
- EntityDataSource.cs
- ApplyImportsAction.cs
- PngBitmapEncoder.cs
- IndividualDeviceConfig.cs
- FormsIdentity.cs
- CompositeControl.cs
- BulletChrome.cs
- wgx_sdk_version.cs
- Size3DValueSerializer.cs
- PackagingUtilities.cs
- ClientScriptManager.cs
- ErrorProvider.cs