[wix-users] installing an input locale (aka keyboard layout)

Alan Sinclair anadem at gmail.com
Wed Oct 28 19:35:33 PDT 2020


Yes I'm using it as black box via the exports, which look like they're from
a merge module (though there's no separate merge module in the MSKLC tool's
directories)

CA01 = RegisterKeyboard.2C37395D1097420D968F857806893342
CA02 = UnregisterKeyboard.2C37395D1097420D968F857806893342
CA03 = AddKeyboardToLangBar.2C37395D1097420D968F857806893342
CA04 = RemoveKeyboardFromLangBar.2C37395D1097420D968F857806893342

where CA01 takes the fqn for the locale DLL and the Local ID as params in
CustomActionData, and the others take no params afaik. Unfortunately the
days when I could decompile DLLs are decades in the past.

Those entry points work fine when called from my MSI for install and
uninstall, but upgrade is leaving a messed-up Language Bar.
I've tried skipping the Add/Remove actions when it's an upgrade, and that
keeps the Language Bar "normal", but then UnregisterKeyboard fails during
uninstall so the uninstall rolls back.
Hence I'm trying to find info on how to use C++ with WINAPI to install a
locale from my own custom action DLL, so I can debug what's happening.

Sudden thought .. I wonder if moving RemoveExistingProduct could help?
I'll experiment some more.



On Wed, Oct 28, 2020 at 1:57 PM Hoover, Jacob <Jacob.Hoover at greenheck.com>
wrote:

> Not seeing any published source for KbdMsi.dll, so it’s a black box.  Also
> Exports of CA01 through CA04 doesn’t seem too intuitive for me.
>
>
>
> *From:* Alan Sinclair <anadem at gmail.com>
> *Sent:* Wednesday, October 28, 2020 3:07 PM
> *To:* Hoover, Jacob <Jacob.Hoover at greenheck.com>
> *Cc:* WiX Toolset Users Mailing List <wix-users at lists.wixtoolset.org>
> *Subject:* Re: [wix-users] installing an input locale (aka keyboard
> layout)
>
>
>
> Thanks! I'm actually trying to use the custom action DLL from the MSI
> built by MSKLC, and that works fine for a single install. But I'm hitting
> problems in upgrades .. using their custom actions in the upgrade ends up
> with duplicate entries in the Windows Language Bar, but skipping the
> actions on upgrade makes the package fail to uninstall (get 1603 from the
> action, and uninstall rolls back)
>
>
>
> So I'm hoping to roll a custom action DLL myself ...
>
>
>
>
>
> On Wed, Oct 28, 2020 at 1:00 PM Hoover, Jacob <Jacob.Hoover at greenheck.com>
> wrote:
>
> Never done one myself, but have you tried looking at what MSKLC builds
> into their MSI via Dark?
>
>
>
> *From:* wix-users <wix-users-bounces at lists.wixtoolset.org> *On Behalf Of *Alan
> Sinclair via wix-users
> *Sent:* Wednesday, October 28, 2020 2:56 PM
> *To:* WiX Toolset Users Mailing List <wix-users at lists.wixtoolset.org>
> *Cc:* Alan Sinclair <anadem at gmail.com>
> *Subject:* [wix-users] installing an input locale (aka keyboard layout)
>
>
>
> Does anyone here know about installing a keyboard layout? I'm using the
> MSKLC tool to create the layout definition DLL, but don't know what to code
> in the custom action to add the locale to Windows when the DLL is deployed.
>
> The MSKLC tool builds MSI installers but they aren't suitable for our use
> (for one, they are not versioned, also don't support upgrades)
>
> I haven't found any documentation so far, so any clues will be helpful
> thanks
>
> ____________________________________________________________________
> WiX Toolset Users Mailing List provided by FireGiant
> http://www.firegiant.com/
>
> NOTE: This email was received from an external source. Please use caution
> when opening links or attachments in the message.
>
> NOTE: This email was received from an external source. Please use caution
> when opening links or attachments in the message.
>



More information about the wix-users mailing list