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
- CssTextWriter.cs
- BlockUIContainer.cs
- ButtonDesigner.cs
- RegexInterpreter.cs
- HtmlInputReset.cs
- ListBoxItemAutomationPeer.cs
- Repeater.cs
- SharedPersonalizationStateInfo.cs
- WebSysDescriptionAttribute.cs
- TemplateBamlTreeBuilder.cs
- Content.cs
- EventLogPermissionEntry.cs
- HelpInfo.cs
- SemanticResultKey.cs
- InkCollectionBehavior.cs
- DataGridColumnHeaderCollection.cs
- EventListenerClientSide.cs
- HwndHostAutomationPeer.cs
- AppSettings.cs
- ListenerConstants.cs
- ObjectPersistData.cs
- Deflater.cs
- XmlToDatasetMap.cs
- KeyNotFoundException.cs
- ToolStripContainer.cs
- CanExpandCollapseAllConverter.cs
- CircleEase.cs
- ItemPager.cs
- XhtmlTextWriter.cs
- DataSourceHelper.cs
- TextElementEnumerator.cs
- SoapIncludeAttribute.cs
- DrawingVisual.cs
- EmptyEnumerator.cs
- MetadataUtilsSmi.cs
- ProfileInfo.cs
- UserControl.cs
- Int32Collection.cs
- KeyValuePairs.cs
- DataStorage.cs
- HashSetDebugView.cs
- HostingEnvironmentSection.cs
- FamilyCollection.cs
- CustomError.cs
- SafeFileMappingHandle.cs
- WebPartEditorCancelVerb.cs
- NamespaceTable.cs
- RegistryPermission.cs
- KeyFrames.cs
- BindingEditor.xaml.cs
- CodeTryCatchFinallyStatement.cs
- DragDropManager.cs
- CacheRequest.cs
- GenericEnumerator.cs
- PropertyTab.cs
- CodeAttributeDeclarationCollection.cs
- BitHelper.cs
- ProviderIncompatibleException.cs
- Control.cs
- BindingNavigator.cs
- FileUpload.cs
- RuleSetDialog.Designer.cs
- SerializationHelper.cs
- activationcontext.cs
- MenuEventArgs.cs
- NamespaceList.cs
- QueryOperator.cs
- ValidatedControlConverter.cs
- ArcSegment.cs
- Volatile.cs
- WebPartConnectionsCloseVerb.cs
- MessageContractMemberAttribute.cs
- XdrBuilder.cs
- SrgsGrammar.cs
- SafeThemeHandle.cs
- KoreanLunisolarCalendar.cs
- UnsafeNativeMethodsTablet.cs
- MoveSizeWinEventHandler.cs
- WebScriptClientGenerator.cs
- EnumerableValidator.cs
- WebPartMinimizeVerb.cs
- MetaColumn.cs
- DetailsViewPagerRow.cs
- ResolvedKeyFrameEntry.cs
- SectionInformation.cs
- IdentityValidationException.cs
- RuleValidation.cs
- XmlProcessingInstruction.cs
- WindowAutomationPeer.cs
- FilteredReadOnlyMetadataCollection.cs
- CodeAttributeDeclarationCollection.cs
- User.cs
- ToolStripSeparatorRenderEventArgs.cs
- SqlError.cs
- DrawingVisualDrawingContext.cs
- FileDialogPermission.cs
- SHA256Managed.cs
- DateTimeFormatInfo.cs
- BaseParser.cs
- SQLStringStorage.cs