Question
How can I get elements in a page that I have selected?
I have selected a page in the pages panel in InDesign CS3 interface and in my plugin I wish to get all items in the selected page. However when I try to get the IHierarchy smart poiner, It is valid but the hierarchy does not exist! That is GetChildCount(), gives back 0!<br />What is wrong?<br /><br />My Code:<br /><br /> InterfacePtr<IDocument>document(_docUIDRef, UseDefaultIID());<br /> if(nil == document)<br /> {<br /> CAlert::ErrorAlert("CInDesignDocumentExplorer::inspectDocumentByHierarchy: IDocument is null!");<br /><br /> return;<br /> }<br /> IDataBase* database = ::GetDataBase(document);<br /> if(nil == database)<br /> {<br /> CAlert::ErrorAlert("CInDesignDocumentExplorer::inspectDocumentByHierarchy: IDataBase is null!");<br /><br /> return;<br /> }<br /><br /> InterfacePtr<IPageList>pageList(document, UseDefaultIID());<br /> if(nil == pageList)<br /> {<br /> CAlert::ErrorAlert("CInDesignDocumentExplorer::inspectDocumentByHierarchy: IPageList is null!");<br /><br /> return;<br /> }<br /><br /> UIDRef pageUIDRef(nil, kInvalidUID);<br /> UIDList selectedPages(database);<br /> Utils<ILayoutUIUtils>()->GetSelectedPages(selectedPages);<br /> int32 selectedPageNum = selectedPages.Length();<br /> DebugPrint("%i\n", selectedPageNum);<br /> if (selectedPageNum > 0)<br /> {<br /> pageUIDRef = selectedPages.GetRef(0);<br /> }<br /> else<br /> {<br /> int32 pageCount = pageList->GetPageCount();<br /> DebugPrint("%i\n", pageCount);<br /> UID pageUID = pageList->GetNthPageUID(0);<br /> pageUIDRef = UIDRef(database, pageUID);<br /> }<br /><br /> InterfacePtr<IHierarchy>pageHierarchy(pageUIDRef, UseDefaultIID());<br /> int32 childCount = pageHierarchy->GetChildCount(); // it is == 0!<br /> //traverseIHierarchy(pageHierarchy);<br /><br />Thanks<br /><br />Daniele