Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / 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
- EventPrivateKey.cs
- XmlCharacterData.cs
- SimpleFileLog.cs
- ObjectItemCollection.cs
- Constraint.cs
- LinqMaximalSubtreeNominator.cs
- FontSizeConverter.cs
- FormViewInsertEventArgs.cs
- SoapTypeAttribute.cs
- MetadataUtil.cs
- OperationCanceledException.cs
- RoleGroupCollection.cs
- ToolStripArrowRenderEventArgs.cs
- DataContext.cs
- FormViewInsertEventArgs.cs
- MostlySingletonList.cs
- SerializationEventsCache.cs
- OverrideMode.cs
- CodeCatchClauseCollection.cs
- IssuedSecurityTokenProvider.cs
- NativeMethods.cs
- HttpHandler.cs
- ContextProperty.cs
- FormsAuthentication.cs
- NoneExcludedImageIndexConverter.cs
- MiniModule.cs
- BlurBitmapEffect.cs
- MouseGesture.cs
- ToolBar.cs
- BindingOperations.cs
- SmiEventSink_Default.cs
- ScopeElement.cs
- StorageEntityTypeMapping.cs
- DiscreteKeyFrames.cs
- ObjectQueryProvider.cs
- ColorDialog.cs
- ProgressBarAutomationPeer.cs
- FileChangesMonitor.cs
- CompositeCollectionView.cs
- QueryCacheEntry.cs
- BindingCompleteEventArgs.cs
- BrushValueSerializer.cs
- TimerElapsedEvenArgs.cs
- StreamReader.cs
- ModelChangedEventArgsImpl.cs
- CapabilitiesState.cs
- SystemFonts.cs
- DeclarationUpdate.cs
- WebServiceEnumData.cs
- XPathEmptyIterator.cs
- TargetConverter.cs
- TemplateBindingExpressionConverter.cs
- TreeViewEvent.cs
- CodeGroup.cs
- BitmapDownload.cs
- CollaborationHelperFunctions.cs
- DataGrid.cs
- ConnectionStringsExpressionBuilder.cs
- Int32CollectionConverter.cs
- TracedNativeMethods.cs
- HtmlUtf8RawTextWriter.cs
- Pen.cs
- WSFederationHttpSecurityElement.cs
- AccessorTable.cs
- AutomationIdentifier.cs
- Guid.cs
- NamedPermissionSet.cs
- WindowsScrollBarBits.cs
- SelectionManager.cs
- StylusButtonEventArgs.cs
- SynchronizationContext.cs
- HtmlWindow.cs
- iisPickupDirectory.cs
- XmlIlTypeHelper.cs
- HotCommands.cs
- AppDomainShutdownMonitor.cs
- MenuRendererClassic.cs
- Console.cs
- WeakReferenceKey.cs
- FormsAuthenticationTicket.cs
- GeneralTransform3DCollection.cs
- AddingNewEventArgs.cs
- WindowsAltTab.cs
- ButtonFieldBase.cs
- InstanceLockedException.cs
- EventHandlersStore.cs
- DbDataReader.cs
- ListenerAdapterBase.cs
- MexHttpBindingCollectionElement.cs
- AlphabeticalEnumConverter.cs
- SynchronizationHandlesCodeDomSerializer.cs
- ConfigurationStrings.cs
- XmlDeclaration.cs
- InstanceCreationEditor.cs
- ContentElement.cs
- BuildProviderCollection.cs
- ParameterReplacerVisitor.cs
- SqlBinder.cs
- CancelAsyncOperationRequest.cs
- DeferrableContentConverter.cs