Определение текущего набора национальных параметров для задачи
В любой момент времени задача может получить установленный для нее идентификатор текущего набора установленных параметров, если воспользуется функцией GetThreadLocals:
LCID GetThreadLocale(VOID);
Эта функция не имеет параметров. Она возвращает 32-разрядный идентификатор национального набора параметров, из которого при помощи различных макрокоманд можно выделить различные компоненты.
С помощью макрокоманды LANGIDFROMLCID вы можете выделить из идентификатора набора национальных параметров идентификатор национального языка:
WORD LANGIDFROMLCID(
LCID lcid); // идентификатор набора национальных параметров
#define LANGIDFROMLCID(lcid) ((WORD)(lcid))
Далее, с помощью макрокоманды PRIMARYLANGID нетрудно выделить из идентификатора национального языка первичный идентификатор языка:
WORD PRIMARYLANGID(
WORD lgid); // идентификатор национального языка
#define PRIMARYLANGID(lgid) ((WORD)(lgid) & 0x3ff)
Аналогично, макрокоманда SUBLANGID позволяет выделить из идентификатора национального языка вторичный идентификатор языка (диалект):
WORD SUBLANGID(
WORD lgid); // идентификатор национального языка
#define SUBLANGID(lgid) ((WORD)(lgid) >> 10)