Let's take a break from C++ for a while (we'll resume with data
structures and continue on with pointers, recursion and what not).
As a new direction, I'd like to start a new series on NvDA add-ons,
specifically add-on development and a few working examples. Note that
I'm still learning the add-on interface and am also learning Python,
so there might be incorrect information.
For starters, NVDA stands for NonVisual Desktop Access. It is a free,
open-source screen reader for Microsoft Windows (similar products
exists for Linux). It supports latest Windows versions in both 32-bit
and 64-bit architectures (no ARM yet) and supports many applications
out of the box.
One of the attractions of NVDA is its extensive plugin architecture.
The core NVDA code can be extended by add-ons to provide global or
app-specific functionality, such as providing new commands, improving
access to applications and so forth. Besides this, add-ons may bundle
new speech synthesizers or add support for braille displays.
This new series is not meant to be a complete tutorial on Python
(there are many websites which talks about Python), nor a complete
tutorial on C++ (although parts of NVDA is written in CPP). The new
series is aimed towards mostly new add-on writers and to serve as a
reference guide for existing add-on authors as well (I'm a beginner
myself). Occasionally, I may provide example code that does work
(along with some C++ equivalents to Py code). But most importantly, I
So let's get started with the new NVDA add-ons series by talking about
what you'll need for add-on development.