Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / UIAutomation / Win32Providers / MS / Internal / AutomationProxies / SafeProcessHandle.cs / 1305600 / 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
- BlobPersonalizationState.cs
- ClipboardProcessor.cs
- CodeDOMUtility.cs
- DbMetaDataCollectionNames.cs
- DataGridColumnEventArgs.cs
- DataPagerCommandEventArgs.cs
- XmlAttributes.cs
- InheritedPropertyChangedEventArgs.cs
- ObjectStateFormatter.cs
- SQLString.cs
- BehaviorDragDropEventArgs.cs
- CompModHelpers.cs
- ManagedWndProcTracker.cs
- XsdBuildProvider.cs
- DispatcherSynchronizationContext.cs
- HealthMonitoringSection.cs
- PackWebResponse.cs
- PersonalizationStateInfoCollection.cs
- XmlUtilWriter.cs
- TreePrinter.cs
- ActivityTypeDesigner.xaml.cs
- GeometryCollection.cs
- X509ChainPolicy.cs
- HMAC.cs
- HelpEvent.cs
- DataContractSet.cs
- autovalidator.cs
- OleDbError.cs
- UnionExpr.cs
- TrackingLocationCollection.cs
- TypeForwardedToAttribute.cs
- CounterSet.cs
- WebPartDisplayModeEventArgs.cs
- BamlLocalizerErrorNotifyEventArgs.cs
- FixedSOMFixedBlock.cs
- BamlLocalizationDictionary.cs
- ConfigDefinitionUpdates.cs
- HyperLink.cs
- MemoryPressure.cs
- GridItemPatternIdentifiers.cs
- SudsParser.cs
- Error.cs
- RootBrowserWindowProxy.cs
- XmlWriterDelegator.cs
- MouseDevice.cs
- BooleanExpr.cs
- _ShellExpression.cs
- DataContractJsonSerializerOperationFormatter.cs
- RadioButtonStandardAdapter.cs
- AsyncDataRequest.cs
- IItemProperties.cs
- CompositeActivityMarkupSerializer.cs
- CodeAttributeDeclaration.cs
- SessionParameter.cs
- PrintEvent.cs
- WindowsAuthenticationModule.cs
- TaiwanLunisolarCalendar.cs
- AssemblyAttributes.cs
- TextServicesCompartment.cs
- _CommandStream.cs
- InfoCardRSAPKCS1SignatureDeformatter.cs
- SecurityContext.cs
- EnumConverter.cs
- ProjectionQueryOptionExpression.cs
- DispatcherExceptionEventArgs.cs
- SmiContextFactory.cs
- COM2ColorConverter.cs
- PointConverter.cs
- ReadOnlyDictionary.cs
- OutputCacheProfileCollection.cs
- AppDomainCompilerProxy.cs
- SoundPlayerAction.cs
- documentsequencetextcontainer.cs
- PostBackOptions.cs
- MergeFilterQuery.cs
- OneOf.cs
- EdmValidator.cs
- WindowsComboBox.cs
- FileDialog.cs
- ThemeDirectoryCompiler.cs
- QualifiedCellIdBoolean.cs
- XmlSubtreeReader.cs
- StrokeCollection2.cs
- RC2.cs
- DataViewSetting.cs
- QueryInterceptorAttribute.cs
- TextDecorationUnitValidation.cs
- ClaimComparer.cs
- XmlNamespaceManager.cs
- DataServiceHost.cs
- SchemaInfo.cs
- XPathParser.cs
- HtmlTableCell.cs
- DocumentSignatureManager.cs
- XmlDocumentSchema.cs
- DesignerMetadata.cs
- SubclassTypeValidatorAttribute.cs
- ClonableStack.cs
- CompoundFileDeflateTransform.cs
- FrameworkElement.cs