![]() ![]() Add a ppVersionMajor property to the appModule to make it easy to discover the major version of PowerPoint (e.g. Specifically, we check if there is a slide show window and if its currently active, before simply resorting to the active window (current view of the active presentation). However, as this is the application, and no specifically a document window COM object, we check things in a different order. AppModule.chooseNVDAObjectOverla圜lasses: rewrite to use the ppApplication property on the appModule rather than fetching the object model with fetchPpObjectModel. PaneClass DC: remove the ppObjectModel property getter as the ppObjectModel attribute is now always set by external code (chooseNVDAObjectOverla圜lasses). This means that all code for choosing the correct NVDAObject class can be in the one place, rather than duplicated across multiple places. PaneClassDC's selection property: If there is no specific selection within the window, return a new copy of the NVDAObject for this document window, but rather than instanciating a DocumentWindow NVDAObject directly, just instanciate another IAccessible NVDAObject, forcing NVDA to do its overlay class magic and therefore make use of the appModule's chooseNVDAObjectOverLa圜lasses method. Remove the getPpObjectModel global function as its no longer needed. If no longer therefore requires a window handle to fetch this. It also of course registers our Powerpoint Application event sink. replace the fetchPpObjectModel method on the appModule with a ppApplication getter on the appModule which retreaves and caches the PowerPoint application instance by using GetActiveObject. ![]() Move the focus juggling code to make the COM object model be registered at startup, outof PaneClassDC's event_gainFocus and into its own helper method on the appModule. Its worth noting that when PowerPoint support was first written AccessibleObjectFromWindow had to be used as we back then had no way of using GetActiveObject if we were running with the UIAccess privilage. ![]() and storing the application instance on the appModule. Therefore, PowerPoint support had to be greatly restructured to use GetActiveObject with powerpoint.application. PowerPoint 2013 provides no window for a slide show that can give back the PowerPoint object model for that window using AccessibleObjectFromWindow.
0 Comments
Leave a Reply. |