Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / wpf / src / UIAutomation / 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. //---------------------------------------------------------------------------- // //// 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
- GeneralTransform3D.cs
- ServiceAppDomainAssociationProvider.cs
- DialogBaseForm.cs
- TextDataBindingHandler.cs
- VectorAnimation.cs
- ValuePatternIdentifiers.cs
- CallbackValidator.cs
- ApplicationFileParser.cs
- DesignerSerializationManager.cs
- PageBreakRecord.cs
- ConfigurationLocation.cs
- ComponentConverter.cs
- TypeUsage.cs
- FloatUtil.cs
- StaticContext.cs
- GeneralTransform3D.cs
- DataGridViewLinkCell.cs
- SinglePhaseEnlistment.cs
- OleDbConnectionPoolGroupProviderInfo.cs
- SafeFileMappingHandle.cs
- SqlDeflator.cs
- util.cs
- UserValidatedEventArgs.cs
- SchemaNotation.cs
- DataServiceExpressionVisitor.cs
- DataGridViewTextBoxEditingControl.cs
- ChannelManager.cs
- XmlElementAttribute.cs
- ToolStripHighContrastRenderer.cs
- SqlUserDefinedAggregateAttribute.cs
- XamlFilter.cs
- ExpandableObjectConverter.cs
- DefaultBindingPropertyAttribute.cs
- MetadataPropertyvalue.cs
- VirtualDirectoryMappingCollection.cs
- SqlCommandBuilder.cs
- DelegatingConfigHost.cs
- QilVisitor.cs
- ActivationServices.cs
- ProcessHostServerConfig.cs
- DynamicFilter.cs
- WebPartManagerInternals.cs
- XPathDescendantIterator.cs
- RowBinding.cs
- SortedList.cs
- RelationshipManager.cs
- ObjectSecurity.cs
- JsonFormatReaderGenerator.cs
- DesignerDataSourceView.cs
- WeakReadOnlyCollection.cs
- XPathParser.cs
- SafeRightsManagementQueryHandle.cs
- StoreContentChangedEventArgs.cs
- WebConfigurationManager.cs
- mda.cs
- AnimationException.cs
- xamlnodes.cs
- SystemException.cs
- DiscreteKeyFrames.cs
- InvalidOperationException.cs
- DesignerVerbCollection.cs
- RoleManagerModule.cs
- SafeViewOfFileHandle.cs
- BufferAllocator.cs
- AliasExpr.cs
- LinqDataSourceHelper.cs
- AdornerHitTestResult.cs
- PrimitiveCodeDomSerializer.cs
- XmlSchemaSequence.cs
- ParserContext.cs
- JsonWriter.cs
- SQLInt32.cs
- TextCollapsingProperties.cs
- DataGridViewRowPrePaintEventArgs.cs
- XmlSchemaInclude.cs
- ScriptHandlerFactory.cs
- NativeMethods.cs
- SchemaAttDef.cs
- PnrpPermission.cs
- GroupQuery.cs
- TimeoutHelper.cs
- XLinq.cs
- ReliableMessagingVersion.cs
- HttpCapabilitiesSectionHandler.cs
- HwndPanningFeedback.cs
- DataRelation.cs
- CategoryNameCollection.cs
- UInt16.cs
- CompositeScriptReferenceEventArgs.cs
- SqlClientPermission.cs
- OrderingExpression.cs
- UnsafeNativeMethodsCLR.cs
- XmlTextAttribute.cs
- FileUtil.cs
- XmlDataImplementation.cs
- EventProviderWriter.cs
- Pen.cs
- OleDbWrapper.cs
- CheckBoxField.cs
- OpenFileDialog.cs