Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / wpf / src / UIAutomation / Win32Providers / MS / Internal / AutomationProxies / WindowsRebar.cs / 1 / WindowsRebar.cs
//---------------------------------------------------------------------------- // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // // Description: HWND-based Rebar Proxy // // History: // Jean-Francois Peyroux. Created // // using System; using System.Collections; using System.Text; using System.Runtime.InteropServices; using System.ComponentModel; using System.Windows.Automation; using System.Windows.Automation.Provider; using System.Windows; using MS.Win32; namespace MS.Internal.AutomationProxies { class WindowsRebar: ProxyHwnd, IRawElementProviderHwndOverride { // ----------------------------------------------------- // // Constructors // // ----------------------------------------------------- #region Constructors WindowsRebar (IntPtr hwnd, ProxyFragment parent, int item) : base( hwnd, parent, item ) { _sType = ST.Get(STID.LocalizedControlTypeRebar); _fIsContent = false; // support for events _createOnEvent = new WinEventTracker.ProxyRaiseEvents (RaiseEvents); } #endregion #region Proxy Create // Static Create method called by UIAutomation to create this proxy. // returns null if unsuccessful internal static IRawElementProviderSimple Create(IntPtr hwnd, int idChild, int idObject) { return Create(hwnd, idChild); } private static IRawElementProviderSimple Create(IntPtr hwnd, int idChild) { // Something is wrong if idChild is not zero if (idChild != 0) { System.Diagnostics.Debug.Assert (idChild == 0, "Invalid Child Id, idChild != 0"); throw new ArgumentOutOfRangeException("idChild", idChild, SR.Get(SRID.ShouldBeZero)); } return new WindowsRebar(hwnd, null, idChild); } // Static Create method called by the event tracker system internal static void RaiseEvents (IntPtr hwnd, int eventId, object idProp, int idObject, int idChild) { if (idObject != NativeMethods.OBJID_VSCROLL && idObject != NativeMethods.OBJID_HSCROLL) { WindowsRebar wtv = new WindowsRebar (hwnd, null, -1); wtv.DispatchEvents (eventId, idProp, idObject, idChild); } } #endregion //------------------------------------------------------ // // Patterns Implementation // //----------------------------------------------------- #region ProxyFragment Interface // Returns the next sibling element in the raw hierarchy. // Peripheral controls have always negative values. // Returns null if no next child internal override ProxySimple GetNextSibling (ProxySimple child) { int item = child._item; // If the index of the next node would be out of range... if (item >= 0 && (item + 1) < Count) { // return a node to represent the requested item. return CreateRebarItem (item + 1); } return null; } // Returns the previous sibling element in the raw hierarchy. // Peripheral controls have always negative values. // Returns null is no previous internal override ProxySimple GetPreviousSibling (ProxySimple child) { // If the index of the previous node would be out of range... int item = child._item; if (item > 0 && item < Count) { return CreateRebarItem (item - 1); } return null; } // Returns the first child element in the raw hierarchy. internal override ProxySimple GetFirstChild () { return Count > 0 ? CreateRebarItem (0) : null; } // Returns the last child element in the raw hierarchy. internal override ProxySimple GetLastChild () { int count = Count; return count > 0 ? CreateRebarItem (count - 1) : null; } // Returns a Proxy element corresponding to the specified screen coordinates. internal override ProxySimple ElementProviderFromPoint (int x, int y) { int x1 = x; int y1 = y; NativeMethods.Win32Rect rebarRect = new NativeMethods.Win32Rect (); if (!Misc.GetWindowRect(_hwnd, ref rebarRect)) { return null; } if (x >= rebarRect.left && x <= rebarRect.right && y >= rebarRect.top && y <= rebarRect.bottom) { x = x - rebarRect.left; y = y - rebarRect.top; NativeMethods.Win32Point pt = new NativeMethods.Win32Point (x, y); int BandID = getRebarBandIDFromPoint (pt); if (-1 != BandID) { return CreateRebarItem (BandID).ElementProviderFromPoint (x1, y1); } } return null; } #endregion #region IRawElementProviderHwndOverride Interface //------------------------------------------------------ // // Interface IRawElementProviderHwndOverride // //------------------------------------------------------ IRawElementProviderSimple IRawElementProviderHwndOverride.GetOverrideProviderForHwnd (IntPtr hwnd) { // return the appropriate placeholder for the given hwnd... // loop over all the band to find it. for (RebarBandItem band = (RebarBandItem) GetFirstChild (); band != null; band = (RebarBandItem) GetNextSibling (band)) { if (band.HwndBand == hwnd) { return new RebarBandChildOverrideProxy (hwnd, band, band._item); } } // Should never get here return null; } #endregion IRawElementProviderHwndOverride Interface // ----------------------------------------------------- // // Private Methods // // ------------------------------------------------------ #region Private Methods // Creates a list item RawElementBase Item private RebarBandItem CreateRebarItem (int index) { return new RebarBandItem (_hwnd, this, index); } private int Count { get { return Misc.ProxySendMessageInt(_hwnd, NativeMethods.RB_GETBANDCOUNT, IntPtr.Zero, IntPtr.Zero); } } private unsafe int getRebarBandIDFromPoint (NativeMethods.Win32Point pt) { NativeMethods.RB_HITTESTINFO rbHitTestInfo = new NativeMethods.RB_HITTESTINFO (); rbHitTestInfo.pt = pt; rbHitTestInfo.uFlags = 0; rbHitTestInfo.iBand = 0; return XSendMessage.XSendGetIndex(_hwnd, NativeMethods.RB_HITTEST, IntPtr.Zero, new IntPtr(&rbHitTestInfo), Marshal.SizeOf(rbHitTestInfo.GetType())); } #endregion //----------------------------------------------------- // // Private Fields // //----------------------------------------------------- #region Private Fields private enum CommonControlStyles { // CCS_TOP = 0x00000001, // CCS_NOMOVEY = 0x00000002, // CCS_BOTTOM = 0x00000003, // CCS_NORESIZE = 0x00000004, // CCS_NOPARENTALIGN = 0x00000008, // CCS_ADJUSTABLE = 0x00000020, // CCS_NODIVIDER = 0x00000040, CCS_VERT = 0x00000080, // CCS_LEFT = (CCS_VERT | CCS_TOP), // CCS_RIGHT = (CCS_VERT | CCS_BOTTOM), // CCS_NOMOVEX = (CCS_VERT | CCS_NOMOVEY) } private const int RBBIM_CHILD = 0x10; #endregion // ----------------------------------------------------- // // RebarBandItem Private Class // //------------------------------------------------------ #region RebarBandItem class RebarBandItem: ProxyFragment, IInvokeProvider { // ----------------------------------------------------- // // Constructors // // ------------------------------------------------------ #region Constructors internal RebarBandItem (IntPtr hwnd, ProxyFragment parent, int item) : base (hwnd, parent, item) { // Set the strings to return properly the properties. _sType = ST.Get(STID.LocalizedControlTypeRebarBand); _fIsContent = false; } #endregion //------------------------------------------------------ // // Patterns Implementation // //----------------------------------------------------- #region ProxySimple // Gets the bounding rectangle for this element internal override Rect BoundingRectangle { get { return GetBoundingRectangle (_hwnd, _item); } } //Gets the controls help text internal override string HelpText { get { IntPtr hwndToolTip = Misc.ProxySendMessage(_hwnd, NativeMethods.RB_GETTOOLTIPS, IntPtr.Zero, IntPtr.Zero); return Misc.GetItemToolTipText(_hwnd, hwndToolTip, _item); } } //Gets the localized name internal override string LocalizedName { get { return ST.Get(STID.LocalizedNameWindowsReBarBandItem); } } #endregion #region ProxyFragment Interface // Returns the next sibling element in the raw hierarchy. // Peripheral controls have always negative values. // Returns null if no next child internal override ProxySimple GetNextSibling (ProxySimple child) { return null; } // Returns the previous sibling element in the raw hierarchy. // Peripheral controls have always negative values. // Returns null is no previous internal override ProxySimple GetPreviousSibling (ProxySimple child) { return null; } // Returns the first child element in the raw hierarchy. internal override ProxySimple GetFirstChild () { IntPtr hwndBand = HwndBand; if (hwndBand != IntPtr.Zero) { return new RebarBandChildOverrideProxy (HwndBand, this, _item); } return null; } // Returns the last child element in the raw hierarchy. internal override ProxySimple GetLastChild () { // By construction, a rebar band can only have one children return GetFirstChild (); } // Returns a Proxy element corresponding to the specified screen coordinates. internal override ProxySimple ElementProviderFromPoint (int x, int y) { IntPtr hwndBand = HwndBand; if (hwndBand != IntPtr.Zero && Misc.PtInWindowRect(hwndBand, x, y)) { return null; } return this; } internal override object GetElementProperty(AutomationProperty idProp) { if (idProp == AutomationElement.IsControlElementProperty) { // // return false; } return base.GetElementProperty(idProp); } #endregion #region InvokeInteropPattern void IInvokeProvider.Invoke () { // Make sure that the control is enabled if (!SafeNativeMethods.IsWindowEnabled(_hwnd)) { throw new ElementNotEnabledException(); } Misc.PostMessage(_hwnd, NativeMethods.RB_PUSHCHEVRON, (IntPtr)_item, IntPtr.Zero); } #endregion //------------------------------------------------------ // // Internal Methods // //----------------------------------------------------- #region Internal Methods // Returns the bounding rectangle of the control. internal static Rect GetBoundingRectangle (IntPtr hwnd, int item) { NativeMethods.Win32Rect rectW32 = NativeMethods.Win32Rect.Empty; unsafe { if (!XSendMessage.XSend(hwnd, NativeMethods.RB_GETRECT, new IntPtr(item), new IntPtr(&rectW32), Marshal.SizeOf(rectW32.GetType()), XSendMessage.ErrorValue.Zero)) { return Rect.Empty; } } if (!Misc.MapWindowPoints(hwnd, IntPtr.Zero, ref rectW32, 2)) { return Rect.Empty; } // Work around a bug in the common control. Swap the X and Y value for vertical // rebar bands if (Misc.IsBitSet(Misc.GetWindowStyle(hwnd), (int)CommonControlStyles.CCS_VERT)) { return new Rect (rectW32.left, rectW32.top, rectW32.bottom - rectW32.top, rectW32.right - rectW32.left); } else { return rectW32.ToRect(Misc.IsControlRTL(hwnd)); } } internal IntPtr HwndBand { get { if (_hwndBand == IntPtr.Zero) { NativeMethods.REBARBANDINFO rebarBandInfo = new NativeMethods.REBARBANDINFO(); rebarBandInfo.fMask = RBBIM_CHILD; unsafe { if (XSendMessage.XSend(_hwnd, NativeMethods.RB_GETBANDINFOA, new IntPtr(_item), new IntPtr(&rebarBandInfo), Marshal.SizeOf(rebarBandInfo.GetType()), XSendMessage.ErrorValue.Zero)) { _hwndBand = rebarBandInfo.hwndChild; } } } return _hwndBand; } } #endregion //----------------------------------------------------- // // Private Fields // //----------------------------------------------------- #region Private Fields IntPtr _hwndBand = IntPtr.Zero; #endregion } #endregion // ------------------------------------------------------ // // RebarBandChildOverrideProxy Private Class // //----------------------------------------------------- #region RebarBandChildOverrideProxy class RebarBandChildOverrideProxy: ProxyHwnd { // ------------------------------------------------------ // // Constructors // // ------------------------------------------------------ #region Constructors internal RebarBandChildOverrideProxy (IntPtr hwnd, ProxyFragment parent, int item) : base (hwnd, parent, item) { _fIsContent = false; } #endregion //----------------------------------------------------- // // Patterns Implementation // //------------------------------------------------------ #region ProxySimple Interface internal override ProviderOptions ProviderOptions { get { return base.ProviderOptions | ProviderOptions.OverrideProvider; } } // Process all the Logical and Raw Element Properties internal override object GetElementProperty (AutomationProperty idProp) { if (idProp == AutomationElement.IsControlElementProperty) { // // // In IE6, the rebar band HWND tree was only one level deep: // // rebar / rebar band / rebar item (Toolbar32) // // In IE7, the HWND tree is the same but the rebar item is // a window acting as another container, for instance: // // rebar / rebar band / rebar item (FavBandClass) / children (Toolbar32) // // Hide windows that are intermediate containers from the control view Accessible accThis = Accessible.Wrap(this.AccessibleObject); if ((accThis != null) && (accThis.ChildCount == 1)) { Accessible accWind = accThis.FirstChild; if ((accWind != null) && (accWind.Role == AccessibleRole.Window)) { return false; } } } // No property should be handled by the override proxy // Overrides the ProxySimple implementation. return null; } #endregion } #endregion } } // 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: HWND-based Rebar Proxy // // History: // Jean-Francois Peyroux. Created // // using System; using System.Collections; using System.Text; using System.Runtime.InteropServices; using System.ComponentModel; using System.Windows.Automation; using System.Windows.Automation.Provider; using System.Windows; using MS.Win32; namespace MS.Internal.AutomationProxies { class WindowsRebar: ProxyHwnd, IRawElementProviderHwndOverride { // ----------------------------------------------------- // // Constructors // // ----------------------------------------------------- #region Constructors WindowsRebar (IntPtr hwnd, ProxyFragment parent, int item) : base( hwnd, parent, item ) { _sType = ST.Get(STID.LocalizedControlTypeRebar); _fIsContent = false; // support for events _createOnEvent = new WinEventTracker.ProxyRaiseEvents (RaiseEvents); } #endregion #region Proxy Create // Static Create method called by UIAutomation to create this proxy. // returns null if unsuccessful internal static IRawElementProviderSimple Create(IntPtr hwnd, int idChild, int idObject) { return Create(hwnd, idChild); } private static IRawElementProviderSimple Create(IntPtr hwnd, int idChild) { // Something is wrong if idChild is not zero if (idChild != 0) { System.Diagnostics.Debug.Assert (idChild == 0, "Invalid Child Id, idChild != 0"); throw new ArgumentOutOfRangeException("idChild", idChild, SR.Get(SRID.ShouldBeZero)); } return new WindowsRebar(hwnd, null, idChild); } // Static Create method called by the event tracker system internal static void RaiseEvents (IntPtr hwnd, int eventId, object idProp, int idObject, int idChild) { if (idObject != NativeMethods.OBJID_VSCROLL && idObject != NativeMethods.OBJID_HSCROLL) { WindowsRebar wtv = new WindowsRebar (hwnd, null, -1); wtv.DispatchEvents (eventId, idProp, idObject, idChild); } } #endregion //------------------------------------------------------ // // Patterns Implementation // //----------------------------------------------------- #region ProxyFragment Interface // Returns the next sibling element in the raw hierarchy. // Peripheral controls have always negative values. // Returns null if no next child internal override ProxySimple GetNextSibling (ProxySimple child) { int item = child._item; // If the index of the next node would be out of range... if (item >= 0 && (item + 1) < Count) { // return a node to represent the requested item. return CreateRebarItem (item + 1); } return null; } // Returns the previous sibling element in the raw hierarchy. // Peripheral controls have always negative values. // Returns null is no previous internal override ProxySimple GetPreviousSibling (ProxySimple child) { // If the index of the previous node would be out of range... int item = child._item; if (item > 0 && item < Count) { return CreateRebarItem (item - 1); } return null; } // Returns the first child element in the raw hierarchy. internal override ProxySimple GetFirstChild () { return Count > 0 ? CreateRebarItem (0) : null; } // Returns the last child element in the raw hierarchy. internal override ProxySimple GetLastChild () { int count = Count; return count > 0 ? CreateRebarItem (count - 1) : null; } // Returns a Proxy element corresponding to the specified screen coordinates. internal override ProxySimple ElementProviderFromPoint (int x, int y) { int x1 = x; int y1 = y; NativeMethods.Win32Rect rebarRect = new NativeMethods.Win32Rect (); if (!Misc.GetWindowRect(_hwnd, ref rebarRect)) { return null; } if (x >= rebarRect.left && x <= rebarRect.right && y >= rebarRect.top && y <= rebarRect.bottom) { x = x - rebarRect.left; y = y - rebarRect.top; NativeMethods.Win32Point pt = new NativeMethods.Win32Point (x, y); int BandID = getRebarBandIDFromPoint (pt); if (-1 != BandID) { return CreateRebarItem (BandID).ElementProviderFromPoint (x1, y1); } } return null; } #endregion #region IRawElementProviderHwndOverride Interface //------------------------------------------------------ // // Interface IRawElementProviderHwndOverride // //------------------------------------------------------ IRawElementProviderSimple IRawElementProviderHwndOverride.GetOverrideProviderForHwnd (IntPtr hwnd) { // return the appropriate placeholder for the given hwnd... // loop over all the band to find it. for (RebarBandItem band = (RebarBandItem) GetFirstChild (); band != null; band = (RebarBandItem) GetNextSibling (band)) { if (band.HwndBand == hwnd) { return new RebarBandChildOverrideProxy (hwnd, band, band._item); } } // Should never get here return null; } #endregion IRawElementProviderHwndOverride Interface // ----------------------------------------------------- // // Private Methods // // ------------------------------------------------------ #region Private Methods // Creates a list item RawElementBase Item private RebarBandItem CreateRebarItem (int index) { return new RebarBandItem (_hwnd, this, index); } private int Count { get { return Misc.ProxySendMessageInt(_hwnd, NativeMethods.RB_GETBANDCOUNT, IntPtr.Zero, IntPtr.Zero); } } private unsafe int getRebarBandIDFromPoint (NativeMethods.Win32Point pt) { NativeMethods.RB_HITTESTINFO rbHitTestInfo = new NativeMethods.RB_HITTESTINFO (); rbHitTestInfo.pt = pt; rbHitTestInfo.uFlags = 0; rbHitTestInfo.iBand = 0; return XSendMessage.XSendGetIndex(_hwnd, NativeMethods.RB_HITTEST, IntPtr.Zero, new IntPtr(&rbHitTestInfo), Marshal.SizeOf(rbHitTestInfo.GetType())); } #endregion //----------------------------------------------------- // // Private Fields // //----------------------------------------------------- #region Private Fields private enum CommonControlStyles { // CCS_TOP = 0x00000001, // CCS_NOMOVEY = 0x00000002, // CCS_BOTTOM = 0x00000003, // CCS_NORESIZE = 0x00000004, // CCS_NOPARENTALIGN = 0x00000008, // CCS_ADJUSTABLE = 0x00000020, // CCS_NODIVIDER = 0x00000040, CCS_VERT = 0x00000080, // CCS_LEFT = (CCS_VERT | CCS_TOP), // CCS_RIGHT = (CCS_VERT | CCS_BOTTOM), // CCS_NOMOVEX = (CCS_VERT | CCS_NOMOVEY) } private const int RBBIM_CHILD = 0x10; #endregion // ----------------------------------------------------- // // RebarBandItem Private Class // //------------------------------------------------------ #region RebarBandItem class RebarBandItem: ProxyFragment, IInvokeProvider { // ----------------------------------------------------- // // Constructors // // ------------------------------------------------------ #region Constructors internal RebarBandItem (IntPtr hwnd, ProxyFragment parent, int item) : base (hwnd, parent, item) { // Set the strings to return properly the properties. _sType = ST.Get(STID.LocalizedControlTypeRebarBand); _fIsContent = false; } #endregion //------------------------------------------------------ // // Patterns Implementation // //----------------------------------------------------- #region ProxySimple // Gets the bounding rectangle for this element internal override Rect BoundingRectangle { get { return GetBoundingRectangle (_hwnd, _item); } } //Gets the controls help text internal override string HelpText { get { IntPtr hwndToolTip = Misc.ProxySendMessage(_hwnd, NativeMethods.RB_GETTOOLTIPS, IntPtr.Zero, IntPtr.Zero); return Misc.GetItemToolTipText(_hwnd, hwndToolTip, _item); } } //Gets the localized name internal override string LocalizedName { get { return ST.Get(STID.LocalizedNameWindowsReBarBandItem); } } #endregion #region ProxyFragment Interface // Returns the next sibling element in the raw hierarchy. // Peripheral controls have always negative values. // Returns null if no next child internal override ProxySimple GetNextSibling (ProxySimple child) { return null; } // Returns the previous sibling element in the raw hierarchy. // Peripheral controls have always negative values. // Returns null is no previous internal override ProxySimple GetPreviousSibling (ProxySimple child) { return null; } // Returns the first child element in the raw hierarchy. internal override ProxySimple GetFirstChild () { IntPtr hwndBand = HwndBand; if (hwndBand != IntPtr.Zero) { return new RebarBandChildOverrideProxy (HwndBand, this, _item); } return null; } // Returns the last child element in the raw hierarchy. internal override ProxySimple GetLastChild () { // By construction, a rebar band can only have one children return GetFirstChild (); } // Returns a Proxy element corresponding to the specified screen coordinates. internal override ProxySimple ElementProviderFromPoint (int x, int y) { IntPtr hwndBand = HwndBand; if (hwndBand != IntPtr.Zero && Misc.PtInWindowRect(hwndBand, x, y)) { return null; } return this; } internal override object GetElementProperty(AutomationProperty idProp) { if (idProp == AutomationElement.IsControlElementProperty) { // // return false; } return base.GetElementProperty(idProp); } #endregion #region InvokeInteropPattern void IInvokeProvider.Invoke () { // Make sure that the control is enabled if (!SafeNativeMethods.IsWindowEnabled(_hwnd)) { throw new ElementNotEnabledException(); } Misc.PostMessage(_hwnd, NativeMethods.RB_PUSHCHEVRON, (IntPtr)_item, IntPtr.Zero); } #endregion //------------------------------------------------------ // // Internal Methods // //----------------------------------------------------- #region Internal Methods // Returns the bounding rectangle of the control. internal static Rect GetBoundingRectangle (IntPtr hwnd, int item) { NativeMethods.Win32Rect rectW32 = NativeMethods.Win32Rect.Empty; unsafe { if (!XSendMessage.XSend(hwnd, NativeMethods.RB_GETRECT, new IntPtr(item), new IntPtr(&rectW32), Marshal.SizeOf(rectW32.GetType()), XSendMessage.ErrorValue.Zero)) { return Rect.Empty; } } if (!Misc.MapWindowPoints(hwnd, IntPtr.Zero, ref rectW32, 2)) { return Rect.Empty; } // Work around a bug in the common control. Swap the X and Y value for vertical // rebar bands if (Misc.IsBitSet(Misc.GetWindowStyle(hwnd), (int)CommonControlStyles.CCS_VERT)) { return new Rect (rectW32.left, rectW32.top, rectW32.bottom - rectW32.top, rectW32.right - rectW32.left); } else { return rectW32.ToRect(Misc.IsControlRTL(hwnd)); } } internal IntPtr HwndBand { get { if (_hwndBand == IntPtr.Zero) { NativeMethods.REBARBANDINFO rebarBandInfo = new NativeMethods.REBARBANDINFO(); rebarBandInfo.fMask = RBBIM_CHILD; unsafe { if (XSendMessage.XSend(_hwnd, NativeMethods.RB_GETBANDINFOA, new IntPtr(_item), new IntPtr(&rebarBandInfo), Marshal.SizeOf(rebarBandInfo.GetType()), XSendMessage.ErrorValue.Zero)) { _hwndBand = rebarBandInfo.hwndChild; } } } return _hwndBand; } } #endregion //----------------------------------------------------- // // Private Fields // //----------------------------------------------------- #region Private Fields IntPtr _hwndBand = IntPtr.Zero; #endregion } #endregion // ------------------------------------------------------ // // RebarBandChildOverrideProxy Private Class // //----------------------------------------------------- #region RebarBandChildOverrideProxy class RebarBandChildOverrideProxy: ProxyHwnd { // ------------------------------------------------------ // // Constructors // // ------------------------------------------------------ #region Constructors internal RebarBandChildOverrideProxy (IntPtr hwnd, ProxyFragment parent, int item) : base (hwnd, parent, item) { _fIsContent = false; } #endregion //----------------------------------------------------- // // Patterns Implementation // //------------------------------------------------------ #region ProxySimple Interface internal override ProviderOptions ProviderOptions { get { return base.ProviderOptions | ProviderOptions.OverrideProvider; } } // Process all the Logical and Raw Element Properties internal override object GetElementProperty (AutomationProperty idProp) { if (idProp == AutomationElement.IsControlElementProperty) { // // // In IE6, the rebar band HWND tree was only one level deep: // // rebar / rebar band / rebar item (Toolbar32) // // In IE7, the HWND tree is the same but the rebar item is // a window acting as another container, for instance: // // rebar / rebar band / rebar item (FavBandClass) / children (Toolbar32) // // Hide windows that are intermediate containers from the control view Accessible accThis = Accessible.Wrap(this.AccessibleObject); if ((accThis != null) && (accThis.ChildCount == 1)) { Accessible accWind = accThis.FirstChild; if ((accWind != null) && (accWind.Role == AccessibleRole.Window)) { return false; } } } // No property should be handled by the override proxy // Overrides the ProxySimple implementation. return null; } #endregion } #endregion } } // 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
- XmlSchemaAttributeGroupRef.cs
- XmlNodeList.cs
- EntityContainerEntitySet.cs
- GridViewSortEventArgs.cs
- UrlMappingsModule.cs
- UIElementParaClient.cs
- DebugView.cs
- RadioButtonPopupAdapter.cs
- Matrix.cs
- FlowDocumentPageViewerAutomationPeer.cs
- PromptBuilder.cs
- XmlSchemaCollection.cs
- XsltSettings.cs
- ContentTextAutomationPeer.cs
- BitmapEffectInput.cs
- SystemIPv4InterfaceProperties.cs
- CodeAttachEventStatement.cs
- MarshalDirectiveException.cs
- ServiceControllerDesigner.cs
- SpotLight.cs
- HtmlContainerControl.cs
- XmlUtil.cs
- StringComparer.cs
- QuaternionIndependentAnimationStorage.cs
- GenericPrincipal.cs
- xdrvalidator.cs
- ListViewHitTestInfo.cs
- CssClassPropertyAttribute.cs
- XmlQueryContext.cs
- WebPartDisplayMode.cs
- RegexFCD.cs
- CustomAttributeSerializer.cs
- XmlExpressionDumper.cs
- TextUtf8RawTextWriter.cs
- ErrorFormatter.cs
- SecondaryIndexDefinition.cs
- ProcessInfo.cs
- HttpProfileBase.cs
- ComponentRenameEvent.cs
- RSATokenProvider.cs
- CustomAttributeFormatException.cs
- CalculatedColumn.cs
- LeaseManager.cs
- TypeInformation.cs
- Compiler.cs
- NativeMethods.cs
- FrugalList.cs
- MachinePropertyVariants.cs
- SecurityTokenAuthenticator.cs
- ColorPalette.cs
- CellTreeNode.cs
- TextTreeNode.cs
- PseudoWebRequest.cs
- IChannel.cs
- DataTableNewRowEvent.cs
- XPathDocumentBuilder.cs
- HtmlHistory.cs
- ToolStripSplitStackLayout.cs
- TypeExtensionConverter.cs
- ObservableDictionary.cs
- XmlQueryStaticData.cs
- Int32CollectionValueSerializer.cs
- AuthorizationSection.cs
- Slider.cs
- SizeConverter.cs
- XmlSchemaAttributeGroupRef.cs
- MissingFieldException.cs
- MarginsConverter.cs
- TrackBarRenderer.cs
- PreloadedPackages.cs
- CanExecuteRoutedEventArgs.cs
- FloatSumAggregationOperator.cs
- BitmapSourceSafeMILHandle.cs
- bidPrivateBase.cs
- BindUriHelper.cs
- SchemaSetCompiler.cs
- Token.cs
- SoapSchemaExporter.cs
- ContentDisposition.cs
- MailMessageEventArgs.cs
- BindValidationContext.cs
- PeerNameRegistration.cs
- XhtmlConformanceSection.cs
- RTLAwareMessageBox.cs
- ListenerElementsCollection.cs
- ControlCommandSet.cs
- LineBreak.cs
- JoinQueryOperator.cs
- WsatTransactionInfo.cs
- WizardPanelChangingEventArgs.cs
- ObjectView.cs
- ClientEndpointLoader.cs
- TreeViewImageIndexConverter.cs
- SamlDelegatingWriter.cs
- NotImplementedException.cs
- CompositionTarget.cs
- AudioFormatConverter.cs
- SizeAnimationUsingKeyFrames.cs
- StylusPlugInCollection.cs
- OleDbStruct.cs