Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / UIAutomation / Win32Providers / MS / Internal / AutomationProxies / SafeProcessHandle.cs / 1305600 / 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
- UserPreferenceChangingEventArgs.cs
- ItemCheckEvent.cs
- EventMemberCodeDomSerializer.cs
- TabletDevice.cs
- VersionUtil.cs
- ReachUIElementCollectionSerializerAsync.cs
- StateMachine.cs
- pingexception.cs
- GetPageCompletedEventArgs.cs
- MimeXmlImporter.cs
- PersonalizablePropertyEntry.cs
- Schema.cs
- TriggerBase.cs
- DocumentReference.cs
- IisTraceListener.cs
- XmlSchemaComplexContentRestriction.cs
- AsnEncodedData.cs
- ShapingEngine.cs
- ExpressionBuilder.cs
- AbstractSvcMapFileLoader.cs
- FlowDocumentView.cs
- Exceptions.cs
- DataGridItemAttachedStorage.cs
- AutomationPeer.cs
- TaskCanceledException.cs
- CookielessHelper.cs
- AttachedPropertyBrowsableForChildrenAttribute.cs
- PackWebRequest.cs
- BindingCollection.cs
- DatagridviewDisplayedBandsData.cs
- ReferencedCategoriesDocument.cs
- RouteItem.cs
- ProtectedConfiguration.cs
- SoapExtension.cs
- XmlCharCheckingReader.cs
- LocatorManager.cs
- HyperLinkColumn.cs
- ILGenerator.cs
- ResourcePool.cs
- StylusEventArgs.cs
- SchemaType.cs
- UrlMapping.cs
- WriterOutput.cs
- HitTestFilterBehavior.cs
- UriTemplateCompoundPathSegment.cs
- DetailsViewUpdateEventArgs.cs
- MenuItem.cs
- BinaryUtilClasses.cs
- XmlCountingReader.cs
- MarshalByRefObject.cs
- SuppressedPackageProperties.cs
- Figure.cs
- UInt16Storage.cs
- EntityProviderFactory.cs
- DbModificationClause.cs
- HtmlInputSubmit.cs
- DBNull.cs
- TextEncodedRawTextWriter.cs
- ByteStorage.cs
- XmlUTF8TextWriter.cs
- AuthorizationSection.cs
- ServicePointManager.cs
- DesignTimeType.cs
- Viewport3DAutomationPeer.cs
- PeekCompletedEventArgs.cs
- XmlNamedNodeMap.cs
- ServerReliableChannelBinder.cs
- EventLogStatus.cs
- KnownColorTable.cs
- EntitySetBase.cs
- CompilerCollection.cs
- BitmapEffectInputData.cs
- DelegatedStream.cs
- PixelFormats.cs
- Clipboard.cs
- KeyGestureValueSerializer.cs
- Point3DAnimationUsingKeyFrames.cs
- SafeRightsManagementHandle.cs
- CuspData.cs
- XsltConvert.cs
- ProvidersHelper.cs
- EdmComplexPropertyAttribute.cs
- ToolBarPanel.cs
- XmlSerializerSection.cs
- Message.cs
- ClonableStack.cs
- ReflectionUtil.cs
- Misc.cs
- ADMembershipProvider.cs
- PathSegment.cs
- MenuItem.cs
- TableItemPattern.cs
- ResourceExpressionBuilder.cs
- NativeMethods.cs
- UInt32Converter.cs
- DynamicVirtualDiscoSearcher.cs
- Encoding.cs
- Soap.cs
- VisualTarget.cs
- KeyedByTypeCollection.cs