You're right there are two problems.
Holding me up now is doing the hit test, I was hoping to recurse through the content stream looking for PDEContainers like so:
ASInt32 numElems = PDEContentGetNumElems(*contents);
for (ASInt32 i = 0; i < numElems; i++) {
pdeElement = PDEContentGetElem(*contents, i);
/* ... */
}
And then use PDEElementIsAtRect() on each of its contained PDEElements.
Unfortunately, all of these PDE functions in bold are not available to a Reader plugin.
Is there way in Reader to select graphic elements and then find out if they are within our marked content?