Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Core / System / Windows / Automation / Peers / GenericRootAutomationPeer.cs / 1 / GenericRootAutomationPeer.cs
using System; using System.Runtime.InteropServices; using System.Security; using System.Security.Permissions; using System.Text; using System.Windows; using System.Windows.Interop; using System.Windows.Media; using System.ComponentModel; using MS.Internal; using MS.Win32; // Used to support the warnings disabled below #pragma warning disable 1634, 1691 namespace System.Windows.Automation.Peers { /// public class GenericRootAutomationPeer : UIElementAutomationPeer { /// public GenericRootAutomationPeer(UIElement owner): base(owner) {} /// override protected string GetClassNameCore() { return "Pane"; } /// override protected AutomationControlType GetAutomationControlTypeCore() { return AutomationControlType.Pane; } /// ////// Critical: As this accesses Handle /// TreatAsSafe: Returning the Window Title is considered safe - discussed on Automation TA review /// [SecurityCritical,SecurityTreatAsSafe] override protected string GetNameCore() { string name = base.GetNameCore(); if(name == string.Empty) { IntPtr hwnd = this.Hwnd; if(hwnd != IntPtr.Zero) { try { StringBuilder sb = new StringBuilder(512); //This method elevates via SuppressUnmanadegCodeSecurity and throws Win32Exception on GetLastError UnsafeNativeMethods.GetWindowText(new HandleRef(null, hwnd), sb, sb.Capacity); name = sb.ToString(); } // Allow empty catch statements. #pragma warning disable 56502 catch(Win32Exception) {} // Disallow empty catch statements. #pragma warning restore 56502 if (name == null) name = string.Empty; } } return name; } /// ////// Critical as this method accesses critical data. /// TreatAsSafe - window bounds by themselves is considered safe. /// [SecurityCritical, SecurityTreatAsSafe ] override protected Rect GetBoundingRectangleCore() { Rect bounds = new Rect(0,0,0,0); IntPtr hwnd = this.Hwnd; if(hwnd != IntPtr.Zero) { NativeMethods.RECT rc = new NativeMethods.RECT(0,0,0,0); try { //This method elevates via SuppressUnmanadegCodeSecurity and throws Win32Exception on GetLastError SafeNativeMethods.GetWindowRect(new HandleRef(null, hwnd), ref rc); } // Allow empty catch statements. #pragma warning disable 56502 catch(Win32Exception) {} // Disallow empty catch statements. #pragma warning restore 56502 bounds = new Rect(rc.left, rc.top, rc.right - rc.left, rc.bottom - rc.top); } return bounds; } } } // 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
- CategoriesDocumentFormatter.cs
- StringUtil.cs
- UrlMappingsModule.cs
- ResXResourceReader.cs
- VariableAction.cs
- MemberAccessException.cs
- SynchronizedDispatch.cs
- ToolBarPanel.cs
- SafeFileMappingHandle.cs
- ParseHttpDate.cs
- DataGridHelper.cs
- GroupBoxRenderer.cs
- SqlFlattener.cs
- GeneralTransform3DGroup.cs
- DnsPermission.cs
- QuaternionAnimationUsingKeyFrames.cs
- DataGridViewRowEventArgs.cs
- MsdtcWrapper.cs
- ListBoxItemWrapperAutomationPeer.cs
- HttpResponse.cs
- XPathAxisIterator.cs
- ErrorRuntimeConfig.cs
- ProtocolsConfigurationEntry.cs
- NativeMethods.cs
- ApplicationServiceHelper.cs
- XmlCharType.cs
- HttpApplicationFactory.cs
- DllNotFoundException.cs
- TypeGeneratedEventArgs.cs
- WebEventCodes.cs
- DayRenderEvent.cs
- XmlNavigatorFilter.cs
- ObjectListItem.cs
- PublisherIdentityPermission.cs
- SymbolMethod.cs
- hresults.cs
- LogLogRecord.cs
- CssStyleCollection.cs
- ComplexTypeEmitter.cs
- AffineTransform3D.cs
- FontWeight.cs
- SqlDataSource.cs
- RSACryptoServiceProvider.cs
- NetSectionGroup.cs
- ObjRef.cs
- PersistenceContext.cs
- WorkflowDefinitionDispenser.cs
- ClientUtils.cs
- DataBinder.cs
- XmlSchemas.cs
- EtwProvider.cs
- KeyEvent.cs
- WindowsRegion.cs
- HtmlCommandAdapter.cs
- PreApplicationStartMethodAttribute.cs
- IndexedSelectQueryOperator.cs
- CodeLabeledStatement.cs
- ListDesigner.cs
- FlatButtonAppearance.cs
- Line.cs
- InvalidDataException.cs
- MDIClient.cs
- ToolStripKeyboardHandlingService.cs
- Parser.cs
- ConnectivityStatus.cs
- PartitionerStatic.cs
- CompositeScriptReferenceEventArgs.cs
- WorkerRequest.cs
- SecurityDescriptor.cs
- X509Certificate2.cs
- MarkupExtensionReturnTypeAttribute.cs
- VerificationAttribute.cs
- DrawingImage.cs
- StringCollection.cs
- safex509handles.cs
- RecipientInfo.cs
- PeerCollaboration.cs
- HandleValueEditor.cs
- AuthenticationService.cs
- _RequestCacheProtocol.cs
- GreaterThanOrEqual.cs
- RolePrincipal.cs
- AnnotationAuthorChangedEventArgs.cs
- SizeIndependentAnimationStorage.cs
- HybridDictionary.cs
- XmlAttribute.cs
- EncodingNLS.cs
- FloaterBaseParaClient.cs
- SqlConnectionHelper.cs
- ViewBox.cs
- WorkflowDefinitionContext.cs
- Stroke2.cs
- ServiceInfo.cs
- ColorDialog.cs
- RegularExpressionValidator.cs
- CaseInsensitiveOrdinalStringComparer.cs
- ContainsSearchOperator.cs
- CodeIdentifier.cs
- SecurityTokenResolver.cs
- _IPv6Address.cs