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
- AutoResizedEvent.cs
- EntityUtil.cs
- PeerContact.cs
- RegisteredDisposeScript.cs
- UiaCoreApi.cs
- TypographyProperties.cs
- TreeNodeEventArgs.cs
- WebServiceClientProxyGenerator.cs
- MorphHelpers.cs
- SafeCryptContextHandle.cs
- ConnectionInterfaceCollection.cs
- StylusCaptureWithinProperty.cs
- CounterSample.cs
- AsymmetricKeyExchangeFormatter.cs
- TrackingStringDictionary.cs
- WizardForm.cs
- StyleXamlParser.cs
- AsyncStreamReader.cs
- FixedStringLookup.cs
- SortExpressionBuilder.cs
- XmlSerializerSection.cs
- WebConfigurationHostFileChange.cs
- MethodExpr.cs
- MultipleViewPattern.cs
- WorkflowInstance.cs
- CodeExpressionStatement.cs
- DataRow.cs
- DockPattern.cs
- Pen.cs
- PreservationFileReader.cs
- SmtpDigestAuthenticationModule.cs
- AnnotationComponentManager.cs
- OutputCacheModule.cs
- prefixendpointaddressmessagefilter.cs
- SpeakCompletedEventArgs.cs
- ObjectDataSourceDisposingEventArgs.cs
- ClrPerspective.cs
- DetailsViewModeEventArgs.cs
- ZipIOZip64EndOfCentralDirectoryLocatorBlock.cs
- CustomError.cs
- OleDbEnumerator.cs
- RadioButtonBaseAdapter.cs
- Line.cs
- ClientOperationFormatterProvider.cs
- BulletedListEventArgs.cs
- VirtualDirectoryMappingCollection.cs
- PackageDigitalSignature.cs
- ListSortDescriptionCollection.cs
- StrongNameKeyPair.cs
- GridViewRowEventArgs.cs
- AppPool.cs
- GeometryValueSerializer.cs
- TemplateControlBuildProvider.cs
- ContextBase.cs
- Image.cs
- FastPropertyAccessor.cs
- JsonFormatReaderGenerator.cs
- ReferenceEqualityComparer.cs
- RenderingEventArgs.cs
- RawStylusInputCustomData.cs
- XmlDomTextWriter.cs
- DataView.cs
- WizardPanel.cs
- FamilyTypeface.cs
- httpserverutility.cs
- PropertyIDSet.cs
- SHA256.cs
- VerificationException.cs
- MdiWindowListItemConverter.cs
- IgnoreSectionHandler.cs
- SaveFileDialogDesigner.cs
- RootDesignerSerializerAttribute.cs
- StorageEntityTypeMapping.cs
- GridView.cs
- MsmqChannelFactory.cs
- Transform3D.cs
- UpdateCommandGenerator.cs
- MimeWriter.cs
- HtmlInputRadioButton.cs
- XamlPoint3DCollectionSerializer.cs
- RewritingProcessor.cs
- Rect3DValueSerializer.cs
- ProfileGroupSettings.cs
- ValueOfAction.cs
- HttpRuntimeSection.cs
- EventLogPermission.cs
- PathFigure.cs
- WebFaultClientMessageInspector.cs
- externdll.cs
- EntityParameterCollection.cs
- MailDefinition.cs
- CommandField.cs
- XmlWrappingWriter.cs
- ProjectedSlot.cs
- DataContractSerializer.cs
- TextSelectionHighlightLayer.cs
- Point3D.cs
- XmlDictionaryWriter.cs
- SamlNameIdentifierClaimResource.cs
- WizardSideBarListControlItemEventArgs.cs