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
- InvokePattern.cs
- OleDbException.cs
- MetadataFile.cs
- IODescriptionAttribute.cs
- HyperLink.cs
- MsmqProcessProtocolHandler.cs
- MessageQueueException.cs
- SystemParameters.cs
- RenderingBiasValidation.cs
- ButtonPopupAdapter.cs
- BinHexDecoder.cs
- EventManager.cs
- GridViewRowCollection.cs
- SamlAuthorizationDecisionClaimResource.cs
- SignatureConfirmationElement.cs
- mediapermission.cs
- EncodingNLS.cs
- SmiMetaData.cs
- PriorityBindingExpression.cs
- Codec.cs
- AggregateNode.cs
- MDIControlStrip.cs
- GlyphCache.cs
- ContextMenu.cs
- SchemaTableColumn.cs
- FormsAuthentication.cs
- DecimalAnimationBase.cs
- _LoggingObject.cs
- configsystem.cs
- ZipArchive.cs
- CodePageEncoding.cs
- BitmapEffect.cs
- ReadWriteObjectLock.cs
- Roles.cs
- Context.cs
- ContentPlaceHolderDesigner.cs
- OAVariantLib.cs
- TextContainerHelper.cs
- DataGridViewTopRowAccessibleObject.cs
- DockAndAnchorLayout.cs
- PersonalizationProviderCollection.cs
- PackageDigitalSignature.cs
- FileRecordSequenceHelper.cs
- ParentControlDesigner.cs
- TextTreeUndoUnit.cs
- Rule.cs
- HostedController.cs
- ZeroOpNode.cs
- DataSourceViewSchemaConverter.cs
- _OverlappedAsyncResult.cs
- ReadOnlyNameValueCollection.cs
- Int16AnimationUsingKeyFrames.cs
- InternalCache.cs
- DiscoveryDocumentSerializer.cs
- XamlParser.cs
- SqlDelegatedTransaction.cs
- DummyDataSource.cs
- SqlCharStream.cs
- InternalControlCollection.cs
- CheckBox.cs
- DbParameterCollectionHelper.cs
- ScriptingSectionGroup.cs
- ScrollViewer.cs
- InstancePersistenceCommandException.cs
- EpmSourcePathSegment.cs
- DataRowCollection.cs
- Stroke2.cs
- SRDisplayNameAttribute.cs
- UnSafeCharBuffer.cs
- ApplicationDirectory.cs
- PropertyValidationContext.cs
- ContractTypeNameElement.cs
- SystemNetworkInterface.cs
- ResourceSetExpression.cs
- AppSettingsExpressionBuilder.cs
- ToolStripItem.cs
- _DigestClient.cs
- ConcurrentBag.cs
- UnsafeMethods.cs
- ProgressBarAutomationPeer.cs
- _LoggingObject.cs
- OleDbMetaDataFactory.cs
- BasicHttpMessageSecurity.cs
- X509Certificate2.cs
- CompoundFileStorageReference.cs
- CompilerWrapper.cs
- SoapExtensionTypeElementCollection.cs
- CodeTypeConstructor.cs
- StyleCollection.cs
- WindowProviderWrapper.cs
- BamlResourceContent.cs
- ValueProviderWrapper.cs
- Point4D.cs
- GPPOINTF.cs
- KeyPressEvent.cs
- CallbackTimeoutsElement.cs
- ToolBarDesigner.cs
- MaskDescriptor.cs
- LogSwitch.cs
- CursorInteropHelper.cs