Программирование для Windows NT (том 2)

Определение текущего набора национальных параметров для задачи


В любой момент времени задача может получить установленный для нее идентификатор текущего набора установленных параметров, если воспользуется функцией 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)



Содержание раздела