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
- LazyTextWriterCreator.cs
- StaticExtension.cs
- TabletDevice.cs
- MethodInfo.cs
- DataGridViewCellStateChangedEventArgs.cs
- configsystem.cs
- DateTime.cs
- ForwardPositionQuery.cs
- ImageIndexConverter.cs
- PersistenceTypeAttribute.cs
- formatter.cs
- DrawingContextDrawingContextWalker.cs
- UIElement3D.cs
- FixedFindEngine.cs
- CacheAxisQuery.cs
- SqlBuffer.cs
- TextDecoration.cs
- AtomServiceDocumentSerializer.cs
- SQLMembershipProvider.cs
- RuleConditionDialog.cs
- SelectionListComponentEditor.cs
- JsonFormatMapping.cs
- XmlMembersMapping.cs
- WebPartHeaderCloseVerb.cs
- DataSetUtil.cs
- TableRow.cs
- DynamicUpdateCommand.cs
- TraceFilter.cs
- BinHexEncoder.cs
- HttpFileCollectionWrapper.cs
- FaultHandlingFilter.cs
- figurelength.cs
- RowUpdatedEventArgs.cs
- DebugView.cs
- DataRowComparer.cs
- namescope.cs
- URLAttribute.cs
- CountAggregationOperator.cs
- SourceLineInfo.cs
- RenderData.cs
- XsdValidatingReader.cs
- RequestCachePolicyConverter.cs
- DataGridViewCell.cs
- TypedRowHandler.cs
- RemoteCryptoTokenProvider.cs
- ListView.cs
- Config.cs
- FixedPageAutomationPeer.cs
- AssemblyAttributes.cs
- SortedList.cs
- DiscoveryEndpoint.cs
- FlowDocumentReader.cs
- DrawingContextDrawingContextWalker.cs
- InputLanguageSource.cs
- AdornerHitTestResult.cs
- ToolStripTextBox.cs
- SqlProviderServices.cs
- TreeViewAutomationPeer.cs
- TableProviderWrapper.cs
- ColumnBinding.cs
- ProgressChangedEventArgs.cs
- UseLicense.cs
- ToolStripDesigner.cs
- HtmlShim.cs
- NativeMethods.cs
- QueueProcessor.cs
- EntityCommandDefinition.cs
- DbResourceAllocator.cs
- rsa.cs
- PreProcessor.cs
- PeerTransportSecurityElement.cs
- DataServiceRequestException.cs
- CreatingCookieEventArgs.cs
- DmlSqlGenerator.cs
- TextContainerChangedEventArgs.cs
- ItemType.cs
- GlyphInfoList.cs
- BrowserDefinition.cs
- LiteralControl.cs
- ViewStateException.cs
- ButtonPopupAdapter.cs
- StandardRuntimeEnumValidatorAttribute.cs
- WindowsButton.cs
- DataRecordInfo.cs
- SmtpClient.cs
- shaperfactoryquerycacheentry.cs
- HttpTransportElement.cs
- ControlBindingsCollection.cs
- AssemblyHash.cs
- DataGridViewRowsAddedEventArgs.cs
- ValidationSummaryDesigner.cs
- HealthMonitoringSectionHelper.cs
- IndexingContentUnit.cs
- BamlResourceDeserializer.cs
- PackageRelationshipSelector.cs
- ReflectionTypeLoadException.cs
- PathTooLongException.cs
- coordinatorfactory.cs
- MsmqVerifier.cs
- LineInfo.cs