Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / wpf / src / UIAutomation / UIAutomationClient / MS / Internal / Automation / SafeProcessHandle.cs / 1 / 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. //---------------------------------------------------------------------------- // //// 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
- FormsAuthenticationCredentials.cs
- EventLog.cs
- NetworkAddressChange.cs
- StrokeNodeEnumerator.cs
- DataTableCollection.cs
- JoinCqlBlock.cs
- OleDbInfoMessageEvent.cs
- DBSqlParserColumnCollection.cs
- Stream.cs
- XmlAttributes.cs
- FileLevelControlBuilderAttribute.cs
- CompositeCollectionView.cs
- ConsoleCancelEventArgs.cs
- SHA1.cs
- Font.cs
- MethodBody.cs
- UriPrefixTable.cs
- mactripleDES.cs
- SubstitutionDesigner.cs
- KeyValueSerializer.cs
- LocationSectionRecord.cs
- ImportContext.cs
- Queue.cs
- panel.cs
- DiscriminatorMap.cs
- RedirectionProxy.cs
- ApplicationServicesHostFactory.cs
- CodeMemberEvent.cs
- Int16AnimationUsingKeyFrames.cs
- TransformConverter.cs
- ThreadAttributes.cs
- InstalledVoice.cs
- storepermissionattribute.cs
- TreeBuilderBamlTranslator.cs
- CollectionViewGroup.cs
- SQLByteStorage.cs
- UnhandledExceptionEventArgs.cs
- XmlDataProvider.cs
- DurableInstance.cs
- QueryCacheKey.cs
- TextReader.cs
- OutputCacheModule.cs
- ModuleBuilder.cs
- RequestCachingSection.cs
- SymLanguageType.cs
- InboundActivityHelper.cs
- WebPartsSection.cs
- QueryOptionExpression.cs
- DataStorage.cs
- BuildProviderUtils.cs
- LexicalChunk.cs
- NCryptSafeHandles.cs
- JsonWriter.cs
- TextMarkerSource.cs
- SmuggledIUnknown.cs
- DataGridViewCellValueEventArgs.cs
- TaskFormBase.cs
- StateInitializationDesigner.cs
- SmiEventSink_DeferedProcessing.cs
- Attachment.cs
- X509Extension.cs
- TabPage.cs
- PathTooLongException.cs
- TraceSwitch.cs
- ZipPackagePart.cs
- GridViewPageEventArgs.cs
- ValueSerializerAttribute.cs
- Point.cs
- MethodBuilderInstantiation.cs
- RoleManagerEventArgs.cs
- ButtonColumn.cs
- RestHandler.cs
- TextBlock.cs
- SecurityException.cs
- Stroke.cs
- DbExpressionRules.cs
- FloaterBaseParaClient.cs
- ProtocolsSection.cs
- KeyPressEvent.cs
- AutomationPatternInfo.cs
- TemplateAction.cs
- ExtentKey.cs
- SrgsElementFactoryCompiler.cs
- VisualStyleTypesAndProperties.cs
- ProxyManager.cs
- RegexCompilationInfo.cs
- Compress.cs
- SystemBrushes.cs
- AnnotationResource.cs
- ScrollItemProviderWrapper.cs
- TextViewSelectionProcessor.cs
- GeneralTransform3D.cs
- MergePropertyDescriptor.cs
- TextBox.cs
- TreeViewEvent.cs
- RegistryDataKey.cs
- XmlSchemaComplexContent.cs
- GeometryHitTestParameters.cs
- PriorityQueue.cs
- HtmlInputControl.cs