Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / UIAutomation / UIAutomationClient / MS / Internal / Automation / SafeProcessHandle.cs / 1305600 / SafeProcessHandle.cs
//---------------------------------------------------------------------------- // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // Description: // // History: // 10/04/2003 : [....] Created //--------------------------------------------------------------------------- // PRESHARP: In order to avoid generating warnings about unkown message numbers and unknown pragmas. #pragma warning disable 1634, 1691 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.Automation { 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(NativeMethods.HWND hwnd) : base(true) { int processId; // Get process id... // GetWindowThreadProcessId does use SetLastError(). So a call to GetLastError() would be meanless. // Disabling the PreSharp warning. #pragma warning suppress 6523 if (SafeNativeMethods.GetWindowThreadProcessId(hwnd, out processId) == 0) { throw new ElementNotAvailableException(); } SetHandle(Misc.OpenProcess(UnsafeNativeMethods.PROCESS_QUERY_INFORMATION | UnsafeNativeMethods.PROCESS_VM_READ, false, processId, hwnd)); } // 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
- CatalogZone.cs
- TextContainerHelper.cs
- WizardForm.cs
- returneventsaver.cs
- DbFunctionCommandTree.cs
- DebugView.cs
- TextDecoration.cs
- ButtonBaseAutomationPeer.cs
- BindingManagerDataErrorEventArgs.cs
- Perspective.cs
- MediaElementAutomationPeer.cs
- CannotUnloadAppDomainException.cs
- TypedElement.cs
- NavigationProperty.cs
- mongolianshape.cs
- Vector3DAnimationUsingKeyFrames.cs
- Brush.cs
- InputProviderSite.cs
- WebPartCollection.cs
- ConfigurationValidatorBase.cs
- Pair.cs
- OleDbConnectionFactory.cs
- MemberProjectionIndex.cs
- UntrustedRecipientException.cs
- TripleDES.cs
- Border.cs
- SerialPort.cs
- IODescriptionAttribute.cs
- StrongNameIdentityPermission.cs
- CompilationLock.cs
- FlowPosition.cs
- ObjectQueryProvider.cs
- KeySpline.cs
- ObjectDisposedException.cs
- WindowsUserNameSecurityTokenAuthenticator.cs
- KeyManager.cs
- FixedDocumentSequencePaginator.cs
- ExecutedRoutedEventArgs.cs
- WindowsIdentity.cs
- PeerMessageDispatcher.cs
- SymLanguageVendor.cs
- SchemaImporterExtension.cs
- TypeLibConverter.cs
- Cursors.cs
- WindowsListViewSubItem.cs
- HtmlInputText.cs
- DataContract.cs
- CaseInsensitiveHashCodeProvider.cs
- JoinElimination.cs
- InstanceOwnerException.cs
- TabletCollection.cs
- DataSet.cs
- TextFindEngine.cs
- ADMembershipUser.cs
- DrawingContextDrawingContextWalker.cs
- ContentPlaceHolderDesigner.cs
- OleDbRowUpdatedEvent.cs
- SQLUtility.cs
- InstancePersistenceCommandException.cs
- SessionPageStateSection.cs
- KeyTime.cs
- MarshalByRefObject.cs
- FontStretchConverter.cs
- BaseCodePageEncoding.cs
- ToolStripManager.cs
- TextElementAutomationPeer.cs
- CaseInsensitiveComparer.cs
- EndpointBehaviorElement.cs
- XDRSchema.cs
- smtpconnection.cs
- WindowsFormsDesignerOptionService.cs
- XmlCDATASection.cs
- SubclassTypeValidator.cs
- Wildcard.cs
- ParameterModifier.cs
- EventLogPermissionEntry.cs
- TracingConnectionInitiator.cs
- HtmlInputPassword.cs
- DocumentEventArgs.cs
- IgnoreSection.cs
- StreamGeometryContext.cs
- GlyphTypeface.cs
- AuthenticationModuleElement.cs
- AutomationProperties.cs
- StorageMappingItemLoader.cs
- ResourceAssociationType.cs
- MailWebEventProvider.cs
- SecUtil.cs
- ColumnMap.cs
- NativeMethods.cs
- ReaderOutput.cs
- SwitchElementsCollection.cs
- PropertyDescriptorGridEntry.cs
- QualificationDataItem.cs
- LineSegment.cs
- ParseHttpDate.cs
- shaperfactoryquerycachekey.cs
- StyleCollection.cs
- Evidence.cs
- ProvidersHelper.cs