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



         

Определение отдельных национальных параметров


Теперь, когда мы научились устанавливать и определять идентификатор национальных параметров, пора перейти к самим национальным параметрам.

Для определения значений отдельных параметров для заданного идентификатора национальных параметров вы должны использовать функцию GetLocaleInfo:

int GetLocaleInfo(

  LCID   Locale,   // идентификатор набора параметров

  LCTYPE LCType,   // тип информации

  LPTSTR lpLCData, // адрес буфера для информации

  int    cchData); // размер буфера для информации

Параметр Locale этой функции задает идентификатор национальных параметров, для которого нужно определить один из конкретных параметров.

Нужный национальный параметр задается параметром LCType функции GetLocaleInfo. Немного позже мы приведем сокращенный список допустимых значений для этого параметра.

Полученная информация будет записана в буфер, адрес которого задается параметром lpLCData, а размер - параметром cchData. Информация будет записана в буфер в виде текстовой строки.

Обычно буфер заказывается динамически, причем для определения требуемого размера буфера достаточно указать значение параметра lpLCData, равное NULL, - в этом случае функция GetLocaleInfo вернет нужный размер буфера в байтах.

В случае успешного выполнения функция GetLocaleInfo возвращает размер текстовой строки с информацией, записанной в буфер lpLCData. При ошибке возвращается нулевое значение.

Для типа информации LCType можно задавать очень много значений. Все допустимые значения описаны в документации SDK. Из-за ограниченного объема книги мы не имеем возможности все их перечислить, поэтому ограничимся только самыми интересными:

  • LOCALE_ILANGUAGE
  • Идентификатор национального языка (длиной не более 5 символов)

    • LOCALE_SLANGUAGE
    • Полное название национального языка

      • LOCALE_SENGLANGUAGE
      • Полное английское название языка

        • LOCALE_SABBREVLANGNAME
        • Сокращенное трехсимвольное название языка

          • LOCALE_SNATIVELANGNAME
          • Естественное названия языка

            • LOCALE_ICOUNTRY
            • Код страны (длиной не более 6 символов)

              • LOCALE_SCOUNTRY



              • Содержание  Назад  Вперед