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
- DataGridViewEditingControlShowingEventArgs.cs
- ContractHandle.cs
- WsdlInspector.cs
- DateTimeConverter2.cs
- Repeater.cs
- CompositionTarget.cs
- DummyDataSource.cs
- LassoSelectionBehavior.cs
- RSAPKCS1SignatureFormatter.cs
- LicenseProviderAttribute.cs
- CellPartitioner.cs
- BamlLocalizableResource.cs
- RuntimeWrappedException.cs
- EventTrigger.cs
- SmiContext.cs
- InvalidOleVariantTypeException.cs
- PageSettings.cs
- ArgIterator.cs
- AnimationException.cs
- TextTreeInsertElementUndoUnit.cs
- PairComparer.cs
- HandlerMappingMemo.cs
- PathTooLongException.cs
- InputLanguageCollection.cs
- ProviderConnectionPointCollection.cs
- FormsAuthenticationUserCollection.cs
- VisualStyleElement.cs
- Propagator.JoinPropagator.JoinPredicateVisitor.cs
- Debug.cs
- WaitForChangedResult.cs
- AssemblyHash.cs
- Request.cs
- DiscoveryRequestHandler.cs
- DESCryptoServiceProvider.cs
- ArraySegment.cs
- InstanceDescriptor.cs
- X509Chain.cs
- RelatedImageListAttribute.cs
- PreviewPrintController.cs
- ZipIOBlockManager.cs
- FtpCachePolicyElement.cs
- IndependentlyAnimatedPropertyMetadata.cs
- System.Data_BID.cs
- ReachDocumentPageSerializer.cs
- DataKeyArray.cs
- GenericWebPart.cs
- MenuTracker.cs
- KeyedHashAlgorithm.cs
- HostProtectionPermission.cs
- SHA1.cs
- ProxyAttribute.cs
- Style.cs
- TextWriterTraceListener.cs
- CellTreeNode.cs
- Operand.cs
- DrawListViewSubItemEventArgs.cs
- XmlSchema.cs
- ComplusEndpointConfigContainer.cs
- DeviceContext2.cs
- VariableQuery.cs
- TreeViewImageKeyConverter.cs
- StateWorkerRequest.cs
- ContainerUIElement3D.cs
- RequestQueryProcessor.cs
- SiteMapDataSource.cs
- WebPartRestoreVerb.cs
- StatusStrip.cs
- WebPartConnectionsEventArgs.cs
- VisualCollection.cs
- MethodSet.cs
- XmlnsPrefixAttribute.cs
- EntityDataSourceReferenceGroup.cs
- OutputCacheProfileCollection.cs
- RequestQueue.cs
- SizeIndependentAnimationStorage.cs
- ApplyTemplatesAction.cs
- CancellationTokenRegistration.cs
- XmlUnspecifiedAttribute.cs
- BrowserDefinition.cs
- GeneralTransform3D.cs
- OleStrCAMarshaler.cs
- BigInt.cs
- ThreadExceptionDialog.cs
- TrustManager.cs
- CallbackValidatorAttribute.cs
- Cursors.cs
- TextEncodedRawTextWriter.cs
- GeneralEndpointIdentity.cs
- Point.cs
- BaseDataListPage.cs
- IndexedSelectQueryOperator.cs
- SizeConverter.cs
- DataBindingValueUIHandler.cs
- XsdCachingReader.cs
- SslStream.cs
- OperationCanceledException.cs
- DataListCommandEventArgs.cs
- GraphicsContainer.cs
- EllipseGeometry.cs
- StylusPointProperties.cs