When initialization of SciLexer.dll fails it will try to unregister the Scintilla and CallTip window classes. This happens even if it did not successfully register those window classes. This may result in the unregistration of window classes registered by another DLL. I observed this behaviour on Windows 8.1 (x64).
Background: I am working on a plugin for the foobar2000 audio player. There is also another plugin which uses Scintilla. If both plugins are installed each will try to load its copy of SciLexer.dll. This results in the aboce failure conditions where one copy of SciLexer.dll remains loaded but its window classes are unregistered.
The attached patch adds book-keeping to unregister only the window classes which were successfully registered.
Log in to post a comment.