https://bugs.winehq.org/show_bug.cgi?id=54669
--- Comment #5 from François Gouget fgouget@codeweavers.com --- The way I see this, LANG_INVARIANT is to Windows what LANG=C is to Unix, i.e. it's for when you want the result to not depend on the user's locale settings. See LOCALE_INVARIANT for Microsoft's documentation.
For resources LANG_NEUTRAL + SUBLANG_NEUTRAL identifies resources that don't need to be translated (such as icons, mouse pointers, etc.) and thus can be used in any locale. But in other contexts (such was when passed to StringFormat()), it seems to mean to use the user's default language. But I find that aspect to not be very clear.
Since here the LANGID is applied to a resource it's strange that it is LANG_INVARIANT that works. But maybe it's because that resource is essentially code so it's the API rules that apply.
Anyway, it works now.