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
- InstanceData.cs
- basenumberconverter.cs
- COAUTHINFO.cs
- PointAnimation.cs
- BindingsSection.cs
- TemplateBuilder.cs
- ClientProxyGenerator.cs
- SQLStringStorage.cs
- DSASignatureDeformatter.cs
- SiteMembershipCondition.cs
- HMACRIPEMD160.cs
- WebBrowserNavigatedEventHandler.cs
- ExternalDataExchangeClient.cs
- PropertyEmitterBase.cs
- DefaultExpressionVisitor.cs
- SettingsPropertyNotFoundException.cs
- ErrorRuntimeConfig.cs
- ExpressionReplacer.cs
- ActivityStateRecord.cs
- login.cs
- ObjectRef.cs
- RawMouseInputReport.cs
- EntitySetBase.cs
- SQLCharsStorage.cs
- OleDbDataAdapter.cs
- WebPartConnectionsDisconnectVerb.cs
- ProviderConnectionPoint.cs
- ScriptingSectionGroup.cs
- SqlSelectStatement.cs
- SecurityUtils.cs
- NonParentingControl.cs
- XsltContext.cs
- InstanceDataCollection.cs
- OdbcRowUpdatingEvent.cs
- ProxyFragment.cs
- SolidColorBrush.cs
- WebExceptionStatus.cs
- OdbcConnectionFactory.cs
- DataFormats.cs
- BaseProcessor.cs
- AudioFormatConverter.cs
- StringComparer.cs
- MemberInitExpression.cs
- SingleAnimation.cs
- SecureEnvironment.cs
- PageThemeParser.cs
- _AutoWebProxyScriptHelper.cs
- PropertyValueChangedEvent.cs
- BaseCollection.cs
- MarkupCompilePass1.cs
- DictionaryEntry.cs
- ButtonChrome.cs
- NamespaceQuery.cs
- TrustManagerMoreInformation.cs
- XmlTextWriter.cs
- TimeSpanConverter.cs
- StringFormat.cs
- SpellCheck.cs
- SystemResourceKey.cs
- PeerCredentialElement.cs
- SkinBuilder.cs
- ListBindingConverter.cs
- ComponentConverter.cs
- RtType.cs
- NavigationWindowAutomationPeer.cs
- DesignConnection.cs
- Point3DCollection.cs
- Stopwatch.cs
- DefaultSection.cs
- DeploymentExceptionMapper.cs
- InputMethod.cs
- SmtpDigestAuthenticationModule.cs
- TextRenderingModeValidation.cs
- TypeUtil.cs
- InitializeCorrelation.cs
- XslUrlEditor.cs
- ZoneIdentityPermission.cs
- OdbcDataReader.cs
- SafeSerializationManager.cs
- CodeCompileUnit.cs
- NavigationPropertyEmitter.cs
- ImageKeyConverter.cs
- AssemblyBuilderData.cs
- MachineKeySection.cs
- BaseTransportHeaders.cs
- SmiContextFactory.cs
- DoubleAnimationClockResource.cs
- TextParaClient.cs
- ObjectHelper.cs
- WebPartEditorApplyVerb.cs
- TableRowCollection.cs
- CodeDelegateInvokeExpression.cs
- RelationshipDetailsRow.cs
- DataSourceGroupCollection.cs
- PerformanceCounterLib.cs
- SapiRecognizer.cs
- LinqDataSourceValidationException.cs
- ProfileService.cs
- CustomErrorsSection.cs
- securitymgrsite.cs