COMRegistrationFixes package

Utilities to re-register particular system COM interfaces needed by NVDA. Relevant discussions of DLLs, registry keys, and paths, can be found on these issues: https://github.com/nvaccess/nvda/issues/2807#issuecomment-320149243 https://github.com/nvaccess/nvda/issues/9039 https://github.com/nvaccess/nvda/issues/12560

COMRegistrationFixes.register32bitServer(fileName: str) None

Registers the COM proxy dll with the given file name, using the 32-bit version of regsvr32. Note: this function is valid while NVDA remains a 32-bit app. Re-evaluate if we move to 64-bit.

Parameters:

fileName – The path to the DLL

COMRegistrationFixes.register64bitServer(fileName: str) None

Registers the COM proxy dll with the given file name, using the 64-bit version of regsvr64. Note: this function is valid while NVDA remains a 32-bit app. Re-evaluate if we move to 64-bit.

Parameters:

fileName – The path to the DLL

COMRegistrationFixes.apply32bitRegistryPatch(fileName: str) None

Applies the registry patch with the given file name, using 32-bit regExe. Note: this function is valid while NVDA remains a 32-bit app. Re-evaluate if we move to 64-bit. :param fileName: The path to the .reg file

COMRegistrationFixes.apply64bitRegistryPatch(fileName: str) None

Applies the registry patch with the given file name, using 64-bit regExe. Note: this function is valid while NVDA remains a 32-bit app. Re-evaluate if we move to 64-bit.

Parameters:

fileName – The path to the .reg file

COMRegistrationFixes.fixCOMRegistrations() None

Registers most common COM proxies, in case they have accidentally been unregistered or overwritten by 3rd party software installs or uninstalls.