forked from nvaccess/nvda
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Repaired the COM Registration Fixing Tool so it is more effective on …
…64bit Windows (nvaccess#9039). Problems: - The registerServer function called the 32-bit version of regsvr32.exe, even in 64-bit contexts. - The applyRegistryPatch function called the 32-bit version of regedit, even in 64-bit contexts. Remediation: - Replaced applyRegistryPatch function with two new functions: apply32bitRegistryPatch and apply64bitRegistryPatch. - Replaced registerServer function with register32bitServer and register64bitServer, to make clear what they do. - The new functions don't check 32/64 bitness; they leave that to the caller and log errors on failure. - Updated to more descriptive error logging. - Adjusted the Windows 7 code to use server registration with proper bitness for each DLL. Path remediations: - Moved the OLEACC_REG_FILE_PATH constant to the top of the file with the rest. - Added sysnative path to the list of path constants at the top of the file. - Now use Sysnative in the path for intentional 64bit calls, per discussions linked from nvaccess#9039. - Now use System32 in the path for 32-bit calls on either 32-bit or 64-bit systems. - For convenience, and because it's required in System32, renamed regedit.exe to regedt32.exe in the subprocess calls. - Removed now unused sysWow64 path constant. Misc: - Added docstring note about 32 and 64 bit functions needing attention if NVDA goes 64-bit in the future. - Updated copyright.
- Loading branch information
Showing
1 changed file
with
77 additions
and
38 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters