Archive: MUI_LANGDLL_SAVELANGUAGE comes too late


MUI_LANGDLL_SAVELANGUAGE comes too late
MUI saves current (langdll selected) language in the INSTFILES page Leave function only. I understand why - not to write registry value on cancelled installation, but IMHO this is not 100% descision. Some initialization may require on INSTFILES page - install drivers, services or perform operations with already installed files. Not a problem to add this line to the script, but moving MUI_LANGDLL_SAVELANGUAGE to INSTFILES Show function looks usefull for me.


I don't understand. How can initialization in the instfiles page of drivers or services after that macro? Are you saying the initialization might fail and therefore the macro won't be called?


No. My situation is following: during installation QStar installer asks customer to select devices for claiming. This is done by a special GUI tool (just copied/installed application) that displays a list of available devices. While this happen on INSTFILES page, registry LanguageID value is not setten yet (will be done by MUI in Leave function), so application uses old/default lang. If MUI can save value in Show function LangId will be up-to-date.


That's a very specific case. In the normal case, we'd want the language to be saved only when the installation actually finishes. This allows the user to still cancel the installation in the instfiles page when something is asked or when the Cancel button is available in case he doesn't understand anything because of a wrong language.

That registry key is saved for the MUI anyway. It's not meant for external usage. It can just as well contain the name of the language someday if that's easier for the MUI. The documentation only states it stores the language, nothing else.