nvaccess / nvda

NVDA, the free and open source Screen Reader for Microsoft Windows
Other
2.08k stars 627 forks source link

NVDAHelper Windows 10, switch from WRL/CXX to C++/WinRT #10662

Closed LeonarddeR closed 2 years ago

LeonarddeR commented 4 years ago

We are using Windows Runtime C++ Template Library (WRL) to in operate with Windows OneCore APIs, particularly the OCR and ONeCore APIs.

From the WRL Docs:

WRL is now superseded by C++/WinRT, a standard C++17 language projection for Windows Runtime APIs. C++/WinRT is available in the Windows 10 SDK from version 1803 onward. C++/WinRT is implemented entirely in header files, and designed to provide you with first-class access to the modern Windows API. With C++/WinRT, you can both consume and author Windows Runtime APIs using any standards-compliant C++17 compiler. C++/WinRT typically performs better and produces smaller binaries than any other language option for the Windows Runtime. We will continue to support C++/CX and WRL, but highly recommend that new applications use C++/WinRT.

While NVDA works with WRL just fine, we should investigate a switch to WinRT as soon as new features have to be added to the Windows 10 local lib.

LeonarddeR commented 4 years ago

Blocked by #9661

codeofdusk commented 4 years ago

9661 has been merged, so this issue is no longer blocked.

feerrenrut commented 4 years ago

Further investigation will need to be done into the implications of this work.

LeonarddeR commented 3 years ago

Resources relevant for this process:

We also need to find out how to write directly to a buffer (utils.cpp)