I've spent the last week trying to demistify the behavior of embedded resources (via .rc files) in conjunction with internationalization, and it sure feels like some bizarre kind of computer archaeology.
Most information on this function is outdated or unhelpful, including the official documentation.
Michael Kaplan does not think highly of it either, the information provided in that blog post seems no longer correct (i.e. I have not been able to reproduce any scenario in which SetThreadLocale has an observable effect).
On a reasonably modern system (say, Win7 and newer), what does SetThreadLocale actually do, i.e. which APIs are affected by "The Thread Locale" (whatever that is supposed to be)?
I've ruled out any resource loading FindResource[Ex], including LoadString, dialog and menu functions; FormatMessage; the strsafe.h *Printf family; datetimeapi.h's GetDateFormat et al; and standard message boxes.