-
-
Notifications
You must be signed in to change notification settings - Fork 655
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Use a built interface for Office #6477
Comments
The work previously done on this topic: See branch: Building office headers using visual studio 2015
See https://msdn.microsoft.com/en-us/library/298h7faa.aspx for these attributes. Or search for "MSVC #import Attributes" The attributes we use:
The files created:
Note use |
@feerrenrut: Couldn't we just build the interface for Office 2010 and fall back on IDispatch for older versions? |
Possibly, there is a question around whether this work is warranted if we are moving to UIA. However I do believe this would significantly clean up the code base for supporting older versions of word. I don't think there are any blocking issues here, but it's not a priority for us at the moment. |
cc: @michaelDCurran |
Converting excel code base (because it is smaller than the MS Word code) was investigated in PR #9257 see #9257 (comment) In the generated excel interface, many methods take |
@feerrenrut Is this still in scope somehow? Note that Word performance is still not ideal when using the object model. |
I don't think this would have any impact on performance. The main goal was to improve code readability, and thus reduce errors, and speed up development. As an example of this see: the diff of winword.cpp line 1056 |
Now the performance is also quite good with the last NVDA Alpha, even without UIA enabled. However, since the support for Office 2007 will completely end in 2023, I wonder if this still needs to be implemented at all to maintain backwards compatibility with Office versions before 2010? I think this decision is better taken by nV Access. |
Support for Office 2010 and 2013 ended in 2020 and 2023 respectively, so I guess this doesn't need implemented anymore, especially given that UIA is used as an alternative which needs to be continuously improved. |
Yes, I think it makes sense to close this. I don't think this is worth the engineering effort given this is legacy code to eventually be shifted to UIA |
Longer term it may be beneficial to use a built interface for office rather than the current IDispatch method.
Currently using IDispatch, calling a non existent method is safe, it does not result in a crash. However using the built interface this would cause a crash. We have at least one method that was added in office 2010, however we need to support back to 2003. We don't know how many methods are not in office 2003.
Some questions are:
The text was updated successfully, but these errors were encountered: