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
- HwndMouseInputProvider.cs
- ClientTargetCollection.cs
- StreamAsIStream.cs
- NameTable.cs
- ResXResourceSet.cs
- Rijndael.cs
- RuntimeCompatibilityAttribute.cs
- Int16.cs
- CopyAttributesAction.cs
- SymmetricKeyWrap.cs
- ScriptRef.cs
- DynamicEndpoint.cs
- InvokeBase.cs
- WebResponse.cs
- ToolBarButton.cs
- TriggerBase.cs
- PassportAuthenticationEventArgs.cs
- Int32KeyFrameCollection.cs
- DataServiceException.cs
- WrappedKeySecurityTokenParameters.cs
- CLSCompliantAttribute.cs
- JournalNavigationScope.cs
- ExternalException.cs
- PeerApplication.cs
- ParameterCollection.cs
- RijndaelManaged.cs
- IntPtr.cs
- OrderByQueryOptionExpression.cs
- RepeaterItem.cs
- ExplicitDiscriminatorMap.cs
- DiscardableAttribute.cs
- MemberInfoSerializationHolder.cs
- IntSecurity.cs
- TextDecoration.cs
- WaitingCursor.cs
- Schema.cs
- ADMembershipUser.cs
- NotifyInputEventArgs.cs
- WorkflowMarkupElementEventArgs.cs
- DetailsView.cs
- MarshalDirectiveException.cs
- TearOffProxy.cs
- XLinq.cs
- EventProviderClassic.cs
- HandlerBase.cs
- InstanceCreationEditor.cs
- KeysConverter.cs
- ToolBarButtonClickEvent.cs
- ByeOperation11AsyncResult.cs
- NetSectionGroup.cs
- Fonts.cs
- GCHandleCookieTable.cs
- _HelperAsyncResults.cs
- TemplateBindingExtensionConverter.cs
- NameValuePermission.cs
- ReadOnlyDataSourceView.cs
- WebScriptMetadataFormatter.cs
- StringToken.cs
- Timer.cs
- AttributeAction.cs
- RequestNavigateEventArgs.cs
- FormatterConverter.cs
- remotingproxy.cs
- counter.cs
- TextPatternIdentifiers.cs
- TokenBasedSetEnumerator.cs
- RepeaterDataBoundAdapter.cs
- HierarchicalDataBoundControl.cs
- ButtonFieldBase.cs
- StringKeyFrameCollection.cs
- ProxyAttribute.cs
- SqlDependencyUtils.cs
- SoapMessage.cs
- DependencyPropertyDescriptor.cs
- SqlVersion.cs
- LineVisual.cs
- CatalogPartCollection.cs
- AnnotationComponentChooser.cs
- BaseValidator.cs
- DescendantBaseQuery.cs
- CaseInsensitiveOrdinalStringComparer.cs
- PrintPreviewDialog.cs
- Transform.cs
- ResponseBodyWriter.cs
- TraceContext.cs
- Currency.cs
- Zone.cs
- Formatter.cs
- TraceInternal.cs
- GlyphingCache.cs
- ConfigXmlText.cs
- MSAAWinEventWrap.cs
- ValidatingPropertiesEventArgs.cs
- ConnectionPoint.cs
- XPathExpr.cs
- VirtualPathUtility.cs
- UInt16Converter.cs
- TextParagraph.cs
- PageOrientation.cs
- shaper.cs