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
- RouteParameter.cs
- DurableOperationContext.cs
- JsonWriter.cs
- CustomValidator.cs
- EntityDataSourceState.cs
- XmlSchemaAll.cs
- WebPartVerbsEventArgs.cs
- HtmlTable.cs
- AddInStore.cs
- PeerPresenceInfo.cs
- ListViewTableRow.cs
- Setter.cs
- GridViewRowEventArgs.cs
- HtmlShim.cs
- ScalarOps.cs
- HttpDictionary.cs
- ServiceParser.cs
- ResourcePart.cs
- StrokeRenderer.cs
- PackageDigitalSignatureManager.cs
- WebPartDisplayModeCollection.cs
- XmlSchemaSubstitutionGroup.cs
- DataGridViewRowPostPaintEventArgs.cs
- SchemaElementLookUpTable.cs
- CharacterMetrics.cs
- WebPartAddingEventArgs.cs
- CacheDependency.cs
- Tracer.cs
- MaskInputRejectedEventArgs.cs
- XDRSchema.cs
- SelectedGridItemChangedEvent.cs
- CultureInfoConverter.cs
- ObjectViewQueryResultData.cs
- GroupByExpressionRewriter.cs
- DBNull.cs
- FacetValues.cs
- CaseInsensitiveHashCodeProvider.cs
- ContextProperty.cs
- Attributes.cs
- CollectionEditVerbManager.cs
- PersonalizationProviderHelper.cs
- XmlFormatExtensionPointAttribute.cs
- ErrorWrapper.cs
- GraphicsState.cs
- PrintEvent.cs
- AccessibleObject.cs
- MultiView.cs
- ConstraintConverter.cs
- OptionalColumn.cs
- ActivityPreviewDesigner.cs
- WebPartMinimizeVerb.cs
- VSWCFServiceContractGenerator.cs
- GridViewEditEventArgs.cs
- XamlBrushSerializer.cs
- MarkupWriter.cs
- FrameworkElement.cs
- GlyphShapingProperties.cs
- AdministrationHelpers.cs
- TraceSection.cs
- MDIControlStrip.cs
- BamlResourceSerializer.cs
- InstallerTypeAttribute.cs
- WCFServiceClientProxyGenerator.cs
- PathFigureCollection.cs
- TemplateBuilder.cs
- WaitHandle.cs
- CheckBox.cs
- _FtpControlStream.cs
- MarginCollapsingState.cs
- StaticExtension.cs
- SymLanguageVendor.cs
- InputScope.cs
- WorkflowPersistenceContext.cs
- KeyValuePairs.cs
- DataTransferEventArgs.cs
- isolationinterop.cs
- Int64.cs
- XPathSelectionIterator.cs
- XPathBinder.cs
- HostedImpersonationContext.cs
- TemplateFactory.cs
- ViewManager.cs
- CodeBinaryOperatorExpression.cs
- WebScriptMetadataMessage.cs
- SyntaxCheck.cs
- _SslState.cs
- CodeBlockBuilder.cs
- PictureBox.cs
- DataSet.cs
- RMEnrollmentPage2.cs
- XamlParser.cs
- Figure.cs
- SqlCacheDependencyDatabase.cs
- OperationPickerDialog.cs
- ConnectionManagementSection.cs
- DBAsyncResult.cs
- XmlSerializerFactory.cs
- DeclaredTypeElementCollection.cs
- ConfigurationSchemaErrors.cs
- ListViewItemSelectionChangedEvent.cs