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
- ArraySortHelper.cs
- InputReport.cs
- LinkArea.cs
- ScrollContentPresenter.cs
- DescendantQuery.cs
- EnvelopeVersion.cs
- NativeMethods.cs
- URL.cs
- NamespaceCollection.cs
- DefaultBinder.cs
- FormatterServices.cs
- TraceContextRecord.cs
- Types.cs
- StrongTypingException.cs
- RewritingSimplifier.cs
- ExecutionEngineException.cs
- OdbcRowUpdatingEvent.cs
- JpegBitmapEncoder.cs
- ImmutableObjectAttribute.cs
- ShaperBuffers.cs
- SessionEndingEventArgs.cs
- XmlAtomicValue.cs
- JpegBitmapDecoder.cs
- BoolExpression.cs
- TraceSection.cs
- BitmapEffectCollection.cs
- AnnotationObservableCollection.cs
- Receive.cs
- ServiceReference.cs
- EventlogProvider.cs
- ConfigurationManagerHelper.cs
- FieldMetadata.cs
- documentsequencetextpointer.cs
- ApplicationActivator.cs
- DeviceContext.cs
- Container.cs
- MinimizableAttributeTypeConverter.cs
- KeyValueInternalCollection.cs
- BitmapSource.cs
- IndexOutOfRangeException.cs
- ResponseBodyWriter.cs
- SqlConnectionHelper.cs
- LineServicesCallbacks.cs
- EntityRecordInfo.cs
- SrgsGrammarCompiler.cs
- JsonReader.cs
- StoragePropertyMapping.cs
- AuthenticationSection.cs
- ObjectStateEntry.cs
- NumericExpr.cs
- FlowDocument.cs
- IIS7UserPrincipal.cs
- DataExchangeServiceBinder.cs
- Menu.cs
- CompilerCollection.cs
- ThicknessAnimationUsingKeyFrames.cs
- TargetInvocationException.cs
- FixedElement.cs
- ObjectNotFoundException.cs
- ModulesEntry.cs
- FloaterBaseParaClient.cs
- QilReference.cs
- TextTreeUndo.cs
- VisualCollection.cs
- TypeNameConverter.cs
- Module.cs
- ServiceControllerDesigner.cs
- Buffer.cs
- XmlSchema.cs
- Triangle.cs
- RestHandler.cs
- XmlSchemaNotation.cs
- C14NUtil.cs
- EditCommandColumn.cs
- ProtectedConfiguration.cs
- HttpApplication.cs
- DomainConstraint.cs
- ProxyWebPart.cs
- CqlIdentifiers.cs
- DiagnosticsConfiguration.cs
- XmlSchemaDatatype.cs
- ParagraphVisual.cs
- RegexCaptureCollection.cs
- BufferedOutputStream.cs
- ComplusEndpointConfigContainer.cs
- XmlSchemaValidationException.cs
- CodeTypeDeclaration.cs
- DescendantBaseQuery.cs
- PointValueSerializer.cs
- SmtpNegotiateAuthenticationModule.cs
- TraceLevelStore.cs
- PriorityBinding.cs
- Compiler.cs
- HelloMessageApril2005.cs
- PermissionListSet.cs
- CodeDomSerializerBase.cs
- ThreadExceptionEvent.cs
- ManipulationPivot.cs
- PolicyManager.cs
- DataSourceCache.cs