Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / wpf / src / Framework / System / Windows / Automation / Peers / WindowAutomationPeer.cs / 1 / WindowAutomationPeer.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 WindowAutomationPeer : FrameworkElementAutomationPeer { /// public WindowAutomationPeer(Window owner): base(owner) {} /// override protected string GetClassNameCore() { return "Window"; } /// ////// 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) { Window window = (Window)Owner; if(!window.IsSourceWindowNull) { StringBuilder sb = new StringBuilder(512); UnsafeNativeMethods.GetWindowText(new HandleRef(null, window.CriticalHandle), sb, sb.Capacity); name = sb.ToString(); if (name == null) name = string.Empty; } } return name; } /// override protected AutomationControlType GetAutomationControlTypeCore() { return AutomationControlType.Window; } /// ////// Critical as this method accesses critical data. /// TreatAsSafe - window bounds by themselves is considered safe. /// [SecurityCritical, SecurityTreatAsSafe ] override protected Rect GetBoundingRectangleCore() { Window window = (Window)Owner; Rect bounds = new Rect(0,0,0,0); if(!window.IsSourceWindowNull) { NativeMethods.RECT rc = new NativeMethods.RECT(0,0,0,0); IntPtr windowHandle = window.CriticalHandle; if(windowHandle != IntPtr.Zero) //it is Zero on a window that was just closed { try { SafeNativeMethods.GetWindowRect(new HandleRef(null, windowHandle), 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. 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 WindowAutomationPeer : FrameworkElementAutomationPeer { /// public WindowAutomationPeer(Window owner): base(owner) {} /// override protected string GetClassNameCore() { return "Window"; } /// ////// 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) { Window window = (Window)Owner; if(!window.IsSourceWindowNull) { StringBuilder sb = new StringBuilder(512); UnsafeNativeMethods.GetWindowText(new HandleRef(null, window.CriticalHandle), sb, sb.Capacity); name = sb.ToString(); if (name == null) name = string.Empty; } } return name; } /// override protected AutomationControlType GetAutomationControlTypeCore() { return AutomationControlType.Window; } /// ////// Critical as this method accesses critical data. /// TreatAsSafe - window bounds by themselves is considered safe. /// [SecurityCritical, SecurityTreatAsSafe ] override protected Rect GetBoundingRectangleCore() { Window window = (Window)Owner; Rect bounds = new Rect(0,0,0,0); if(!window.IsSourceWindowNull) { NativeMethods.RECT rc = new NativeMethods.RECT(0,0,0,0); IntPtr windowHandle = window.CriticalHandle; if(windowHandle != IntPtr.Zero) //it is Zero on a window that was just closed { try { SafeNativeMethods.GetWindowRect(new HandleRef(null, windowHandle), 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
- InstanceLockedException.cs
- DataGridViewCellStyle.cs
- TemplatePartAttribute.cs
- TcpSocketManager.cs
- TableItemPattern.cs
- WrapperEqualityComparer.cs
- CheckableControlBaseAdapter.cs
- CodeSnippetCompileUnit.cs
- SelectionItemPatternIdentifiers.cs
- XmlDocumentViewSchema.cs
- ConnectionManagementElement.cs
- ClientTargetSection.cs
- BooleanStorage.cs
- _NetworkingPerfCounters.cs
- DispatcherObject.cs
- SpecularMaterial.cs
- RequestReplyCorrelator.cs
- TextEditorLists.cs
- ResourcePool.cs
- _ShellExpression.cs
- ConsoleCancelEventArgs.cs
- DefaultTypeArgumentAttribute.cs
- DesignBinding.cs
- WsdlInspector.cs
- isolationinterop.cs
- MessageBodyDescription.cs
- TypeNameConverter.cs
- NameValueConfigurationElement.cs
- ItemContainerGenerator.cs
- FileRegion.cs
- ItemList.cs
- TransactionTraceIdentifier.cs
- SByteConverter.cs
- HttpTransportSecurity.cs
- Application.cs
- DllNotFoundException.cs
- GridViewUpdatedEventArgs.cs
- ComplexPropertyEntry.cs
- LayoutTable.cs
- TextEffectCollection.cs
- BamlRecordWriter.cs
- ToolBarButtonClickEvent.cs
- DataGridViewTopLeftHeaderCell.cs
- ProfileSection.cs
- TimeoutConverter.cs
- SendDesigner.xaml.cs
- DifferencingCollection.cs
- GeneralTransformCollection.cs
- ModelTreeEnumerator.cs
- TypedReference.cs
- TaiwanCalendar.cs
- EFAssociationProvider.cs
- ViewEventArgs.cs
- Triangle.cs
- HttpHandler.cs
- StandardTransformFactory.cs
- DetailsViewDeleteEventArgs.cs
- DashStyle.cs
- LogFlushAsyncResult.cs
- PixelFormat.cs
- ToolStripDropDownClosingEventArgs.cs
- FormViewActionList.cs
- RegexStringValidator.cs
- ValidatingPropertiesEventArgs.cs
- ContentTextAutomationPeer.cs
- GZipUtils.cs
- OleDbDataReader.cs
- UnsafeNativeMethodsCLR.cs
- OutputCacheSettings.cs
- HtmlCommandAdapter.cs
- TextTreeUndoUnit.cs
- FormatterServices.cs
- validationstate.cs
- HtmlGenericControl.cs
- MessageQueueEnumerator.cs
- HtmlWindowCollection.cs
- SchemaEntity.cs
- HtmlDocument.cs
- MsmqIntegrationChannelListener.cs
- LoadGrammarCompletedEventArgs.cs
- Size3DConverter.cs
- FormClosingEvent.cs
- ContractNamespaceAttribute.cs
- ZoomPercentageConverter.cs
- WebControlParameterProxy.cs
- Point3DConverter.cs
- MappingSource.cs
- PropertyTabChangedEvent.cs
- XmlComplianceUtil.cs
- _NegotiateClient.cs
- KeyGesture.cs
- Encoder.cs
- XmlBinaryReader.cs
- EntityDesignerDataSourceView.cs
- Compress.cs
- NullableLongAverageAggregationOperator.cs
- SchemaEntity.cs
- UndoManager.cs
- DataControlLinkButton.cs
- IconBitmapDecoder.cs