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
- CheckableControlBaseAdapter.cs
- WeakReferenceEnumerator.cs
- ImageSource.cs
- StylusButtonEventArgs.cs
- ConditionCollection.cs
- ParsedAttributeCollection.cs
- GPPOINT.cs
- Keywords.cs
- OneOfConst.cs
- DataControlPagerLinkButton.cs
- SolidBrush.cs
- ApplicationCommands.cs
- ItemContainerGenerator.cs
- TimeIntervalCollection.cs
- InvalidFilterCriteriaException.cs
- PrimitiveDataContract.cs
- BufferedReadStream.cs
- TagElement.cs
- MenuItemBinding.cs
- FixedSOMPageElement.cs
- EnterpriseServicesHelper.cs
- XamlReader.cs
- FormViewAutoFormat.cs
- ProcessingInstructionAction.cs
- AuthorizationRuleCollection.cs
- DrawTreeNodeEventArgs.cs
- SBCSCodePageEncoding.cs
- ComplexTypeEmitter.cs
- LinkConverter.cs
- RecordsAffectedEventArgs.cs
- GPStream.cs
- CodeSubDirectory.cs
- ClientTargetSection.cs
- TextDecorationCollectionConverter.cs
- ZipFileInfoCollection.cs
- ServiceModelConfigurationSectionGroup.cs
- XmlLinkedNode.cs
- PanelDesigner.cs
- Point3DConverter.cs
- DocumentScope.cs
- TextAdaptor.cs
- TextRangeEdit.cs
- ColorBlend.cs
- ExpanderAutomationPeer.cs
- DataControlField.cs
- ReceiveContext.cs
- UpdateEventArgs.cs
- VerticalAlignConverter.cs
- BooleanAnimationUsingKeyFrames.cs
- UserControl.cs
- Base64Stream.cs
- WorkflowDataContext.cs
- MetaChildrenColumn.cs
- MailWebEventProvider.cs
- OledbConnectionStringbuilder.cs
- Options.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- HiddenField.cs
- UriParserTemplates.cs
- MachineKeySection.cs
- DefaultObjectMappingItemCollection.cs
- HttpListenerElement.cs
- BindingContext.cs
- InheritanceUI.cs
- WaitForChangedResult.cs
- DBSchemaRow.cs
- WebCategoryAttribute.cs
- ConfigurationConverterBase.cs
- StringComparer.cs
- QuaternionValueSerializer.cs
- LeftCellWrapper.cs
- KnowledgeBase.cs
- TimeoutValidationAttribute.cs
- ToolTip.cs
- SafeRegistryHandle.cs
- ReliableOutputConnection.cs
- Highlights.cs
- MimeXmlImporter.cs
- StatusBar.cs
- ResetableIterator.cs
- UpDownBase.cs
- FastEncoderWindow.cs
- XmlResolver.cs
- SqlDataSourceStatusEventArgs.cs
- RegexGroupCollection.cs
- Transform3D.cs
- OleServicesContext.cs
- TraceProvider.cs
- WriteFileContext.cs
- ProgressPage.cs
- AtomServiceDocumentSerializer.cs
- AlphabeticalEnumConverter.cs
- PaperSource.cs
- ServiceDescription.cs
- OrderingExpression.cs
- ParserOptions.cs
- MouseOverProperty.cs
- HtmlButton.cs
- MultipleCopiesCollection.cs
- CodeAssignStatement.cs