//------------------------------------------------------
        //
        //  Patterns Implementation
        //
        //------------------------------------------------------

        #region ProxySimple Interface

        // Returns a pattern interface if supported.
        internal override object GetPatternProvider(AutomationPattern iid)
        {
            if (iid == InvokePattern.Pattern && WindowsListView.ListViewInvokable(_hwnd))
            {
                return(this);
            }

            if (iid == SelectionItemPattern.Pattern)
            {
                return(this);
            }

            if (iid == ValuePattern.Pattern && WindowsListView.ListViewEditable(_hwnd))
            {
                return(this);
            }

            if (iid == GridItemPattern.Pattern && IsImplementingGrid(_hwnd))
            {
                return(this);
            }

            if (iid == TogglePattern.Pattern && IsItemWithCheckbox(_hwnd, _item))
            {
                return(CreateListViewItemCheckbox());
            }

            if (iid == ScrollItemPattern.Pattern && WindowScroll.IsScrollable(_hwnd))
            {
                return(this);
            }

            return(null);
        }