//TODO: unfinished
        private OoShapeObserver searchUnregisteredShapeByAccessible(string accName, XAccessibleContext cont)
        {
            Update();
            var obs = searchRegisterdSapeObserverByAccessibleName(accName, cont, false);

            if (obs != null)
            {
                return(obs);
            }

            XDrawPages pages = PagesSupplier.getDrawPages();

            if (pages != null)
            {
                try
                {
                    for (int i = 0; i < pages.getCount(); i++)
                    {
                        var anyPage = pages.getByIndex(i);
                        if (anyPage.hasValue())
                        {
                            var page = anyPage.Value;
                            if (page != null && page is XShapes)
                            {
                                for (int j = 0; j < ((XShapes)page).getCount(); j++)
                                {
                                    var anyShape = ((XShapes)page).getByIndex(j);
                                    if (anyShape.hasValue())
                                    {
                                        var    shape  = anyShape.Value;
                                        string name   = OoUtils.GetStringProperty(shape, "Name");
                                        string UIname = OoUtils.GetStringProperty(shape, "UINameSingular");
                                        string Title  = OoUtils.GetStringProperty(shape, "Title");

                                        //if (accName.Equals(UIname))
                                        //{

                                        //}
                                        //else if (accName.Equals(name))
                                        //{

                                        //}
                                        //else if (accName.Equals(name + " " + Title))
                                        //{

                                        //}
                                        //else
                                        //{

                                        //}
                                    }
                                }
                            }
                        }
                    }
                }
                catch (System.Exception) { }
            }
            return(null);
        }
        /// <summary>
        /// Obtain a page from a drawing.
        /// </summary>
        /// <param name="drawDocXDrawPages">The draw doc X draw pages.</param>
        /// <param name="pageIndex">Index of the page.</param>
        /// <returns>the XDrawPage at the given index or null if not successful.</returns>
        public static XDrawPage GetDrawPageByIndex(XDrawPages drawDocXDrawPages, int pageIndex)
        {
            // Now ask the XIndexAccess interface to the drawPages object to get a certain page.
            Object drawPage = drawDocXDrawPages != null ? drawDocXDrawPages.getByIndex(pageIndex) : new Object();

            // Get the right interface to the page.
            var drawPageXDrawPage = drawPage as XDrawPage;

            return drawPageXDrawPage;
        }