I can call GetKeyboardLayout to get an "input locale identifier" that identifies the active layout in Windows. How can I convert this to a human-readable name like "English (US)"?
GetKeyboardLayoutName is misleading - it simply returns a string containing the hexadecimal version of the identifier obtained using GetKeyboardLayout .
source share