Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / AccessibleTech / longhorn / Automation / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- _DigestClient.cs
- SynchronizedDispatch.cs
- WebResourceAttribute.cs
- ExpanderAutomationPeer.cs
- ToolboxItemAttribute.cs
- SmtpFailedRecipientException.cs
- Vector3DIndependentAnimationStorage.cs
- ObjectDataSourceMethodEventArgs.cs
- FormatterConverter.cs
- Stack.cs
- CommonProperties.cs
- UnionCodeGroup.cs
- IFlowDocumentViewer.cs
- PropertyEntry.cs
- QueryOptionExpression.cs
- PrinterResolution.cs
- FileSystemWatcher.cs
- LogicalExpr.cs
- COM2IPerPropertyBrowsingHandler.cs
- BuildProvider.cs
- MappingMetadataHelper.cs
- ToolStripArrowRenderEventArgs.cs
- ActivityInstanceMap.cs
- SafeNativeMethods.cs
- TemplateControl.cs
- ToolStripRenderer.cs
- DecimalConverter.cs
- StringValidatorAttribute.cs
- ProfileSettings.cs
- SeverityFilter.cs
- EllipseGeometry.cs
- ProfileService.cs
- DataGridViewCellValueEventArgs.cs
- SymbolMethod.cs
- CreateUserWizardStep.cs
- ConfigXmlWhitespace.cs
- SqlTypeSystemProvider.cs
- BitArray.cs
- UIElement.cs
- AssertUtility.cs
- InputEventArgs.cs
- NullToBooleanConverter.cs
- DataGridColumnHeadersPresenter.cs
- ListControl.cs
- TrustLevel.cs
- Peer.cs
- HttpListener.cs
- RuleConditionDialog.cs
- Clock.cs
- MessagePartProtectionMode.cs
- ExtensionWindowHeader.cs
- TypeDescriptorFilterService.cs
- RadialGradientBrush.cs
- CodePrimitiveExpression.cs
- Automation.cs
- MaterializeFromAtom.cs
- DotNetATv1WindowsLogEntryDeserializer.cs
- TagMapCollection.cs
- DbConnectionClosed.cs
- OwnerDrawPropertyBag.cs
- RegisteredHiddenField.cs
- XmlBindingWorker.cs
- EntityDataSourceState.cs
- GridViewColumnCollection.cs
- Mouse.cs
- Keywords.cs
- MDIClient.cs
- AmbientProperties.cs
- SizeAnimation.cs
- Int32CAMarshaler.cs
- TextDecorations.cs
- StylusEditingBehavior.cs
- UserMapPath.cs
- LabelExpression.cs
- ContextDataSource.cs
- ExtensibleClassFactory.cs
- EUCJPEncoding.cs
- CommandManager.cs
- ConfigUtil.cs
- ModuleElement.cs
- SendKeys.cs
- CharacterMetricsDictionary.cs
- PixelShader.cs
- BaseContextMenu.cs
- NavigatorOutput.cs
- UInt64.cs
- XmlEntityReference.cs
- TimeSpanStorage.cs
- handlecollector.cs
- GeneralTransform3DTo2D.cs
- Attributes.cs
- HttpCachePolicy.cs
- CachedTypeface.cs
- TemplateXamlParser.cs
- BoundField.cs
- wgx_commands.cs
- LicenseContext.cs
- DbModificationCommandTree.cs
- HandlerBase.cs
- JumpPath.cs