Возвращаемое значение |
DWORD: Если выполнение рассматриваемой функции оказывается успешным, возвращается общее число символов, скопированных в буфер назначения, за исключением завершающего нулевого символа. В противном случае возвращается 0. Для возврата кода ошибки следует применить функцию GetLastError. |
||||||||||||||||||||||||
Включаемый файл |
winbase.h |
||||||||||||||||||||||||
См. также |
wsprintf, wvsprintf. |
||||||||||||||||||||||||
Пример |
В приведенном ниже примере показано, каким образом различным компонентам строки можно придать соответствующие семантические значения с целью устранения затруднений, связанных с упорядочением международных сообщений. В отличие от английского языка, в португальском (и большинстве других романских языков) модификаторы следуют после имени существительного. Например, термин "disk drive" (дисковый накопитель) превращается в термин "unidade de disco", что буквально означает "устройство диска". Результаты сравнения функции FormatMessage с другой функцией форматирования wvsprintf, которая воспринимает список аргументов, показаны на рис. 22.7 |
||||||||||||||||||||||||
См. \local-sources\cbap22\22-08.txt |
|||||||||||||||||||||||||
Таблица 22.7. Значения параметра dwFlags функции FormatMessage |
|||||||||||||||||||||||||
Значение |
Что означает |
||||||||||||||||||||||||
FORMAT_MESSAGE_ALLOCATE_BUFFER |
Указывает на то, что параметр IpBuffer содержит указатель на указатель PVOID, а параметр nSize определяет минимальное количество символов, распределяемых для буфера выходного сообщения. Рассматриваемая функция выделяет память под буфер таким образом, чтобы он оказался достаточно большим для хранения отформатированного сообщения, и размещает указатель на выделенный буфер по адресу, указанному в параметре IpBuffer. Для освобождения памяти, выделенной под этот буфер, в вызывающей программе необходимо воспользоваться функцией GlobalFree |
||||||||||||||||||||||||
FORMAT_ME3SAGE_ARG0MENT_ARRAY |
Указывает на то, что параметр Arguments не определяет структуру va list, а содержит лишь указатель на массив 32-разрядных значений, которые представляют соответствующие аргументы |
||||||||||||||||||||||||
FORMAT_MESSAGE_FROM_HMODULE |
Указывает на то, что параметр IpSource определяет дескриптор модуля, содержащего табличные ресурсы, используемые для поиска определения сообщения. Если дескриптор модуля равен NULL, тогда поиск осуществляется в файле образа задачи распределения текущего процесса. Этот флаг не может быть использован вместе с флагом ORMAT_MESSAGE_FROM_STRING |
||||||||||||||||||||||||
FORMAT_MESSAGE_FROM STRING |
Указывает на то, что параметр IpSource содержит указатель на определение сообщения, завершающееся нулевым символом. Определение сообщения может содержать встроенные последовательности подобно тексту сообщения в табличном ресурсе сообщений. Этот нельзя использовать вместе с флагами FORMAT MESSAGE FROM HMODULE или FORMAT_MESSAGE_FROM_SYSTEM |
||||||||||||||||||||||||
FORMAT_MESSAGE_FROM_SYSTEM |
Указывает на то, что рассматриваемая функция должна выполнять поиск требуемого сообщения в системных табличных ресурсах сообщений. Если этот флаг используется вместе с флагом FORMAT_MESSAGE_FROM_HMODULE, тогда рассматриваемая функция осуществляет поиск в системной таблице сообщений в случае, если искомое сообщение не будет найдено в модуле, определенном параметром IpSource. Флаг не может быть использован вместе с флагом FORMAT_MESSAGE_FROM_STRING. Если же данный флаг указан, тогда приложение может передать результат выполнения функции GetLastError для выборки текста сообщения об ошибке |
||||||||||||||||||||||||
FORMAT_MESSAGE_IGNORE_INSERTS |
Указывает на то, что последовательности, встраиваемые в определение сообщения, игнорируются и передаются в выходной буфер без изменений. При этом параметр Arguments игнорируется |
||||||||||||||||||||||||
Таблица 22.0. Строки формата для функции FormatMessage |
|||||||||||||||||||||||||
Параметры форматирования |
Описание |
||||||||||||||||||||||||
%0 |
Завершает текстовую строку сообщения без конечного символа новой строки. Это удобный способ соединения нескольких сообщений в длинные строки, которые могут быть затем отформатированы системой для придания им более совершенного вида за счет использования переноса на следующую строку |
||||||||||||||||||||||||
%1 - %99 |
Строки, вставляемые в аргументы. После каждого аргумента может следовать строка формата printf, заключенная между восклицательными знаками. При этом система предполагает, что строка !s! означает отсутствие указанного формата printf. Форматирование с плавающей точкой, определяемое аргументами %е, %Е, %f или %д, в данном случае не поддерживается. Если требуется использовать данные в формате с плавающей точкой, следует применить функцию sprintf и скопировать в сообщение строку, представленную в виде !$!. Весто составляющей, которая определяет точность или разрядность данных, можно воспользоваться звездочкой. В этом случае аргумент %П+1 определяет точность или разрядность, аргумент %п+2 — точность, а аргумент %п+1 — разрядность, если используются две звездочки |
||||||||||||||||||||||||
%% |
Знак процента |
||||||||||||||||||||||||
%п |
Твердый разрыв строки |
||||||||||||||||||||||||
%символ пробела |
Пробел |
||||||||||||||||||||||||
%. |
Одна точка |
||||||||||||||||||||||||
%! |
Восклицательный знак |
||||||||||||||||||||||||
GetACP • Windows 98 • Windows 2000 |
|||||||||||||||||||||||||
Описание |
Функция GetACP возвращает идентификатор кодовой страницы ANSI, используемой в настоящий момент в системе. |
||||||||||||||||||||||||
Синтаксис |
UINT GetACP(VOID) |
||||||||||||||||||||||||
Параметры |
Параметры отсутствуют. |
||||||||||||||||||||||||
Возвращаемое значение |
UINT: Если выполнение рассматриваемой функции оказывается успешным, возвращается идентификатор текущей кодовой страницы ANSI либо используемой по умолчанию кодовой страницы. Перечень идентификаторов кодовых страниц ANSI приведен в табл. 22.9. |
||||||||||||||||||||||||
Включаемыйфайл |
winnls.h |
||||||||||||||||||||||||
См. также |
GetCPInfo, GetOEMCP. |
||||||||||||||||||||||||
Таблица 22.9. Идентификаторы кодовых страниц ANSI |
|||||||||||||||||||||||||
Идентификатор |
Значение |
||||||||||||||||||||||||
874 |
Тайская кодовая страница |
||||||||||||||||||||||||
932 |
Японская кодовая страница |
||||||||||||||||||||||||
936 |
Китайская кодовая страница (КНР, Сингапур) |
||||||||||||||||||||||||
949 |
Корейская кодовая страница |
||||||||||||||||||||||||
950 |
Китайская кодовая страница (Тайвань, Гонконг) |
||||||||||||||||||||||||
1200 |
Код Unicode (формат BMP по стандарту ISO 10646) |
||||||||||||||||||||||||
1250 |
Восточно-европейская кодовая страница для Windows 3.1 |
||||||||||||||||||||||||
1251 |
Кириллическая кодовая страница для Windows 3.1 |
||||||||||||||||||||||||
1252 |
Кодовая страница для Windows 3.1 с первым латинским алфавитом (США и Западная Европа) |
||||||||||||||||||||||||
1253 |
Греческая кодовая страница для Windows 3.1 |
||||||||||||||||||||||||
1254 |
Турецкая кодовая страница для Windows 3.1 |
||||||||||||||||||||||||
1255 |
Еврейская кодовая страница |
||||||||||||||||||||||||
1256 |
Арабская кодовая страница |
||||||||||||||||||||||||
1257 |
Прибалтийская кодовая страница |
||||||||||||||||||||||||
GetCPInfo |
• Windows 98 • Windows 2000 |
||||||||||||||||||||||||
Описание |
Функция GetCPInfo возвращает информацию о любой установленной или доступной действительной кодовой странице/ |
||||||||||||||||||||||||
Синтаксис |
BOOL GetCPInfo(UINT CodePage, LPCPINFO IpCPInfo) |
||||||||||||||||||||||||
Параметры |
|||||||||||||||||||||||||
CodePage |
UINT: Кодовая страница, для которой выбирается информация. Параметр может принимать одно из значений кодовых страниц, перечисленных в табл. 22.2, либо значение СР_АСР, определяющее применение кодовой страницы ANSI, принятой в системе по умолчанию, значение СР_МАССР, определяющее применение кодовой страницы, принятой в Macintosh по умолчанию, или значение СР_ОЕМСР, определяющее применение принятой по умолчанию кодовой страницы OEM. |
||||||||||||||||||||||||
IpСРInfo |
LPCPINFO: Указатель на структуру CPINFO, в которую поступает информация о кодовой странице. Определение структуры CPINFO приводится ниже. |
||||||||||||||||||||||||
Возвращаемое значение |
BOOL: Если выполнение рассматриваемой функции оказывается успешным, возвращается значение TRUE. В противном случае возвращается FALSE, причем функция GetLastError вернет код ошибки ERROR_INVALID_PARAMETER, если указанная кодовая страница не установлена или не доступна. > |
||||||||||||||||||||||||
Включаемый файл |
winnls.h |
||||||||||||||||||||||||
См. также |
EnumSystemCodePages, GetACP, GetOEMCP, GetLocalelnfo. |
||||||||||||||||||||||||
Пример |
См. пример применения функции EnumSystemCodePages. |
||||||||||||||||||||||||
Определение структуры CPINFOstruct cpinfo { UINT MaxCharSize; BYTE DefaultChar[MAX_DEFAULTCH*R]; BYTE LeadByte [MAX_LEADBYTES] ; } CPINFO, "LPCPINFO; |
|||||||||||||||||||||||||
Члены структуры CPINFO |
|||||||||||||||||||||||||
MaXCharSize |
UINT: Максимальная длина символа (в байтах) на данной кодовой странице |
||||||||||||||||||||||||
DefaultChar |
BYTE[MAX_DEFAULTCHAR]: Стандартный символ, используемый во время преобразования в данную кодовую таблицу. Этот символ используется в функции WideCharToMultiByte, если используемый по умолчанию символ не задан явно. |
||||||||||||||||||||||||
LeadByte |
BYTE[MAX_LEADBYTES]: Массив фиксированной длины, содержащий пределы изменения начальных байтов, где количество этих пределов выражается переменной. Если начальные байты на данной кодовой странице отсутствуют, тогда каждый элемент указанного выше массива равен NULL. Максимальное число пределов изменения начальных байтов для любой страницы равно 5. В данном массиве 2 байта используются для описания каждого такого предела, причем за последним пределом следуют два завершающих нулевых символа. |
||||||||||||||||||||||||
GetCurrencyFormat • Windows 98 • Windows 2000 |
|||||||||||||||||||||||||
Описание |
Функция GetCurrencyFormat форматирует числовую строку в виде строки со знаком денежной единицы, характерной для указанной региональной установки. |
||||||||||||||||||||||||
Синтаксис |
int GetCurrencyFormat(LCID Locale, DWORD dwFlags, LPTCSTR IpValue, CONST CURRENCYFMT* IpFormat, LPTSTR Ip Currency Sir, int cchCurrency) |
||||||||||||||||||||||||
Параметры |
|||||||||||||||||||||||||
Locale |
LCID: Региональная установка, в соответствии с которой строка форматируется. Если значение параметра IpFormat равно NULL, тогда рассматриваемая функция форматирует строку в соответствии с текущим форматом денежной единицы, характерной для данной региональной установки. В противном случае региональная установка используется в рассматриваемой функции только для получения информации форматирования, не указанной в структуре CURRENCYFMT. Этот параметр может принимать значение идентификатора региональной установки, созданного с помощью макрокоманды MAKELCID, значение LOCALE_SYSTEM_DEFAULT региональной установки, используемой в системе по умолчанию, либо значение LOCALE_USER_DEFAULT региональной установки, принятой пользователем по умолчанию. |
||||||||||||||||||||||||
dwFlags |
DWORD: Битовый флаг, который управляет режимом работы рассматриваемой функции. Если значение параметра IpFormat не равно NULL, тогда значение рассматриваемого параметра должно быть равно 0. В противном случае потребуется указать флаг LOCALE_NOUSEROVERRIDE для форматирования строки с использованием формата денежной единицы, принятого в системе по умолчанию для указанной региональной установки, либо значение 0 для форматирования строки с использованием любых пользовательских переопределений формата денежной единицы, принятого в региональной установке по умолчанию. |
||||||||||||||||||||||||
IpValue |
LPTCSTR Указатель на строку, завершающуюся нулевым символом и содержащую форматируемую числовую строку. Эта строка может содержать только символы от 0 до 9, одну десятичную точку (.), если числовое значение представлено в формате с плавающей точкой, а также знак минуса в позиции первого символа, если числовое значение является отрицательным. Все другие символы в данной строке считаются недействительными, и если все же встречаются, то возвращается ошибка. |
||||||||||||||||||||||||
IpFormat |
CONST CURRENCYFMT*: Указатель на структуру CURRENCYFMT, которая содержит информацию форматирования денежной единицы. Все члены данной структуры должны содержать соответствующие значения. Если же для данного параметра установлено значение NULL, тогда в рассматриваемой функции используется формат денежной единицы, характерной для указанной региональной установки. Определение структуры CURRENCYFMT приводится ниже. |
||||||||||||||||||||||||
IpCurrencyStr |
LPTSTR: Указатель на буфер, в который поступает отформатированная строка со знаком денежной единицы. |
||||||||||||||||||||||||
cchCurrency |
int: Размер буфера IpCurrencyStr в символах. Если значение параметра cchCurrency равно 0, функция возвращает количество байт или символов, которое требуется для хранения строки со знаком денежной единицы. |
||||||||||||||||||||||||
Возвращаемое значение |
int: Если выполнение функции оказывается успешным, возвращается количество символов, записанных в буфер, на который указывает параметр IpCurrencyStr. Если же значение параметра cchCurrency равно 0, возвращается количество символов, которое требуется для хранения строки со знаком денежной единицы. Если данная функция не может быть выполнена, возвращается 0. Для возврата кода ошибки следует воспользоваться функцией GetLastError. |
||||||||||||||||||||||||
Включаемый файл |
winnls.h |
||||||||||||||||||||||||
См. также |
GetNumberFormat. |
||||||||||||||||||||||||
Определение структуры CURRENCYFMT |
|||||||||||||||||||||||||
typedef struct currenoyfmt{ UINT NumDigits; UINT LeadingZero; UINT Grouping; LPTSTR IpDecimalSep ; LPTSTR IpThousandSep; UINT NegativeOrder; UINT PositiveOrder; LPTSTR IpCurrencySymbol; } CURRENCYFMT; |
|||||||||||||||||||||||||
Члены структуры CURRENCYFMT |
|||||||||||||||||||||||||
NumDigits |
UINT: Количество цифр в дробной части числа. Это равнозначно указанию информации региональной установки с использованием константы LOCALE_IDIGITS типа LCTYPE. |
||||||||||||||||||||||||
LeadingZero |
UINT: Определяет, будут ли в десятичных полях использоваться ведущие нули. Это равнозначно указанию информации региональной установки с использованием константы LOCALEJLZERO типа LCTYPE. |
||||||||||||||||||||||||
Grouping |
UINT: Размер каждой группы цифр, расположенной слева от десятичной точки. Этот член принимает значения в пределах от 0 до 9. |
||||||||||||||||||||||||
LpDecimalSep |
LPSTR: Указатель на строку, завершающуюся нулевым символом и содержащую десятичный разделитель. |
||||||||||||||||||||||||
LpThousand Sep |
LPSTR: Указатель на строку, завершающуюся нулевым символом и содержащую разделитель тысяч. |
||||||||||||||||||||||||
NegativeOrder |
UINT: Режим отрицательного числа с денежной единицей. Это равнозначно указанию информации региональной установки с использованием константы LOCALEJNEGCURR типа LCTYPE. |
||||||||||||||||||||||||
PositiveOrder |
UINT: Режим положительного числа с денежной единицей. Это равнозначно указанию информации региональной установки с использованием константы LOCALE_ICURRENCY типа LCTYPE. |
||||||||||||||||||||||||
IpCurrencySymbol LPSTR: Указатель на строку, завершающуюся нулевым символом и содержащую знак денежной единицы. |
|||||||||||||||||||||||||
GetDateFormat • Windows 98 • Windows 2000 |
|||||||||||||||||||||||||
Описание |
Функция GetDateFormat форматирует дату в виде строки с датой, характерной для заданной региональной установки. Эта функция форматирует указанную дату либо местную системную дату, используя формат даты, определяемый региональной установкой либо шаблоном. |
||||||||||||||||||||||||
Синтаксис |
int GetDateFormat(LCID Locale, DWORD dwFlags, CONST SYSTEMTIME* IpDate, LPCTSTR IpDateFormat, LPTSTR IpdateStr, int nBufferSize) |
||||||||||||||||||||||||
Параметры |
|||||||||||||||||||||||||
Locale |
LCID: Региональная установка, используемая для форматирования строки с датой. Если значение параметра IpDateFormat равно NULL, функция форматирует строку в соответствии с форматом даты, характерным для данной региональной установки. Если же значение параметра IpDateFormat не равно NULL, тогда региональная установка используется в рассматриваемой функции только для получения информации, не указанной в стро- |
||||||||||||||||||||||||
ке с шаблоном формата. Этот параметр может принимать значение идентификатора региональной установки, созданного с помощью макрокоманды MAKELCID, значение LOCALE_SYSTEM_DEFAULT региональной установки, используемой в системе по умолчанию, либо значение LOCALE_USER_DEFAULT региональной установки, принятой пользователем по умолчанию. |
|||||||||||||||||||||||||
dwFlags |
DWORD: Набор флагов, которые определяют различные варианты применения функции. Если значение параметра IpDateFormat не равно NULL, параметр должен быть равен 0. В противном случае он может принимать определенное сочетание значений, перечисленных в табл. 22.10.CONST SYSTEMTIME*: Указатель на структуру SYSTEMTIME, которая содержит информацию о форматировании даты. Если же этот указатель равен NULL, в функции используется текущая местная системная дата. Определение структуры SYSTEMTIME приводится в описании функции GetSystemTime (см. главу 21). |
||||||||||||||||||||||||
IpDateFormat |
LPCTSTR: Указатель на строку с шаблоном формата, используемым для формирования строки с датой. Если для этого параметра установлено значение NULL, в функции используется формат даты, характерный для указанной региональной установки. Для образования строки с шаблоном формата используются элементы из табл. 22.11. Если в строке формата присутствуют пробелы, они же появляются на тех же местах и в выходной строке. Как показано в упомянутой таблице, буквы должны быть прописными либо строчными. Символы, заключенные в строке формата в одинарные кавычки, появляются на тех же местах и в выходной строке. |
||||||||||||||||||||||||
IpdateStr |
LPTSTR: Указатель на буфер, в который поступает отформатированная строка с датой. |
||||||||||||||||||||||||
nBufferSize |
int Размер буфера IpdateStr в символах. Если для этого параметра установлено значение 0, возвращается количество символов, необходимое для хранения преобразованных данных. |
||||||||||||||||||||||||
Возвращаемое значение |
int: Если выполнение рассматриваемой функции оказывается успешным, возвращается количество символов, записанных в буфер IpdateStr. Если же значение параметра nBufferSize равно 0, возвращается количество символов, которое необходимо для хранения преобразованных данных. Если функция не может быть выполнена, возвращается 0. Для выборки кода ошибки применяется функция GetLastError. |
||||||||||||||||||||||||
Включаемый файл |
winnls.h |
||||||||||||||||||||||||
См. также |
GetLocalelnfo, SetLocalelnfo, GetTimeFormat. |
||||||||||||||||||||||||
Пример |
Когда пользователь выбирает в приведенном ниже примере пункт меню Test!, происходит отображение системных дат и времени в самых разных форматах, использующих конфигурацию региональной установки. Пример также демонстрирует, как можно использовать функцию SetLocalelnfo для изменения данных региональной установки, а функцию GetLocalelnfo — для выполнения запросов. |
||||||||||||||||||||||||
СМ. \local-Bources\chap22\22-09. txt |
|||||||||||||||||||||||||
Таблица 22.10. Значения параметра dwFlags функции GetDateFormat |
|||||||||||||||||||||||||
Значение |
Что означает |
||||||||||||||||||||||||
DATE LONGDATE |
Использовать длинный формат даты. Этот флаг не может использоваться вместе с флагом DATE_SHORTDATE или DATE YEARMONTH |
||||||||||||||||||||||||
DATE_LTRREADING |
Добавить отметки для такого расположения даты, которое позволит читать ее слева направо. Флаг не может использоваться вместе с флагом DATE_RTRREADING |
||||||||||||||||||||||||
DATE_RTRREADING |
Добавить отметки для такого расположения даты, которое позволит читать ее справа налево. Флаг не может использоваться вместе с флагом DATE_LTLREADING |
||||||||||||||||||||||||
DATE_SHORTDATE |
Использовать короткий формат даты. Этот флаг устанавливается по умолчанию и не может использоваться вместе с флагом DATE_LONGDATE или DATE_YEARMONTH |
||||||||||||||||||||||||
DATE_USE_ALT_CALENDAR |
Использовать альтернативный календарь (если таковой существует) для форматирования строки с датой. Если этот признак установлен, функция применяет для альтернативного календаря принятый по умолчанию формат, а не любые пользовательские переопределения формата даты. Пользовательские переопределения будут задействованы только в том случае, когда для указанного альтернативного календаря отсутствует принятый по умолчанию формат даты |
||||||||||||||||||||||||
DATE_YEARMONTH |
Использовать формат год/месяц. Флаг не может использоваться вместе с флагом DATE_SHORTDATE или DATEJ.ONGDATE |
||||||||||||||||||||||||
LOCALE_NOOSEROVERRRIDE |
В этом случае функция форматирует строку, используя формат даты, принятый в системе по умолчанию для указанной региональной установки |
||||||||||||||||||||||||
LOCALE_USE_CP_ACP |
Использовать для преобразования строк системную кодовую страницу ANSI вместо кодовой страницы, характерной для региональной установки |
||||||||||||||||||||||||
Таблица 22. 1 1. Значения параметра IpDateFormat функции GetDateFormat |
|||||||||||||||||||||||||
Шаблон |
Значение |
||||||||||||||||||||||||
d |
День месяца в цифровом виде без ведущего нуля дней, указываемых одной цифрой |
||||||||||||||||||||||||
dd |
День месяца в цифровом виде с ведущим нулем для дней, указываемых одной цифрой |
||||||||||||||||||||||||
ddd |
День недели в виде трехбуквенного сокращения. При этом в функции используется значение LOCALE_SABBREVDAYNAME, связанное с указанной региональной установкой |
||||||||||||||||||||||||
dddd |
День недели в виде полного названия. При этом в функции используется значение LOCALE_SDAYNAME, связанное с указанной региональной установкой |
||||||||||||||||||||||||
M |
Месяц в цифровом виде без ведущего нуля для месяцев, указываемых одной цифрой |
||||||||||||||||||||||||
MM |
Месяц в цифровом виде с ведущим нулем для месяцев, указываемых одной цифрой |
||||||||||||||||||||||||
МММ |
Месяц в виде трехбуквенного сокращения. При этом в функции используется значение LOCALE_SABBREVMONTHNAME, связанное с указанной региональной установкой |
||||||||||||||||||||||||
ММММ |
Месяц в виде полного названия. При этом в функции используется значение LOCALE_SMONTHNAME, связанное с указанной региональной установкой |
||||||||||||||||||||||||
У |
Год в виде двух последних цифр, но без ведущего нуля для значений, меньших 10 |
||||||||||||||||||||||||
Шаблон |
Значение |
||||||||||||||||||||||||
УУ |
Год в виде двух последних цифр, но с ведущим нулем для значений, меньших 10 |
||||||||||||||||||||||||
УУУУ |
Год, представленный четырьмя цифрами |
||||||||||||||||||||||||
gg |
Строка периода или эры. При этом в функции используется значение LOCALE_SERASTRING, связанное с указанной региональной установкой. Этот элемент игнорируется, если для форматируемой даты отсутствует соответствующая строка эры или периода |
||||||||||||||||||||||||
GetLocalelnfo • Windows 98 • Windows 2000 |
|||||||||||||||||||||||||
Описание |
Функция GetLocalelnfo возвращает информацию о данной региональной установке. Содержимое региональной установки приводится в табл. 22.20— 22.24 при описании функции SetLocalelnfo. Вся информация, хранящаяся в региональной установке, всегда возвращается в виде строки, причем даже в том случае, если она представляет собой числовые значения. |
||||||||||||||||||||||||
Синтаксис |
int GetLocaleInfo(LCID Locale, LCTYPE Locale, LPTSTR IpLCDataBuffer, int nBufferSize) |
||||||||||||||||||||||||
Параметры |
|||||||||||||||||||||||||
Locale |
LCID: Идентификатор запрашиваемой региональной установки. Это может быть идентификатор любой региональной установки, созданный с помощью макрокоманды MAKELCID, значение LOCALE_SYSTEM_DEFAULT региональной установки, используемой в системе по умолчанию, либо значение LOCALE_USER_DEFAULT региональной установки, принятой пользователем по умолчанию. |
||||||||||||||||||||||||
Locale |
LCTYPE: Любая из констант идентификаторов региональной установки, перечисленных в табл. 22.20—22.24. Эти значения являются взаимно исключающими, кроме значения LOCALE_NOUSEROVERRIDE. Для объединения значения LOCALE_NOUSEROVERRIDE с любым другим значением в приложении можно воспользоваться операцией OR. В этом случае рассматриваемая функция обходит пользовательские переопределения и возвращает значение, используемое в системе по умолчанию для запрашиваемого идентификатора LCID. |
||||||||||||||||||||||||
IpLCDataBuffer |
LPTSTR: Указатель на буфер, в который помещается информация о региональной установке. |
||||||||||||||||||||||||
nBufferSize |
int: Размер (в символах) буфера, на который указывает параметр IpLCDataBuffer. Если установлено значение 0, возвращается количество символов, которое требуется для хранения данных, а параметр IpLCDataBuffer игнорируется. |
||||||||||||||||||||||||
Возвращаемое значение |
int: Если выполнение рассматриваемой функции оказывается успешным, возвращается количество символов, записанных в буфер IpdateStr. Если же значение параметра nBufferSize равно 0, возвращается количество символов, которое необходимо для хранения преобразованных данных. В случае возникновения ошибки возвращается 0. Для получения кода ошибки применяется функция GetLastError. К распространенным ошибкам в данном случае относятся: ERROR_INSUFFICIENTJBUFFER, ERROR_INVALID_PARAMETER и ERROR_INVALID_FLAGS |
||||||||||||||||||||||||
Включаемый файл |
winnls.h |
||||||||||||||||||||||||
См. также |
SetLocalelnfo. |
||||||||||||||||||||||||
Пример |
См. пример применения функции GetDate Format. |
||||||||||||||||||||||||
GetNumberFormat • Windows 98 • Windows 2000 |
|||||||||||||||||||||||||
Описание |
Функция GetNumberFormat форматирует числовую строку, специально настраиваемую в характерном для региональной установки формате чисел. |
||||||||||||||||||||||||
Синтаксис |
int GetNumberFormat(LCID Locale, DWORD dwFlags, LPCTSTR IpValue, CONST NUMBERFMT* IpFormat, LPTSTR IpNumberStr, int nBufferSize) |
||||||||||||||||||||||||
Параметры |
|||||||||||||||||||||||||
Locale |
LCID: Региональная установка, для которой форматируется числовая строка. Если значение параметра IpFormat равно NULL, функция форматирует строку в соответствии с форматом чисел, характерным для данной региональной установки. В противном случае региональная установка используется в данной функции только для получения информации форматирования, не указанной в структуре NUMBERFMT. Этот параметр может принимать значение идентификатора региональной установки, созданного с помощью макрокоманды MAKELCID, значение LOCALE_SYSTEM_DEFAULT региональной установки, используемой в системе по умолчанию, либо значение LOCALE_USER_DEFAULT региональной установки, принятой пользователем по умолчанию. |
||||||||||||||||||||||||
dwflags |
DWORD: Содержит битовый флаг, который управляет режимом работы рассматриваемой функции. Если значение параметра IpFormat не равно NULL, тогда значение параметра должно быть равно 0. В противном случае потребуется указать флаг LOCALE_NOUSEROVERRIDE с целью форматирования строки с использованием формата чисел, принятого в системе по умолчанию для указанной региональной специфики, либо значение 0 для форматирования строки с использованием любых пользовательских переопределений формата чисел, принятого в региональной установке по умолчанию. |
||||||||||||||||||||||||
IpVab* |
LPTCSTR: Указатель на строку, завершающуюся нулевым символом и содержащую форматируемую числовую строку. Эта строка может содержать только символы от 0 до 9, одну десятичную точку (.), если числовое значение представлено в формате с плавающей точкой, а также знак минуса в позиции первого символа, если числовое значение является отрицательным. |
||||||||||||||||||||||||
IpFormat |
CONST NUMBERFMT*: Указатель на структуру NUMBERFMT, которая содержит информацию форматирования чисел. Все члены данной структуры должны содержать соответствующие значения. Если же для данного параметра установлено значение NULL, в функции используется формат чисел, характерный для указанной региональной установки. Определение структуры NUMBERFMT приводится ниже. |
||||||||||||||||||||||||
IpNumberStr |
LPTSTR: Указатель на буфер, в который поступает отформатированная числовая строка. |
||||||||||||||||||||||||
nBufferSize |
int: Размер (в символах) буфера, на который указывает параметр IpNumberStr. Если значение этого параметра равно 0, функция возвращает количество байт или символов, которое требуется для хранения отформатированной числовой строки. |
||||||||||||||||||||||||
Возвращаемое значение |
int: Если выполнение рассматриваемой функции оказывается успешным, возвращается количество символов, записанных в буфер, на который указывает параметр IpNumberStr. Если же значение параметра nBufferSize равно 0, возвращается количество символов, которое необходимо для хранения преобразованных данных. Если рассматриваемая функция не может быть выполнена, возвращается 0. Для получения кода ошибки применяется функция GetLastError. |
||||||||||||||||||||||||
Включаемыйфайл |
winnls.h |
||||||||||||||||||||||||
См. также |
GetCurrencyFormat |
||||||||||||||||||||||||
Определение структуры NUMBERFMT typedef struct numberfmt{ UINT NumDigits; UIKT LeadingZero; UIKT Grouping; LPTSTR IpDecimalSep; LPTSTR IpThousandSep ; U INT NegativeOrde r ; } NUMBERFMT; |
|||||||||||||||||||||||||
Члены структуры NUMBERFMT |
|||||||||||||||||||||||||
NumDigits |
UINT: Количество цифр в дробной части числа. |
||||||||||||||||||||||||
LeadingZero |
UINT: Определяет, будут ли в десятичных полях использоваться ведущие нули. |
||||||||||||||||||||||||
Grouping |
UINT: Размер каждой группы цифр, расположенной слева от десятичной точки. Этот член принимает значения в пределах от 0 до 9. |
||||||||||||||||||||||||
LpDecimalSep |
LPSTR Указатель на строку, завершающуюся нулевым символом и содержащую десятичный разделитель. |
||||||||||||||||||||||||
LpThousand 'Sep |
LPSTR Указатель на строку, завершающуюся нулевым символом и содержащую разделитель тысяч. |
||||||||||||||||||||||||
Negative Order |
UINT: Режим отрицательных чисел. |
||||||||||||||||||||||||
GetOEMCP + Windows 98 * Windows 2000 |
|||||||||||||||||||||||||
Описание |
Функция GetOEMCP осуществляет выборку идентификатора текущей кодовой страницы OEM. |
||||||||||||||||||||||||
Синтаксис |
UINT GetOEMCP(VOID) |
||||||||||||||||||||||||
Параметры |
Параметры отсутствуют. |
||||||||||||||||||||||||
Возвращаемое значение |
UINT: Идентификатор кодовой страницы OEM -либо используемый по умолчанию идентификатор, если ни' одна из кодовых страниц не является текущей. Возможные значения возврата перечислены в табл. 22.12. |
||||||||||||||||||||||||
Включаемый файл |
winnls.h |
||||||||||||||||||||||||
См. также |
GetACP, GetCPInfo. |
||||||||||||||||||||||||
Пример |
Когда пользователь выбирает в приведенном ниже примере пункт меню Test!, в окне сообщения отображается текущая кодовая страница. |
||||||||||||||||||||||||
См. \local-sources\chap22\22-10. txt |
|||||||||||||||||||||||||
Таблица 22. 12. Значения, возвращаемые функцией GetOEMCP |
|||||||||||||||||||||||||
Идентификатор |
Значение |
||||||||||||||||||||||||
437 |
Кодовая страница США для MS-DOS |
||||||||||||||||||||||||
708 |
Арабская кодовая страница (ASMO 708) |
||||||||||||||||||||||||
709 |
Арабская кодовая страница (ASMO 449+, BOON V4) |
||||||||||||||||||||||||
710 |
Арабская кодовая страница (Transparent Arabic — Прозрачное арабское письмо) |
||||||||||||||||||||||||
720 |
Арабская кодовая страница (Transparent ASMO) |
||||||||||||||||||||||||
737 |
Греческая кодовая страница (ранее обозначавшаяся как 437G) |
||||||||||||||||||||||||
775 |
Прибалтийская кодовая страница |
||||||||||||||||||||||||
850 |
Многоязычная кодовая страница для MS-DOS (Latin I — Первый латинский алфавит) |
||||||||||||||||||||||||
852 |
Славянская кодовая страница для MS-DOS (Latin II — Второй латинский алфавит) |
||||||||||||||||||||||||
855 |
Кириллическая кодовая страница IBM (главным образом, русский алфавит) |
||||||||||||||||||||||||
857 |
Турецкая кодовая страница IBM |
||||||||||||||||||||||||
860 |
Португальская кодовая страница для MS-DOS |
||||||||||||||||||||||||
861 |
Исландская кодовая страница для MS-DOS |
||||||||||||||||||||||||
862 |
Еврейская кодовая страница |
||||||||||||||||||||||||
863 |
Франко-канадская кодовая страница для MS-DOS |
||||||||||||||||||||||||
864 |
Арабская кодовая страница |
||||||||||||||||||||||||
865 |
Скандинавская кодовая страница для MS-DOS |
||||||||||||||||||||||||
866 |
Русская кодовая страница для MS-DOS |
||||||||||||||||||||||||
869 |
Кодовая страница IBM с современным греческим алфавитом |
||||||||||||||||||||||||
874 |
Тайская кодовая страница |
||||||||||||||||||||||||
932 |
Японская кодовая страница |
||||||||||||||||||||||||
936 |
Китайская кодовая страница (КНР и Сингапур) |
||||||||||||||||||||||||
949 |
Корейская кодовая страница |
||||||||||||||||||||||||
950 |
Китайская кодовая страница (Тайвань и Гонконг) |
||||||||||||||||||||||||
1361 |
Корейская кодовая страница (Johab) |
||||||||||||||||||||||||
GetStringTypeEx • Windows 98 • Windows 2000 |
|||||||||||||||||||||||||
Описание |
Функция GetStringTypeEx возвращает информацию о типе символа, находящегося в строке одно- или многобайтовых символов. Эта функция устанавливает для каждого символа в строке один или более разрядов в соответствующем 16-разрядном элементе выходного массива. При этом каждый разряд определяет тип данного символа, в частности, является ли символ буквой, цифрой либо ни тем и ни другим. Функция перекрывает функции GetStringTypeA и GetStringTypeW. |
||||||||||||||||||||||||
Синтаксис |
BOOL GetStringTypeEx(LCID Locale, DWORD dwInfoType, LPCTSTR IpSrcStr, int cchSrc, LPWORD IpCharType) |
||||||||||||||||||||||||
Параметры |
|||||||||||||||||||||||||
Locale |
LCID: Идентификатор региональной установки, используемой для проверки исходной строки. Значение этого параметра уникальным образом определяет кодовую страницу ANSI, используемую для преобразования строки, на которую указывает параметр IpSrcStr, из набора символов ANSI в Unicode. В варианте W функции этот параметр игнорируется. Он может принимать значение идентификатора региональной установки, созданного с помощью макрокоманды MAKELCID, значение LOCALE_SYSTEM_DEFAULT региональной установки, используемой в системе по умолчанию, либо значение LOCALE_USER_DEFAULT региональной установки, принятой пользователем по умолчанию. |
||||||||||||||||||||||||
dwInfoType |
DWORD: Тип информации о символе, которую выбирает пользователь. Типы подобной информации разделены на три разных категории. Так, для выборки информации о типе символа следует использовать значение CT_CTYPE1, для выборки информации о двунаправленном формате — значение CT_CTYPE2, а для выборки информации о способе обработки текста — значение CT_CTYPE3. |
||||||||||||||||||||||||
IpSrcStr |
LPCTSTR: Указатель на строку, для которой запрашиваются типы символов. Если значение параметра cchSrc равно -1, тогда считается, что строка завершается нулевым символом. Для варианта W функции эта строка должна быть представлена в наборе символов Unicode, а для варианта А — набором символов ANSI. Кроме того, эта строка может быть представлена в наборе двухбайтовых символов (DBCS) для варианта А, если для набора символов DBCS имеется соответствующая региональная установка. |
||||||||||||||||||||||||
cchSrc |
int: Размер (в символах) строки, на которую указывает параметр IpSrcStr. Если в это число входит завершающий нулевой символ, тогда функция вернет также и информацию о типе завершающего нулевого символа. Если же значение данного параметра равно -1, тогда считается, что строка завершается нулевым символом и ее длина вычисляется автоматически. |
||||||||||||||||||||||||
Ipduu-Typt |
LPWORD: Указатель на массив 16-разрядных значений. Размерность этого массива должна быть достаточно большой, чтобы в него можно было принять одно 16-разрядное значение каждого символа исходной строки. Возвращаемые значения зависят от значений параметра dwInfoType (см. табл. 22.13—22.15). Значения, приведенные в каждой из этих таблиц, используются как по отдельности, так и в определенном сочетании для описания каждого символа, за исключением значений типа CT_CTYPE2, которые являются взаимно исключающими. |
||||||||||||||||||||||||
Возвращаемое значение |
BOOL: Если выполнение рассматриваемой функции оказывается успешным, успешным, возвращается TRUE. В противном случае возвращается значение FALSE. Для выборки кода ошибки применяется функция GetLastError. |
||||||||||||||||||||||||
Включаемый файл |
winnls.h |
||||||||||||||||||||||||
См. также |
GetLocalelnfo. |
||||||||||||||||||||||||
Пример |
Функция одновременно выполняет эффективный анализ нескольких символов. Приведенный ниже пример является видоизмененным примером применения функции CharToOemBuff, в котором отображаются таблицы ANSI и OEM. В данном примере распечатывается таблица ANSI и выпол- |
||||||||||||||||||||||||
LOCALE_SYSTEM_DEFAULT региональной установки, используемой в системе по умолчанию, либо значение LOCALE_USER_DEFAULT региональной установки, принятой пользователем по умолчанию. |
|||||||||||||||||||||||||
dwFlags |
DWORD: Набор флагов, которые определяют различные варианты применения рассматриваемой функции. Это может быть определенное сочетание флагов, перечисленных в табл. 22.16. |
||||||||||||||||||||||||
IpTime |
CONST SYSTEMTIME*: Указатель на структуру SYSTEMTIME, которая содержит данные форматирования времени. Если установлено значение NULL данного параметра, преобразованию подлежит системное время. Определение структуры SYSTEMTIME приводится при описании функции GetSystemTime в главе 2 1 . |
||||||||||||||||||||||||
IpTimeFormat |
LPCTSTR: Формат времени, применяемый в случае, если не используется региональная установка. Этот формат указывается так же, как и шаблоны формата времени, характерные для региональной установки. |
||||||||||||||||||||||||
IpTimeStr |
LPTSTR: Буфер, в который поступает отформатированное время. |
||||||||||||||||||||||||
nBufferSize |
int: Если значение этого параметра равно 0, тогда возвращаемое функцией значение представляет собой число символов, которое требуется для хранения в буфере отформатированного времени. В таком случае параметр IpTimeStr игнорируется. В противном случае параметр определяет количество байт в буфере IpTimeStr, в который поступает отформатированное время. |
||||||||||||||||||||||||
Возвращаемое значение |
int: Количество символов, скопированных в буфер IpTimeStr. Если же значение параметра nBufferSize равно 0, возвращается количество символов, необходимое для хранения отформатированной строки. |
||||||||||||||||||||||||
Включаемый файл |
winnls.h |
||||||||||||||||||||||||
См. также |
GetLocalelnfo, SetLocalelnfo, GetDateFormat. |
||||||||||||||||||||||||
Пример |
См. пример применения функции GetDateFormat. |
||||||||||||||||||||||||
Таблица 22. 16. Значения параметра dwFlags функции GetTimeFormat |
|||||||||||||||||||||||||
Флаг |
Значение |
||||||||||||||||||||||||
LOCALE_NOUSEROVERRIDE |
Форматировать строку, используя формат даты, принятый в системе по умолчанию для указанной региональной установки. Этот флаг не может быть установлен, если значение параметра IpTimeFormat не равно NULL |
||||||||||||||||||||||||
LOCALE_USE_CP_ACP |
Использовать для преобразования строк кодовую страницу ANSI вместо кодовой страницы, характерной для региональной установки |
||||||||||||||||||||||||
Т IME_FORCE2 4HOURFORMAT |
Всегда использовать 24-часовый формат времени |
||||||||||||||||||||||||
TIME_NOMINUTESORSECOKDS |
Не использовать минуты или секунды |
||||||||||||||||||||||||
TIME_NOSECONDS |
Не использовать секунды |
||||||||||||||||||||||||
TIME_NOTIMEMARKER |
Не использовать отметку времени |
||||||||||||||||||||||||
IsCharAlpha • Windows 98 • Windows 2000 |
|||||||||||||||||||||||||
Описание |
Функция IsCharAlpha проверяет единственный символ и определяет, является ли он буквенным. |
||||||||||||||||||||||||
1НТЭКСИС |
BOOL IsCharAlpha(TCHAR ch) |
||||||||||||||||||||||||
Параметры ch |
TCHAR: Проверяемый символ. |
||||||||||||||||||||||||
Возвращаемое значение |
BOOL: Если символ оказывается буквенным, возвращается TRUE. В противном случае возвращается FALSE. Если же возникает ошибка, то для получения ее кода следует воспользоваться функцией GetLastError. |
||||||||||||||||||||||||
Включаемый файл |
winuser.h |
||||||||||||||||||||||||
См. также |
GetStringTypeEx, IsCharAlphaNumeric, IsCharLower, IsCharUpper. |
||||||||||||||||||||||||
Пример |
В приведенном ниже примере проверяется строка и определяются следующие атрибуты различных символов: прописные, строчные, алфавитные или буквенно-цифровые символы. |
||||||||||||||||||||||||
См. \local-sources\chap22\22-12.txt |
|||||||||||||||||||||||||
IsCharAlphaNumeric • Windows 98 • Windows 2000 |
|||||||||||||||||||||||||
Описание |
Функция IsCharAlphaNumeric проверяет единственный символ и определяет, является ли он буквенно-цифровым. При этом используется текущий язык из региональной установки. |
||||||||||||||||||||||||
Синтаксис |
BOOL IsCharAlphaNumeric(TCHAR ch) |
||||||||||||||||||||||||
Параметры |
|||||||||||||||||||||||||
ch |
TCHAR: Проверяемый символ. |
||||||||||||||||||||||||
Возвращаемое значение |
BOOL: Если символ оказывается буквенно-цифровым, возвращается TRUE. В противном случае возвращается FALSE. Если же возникает ошибка, то для получения ее кода следует воспользоваться функцией GetLastError. |
||||||||||||||||||||||||
Включаемый файл |
winuser.h |
||||||||||||||||||||||||
См. также |
GetStringTypeEx, IsCharAlpha. IsCharLower, IsCharUpper |
||||||||||||||||||||||||
Пример |
См. пример применения функции IsCharAlpha. |
||||||||||||||||||||||||
IsCharLower • Windows 98 • Windows 2000 |
|||||||||||||||||||||||||
Описание |
Функция IsCharLower проверяет единственный символ и определяет, является ли он строчной буквой. При этом используется текущий язык из региональной установки. |
||||||||||||||||||||||||
Синтаксис |
BOOL IsCharLower(TCHAR ch) |
||||||||||||||||||||||||
Параметры |
|||||||||||||||||||||||||
ch |
TCHAR: Проверяемый символ. |
||||||||||||||||||||||||
Возвращаемое значение |
BOOL: Если символ оказывается строчной буквой, возвращается TRUE. В противном случае возвращается FALSE. Если же возникает ошибка, то для получения ее кода следует воспользоваться функцией GetLastError. |
||||||||||||||||||||||||
Включаемый файл |
winuser.h |
||||||||||||||||||||||||
См. также |
GetStringTypeEx, IsCharAlpha, IsCharAlphaNumeric, IsCharUpper. |
||||||||||||||||||||||||
Пример |
См. пример применения функции IsCharAlpha. |
||||||||||||||||||||||||
IsCharUpper • Windows 98 • Windows 2000 |
|||||||||||||||||||||||||
Описание |
Функция IsCharUpper проверяет единственный символ и определяет, является ли он прописной буквой. При этом используется текущий язык из региональной установки. |
||||||||||||||||||||||||
Синтаксис |
BOOL IsCharUpper(TCHAR ch) |
||||||||||||||||||||||||
Параметры |
|||||||||||||||||||||||||
ch |
TCHAR: Проверяемый символ. |
||||||||||||||||||||||||
Возвращаемое значение |
BOOL: Если символ оказывается прописной буквой, возвращается TRUE В противном случае возвращается FALSE. Если же возникает ошибка, то для получения ее кода следует воспользоваться функцией GetLastError. |
||||||||||||||||||||||||
Включаемый файл |
winuser.h |
||||||||||||||||||||||||
См. также |
GetStringTypeEx, IsCharAlphaNumeric, IsCharLower, IsCharAlpha. |
||||||||||||||||||||||||
Пример |
См. пример применения функции IsCharAlpha. |
||||||||||||||||||||||||
IsDBCSLeadByte • Windows 98 • Windows 2000 |
|||||||||||||||||||||||||
Описание |
Функция IsDBCSLeadByte определяет с использованием кодовой страницы ANSI, является ли данный символ первым байтом двухбайтового символа. |
||||||||||||||||||||||||
Синтаксис |
BOOL IsDBCSLeadByte(TCHAR ch) |
||||||||||||||||||||||||
Параметры |
|||||||||||||||||||||||||
ch |
TCHAR: Проверяемый символ. |
||||||||||||||||||||||||
Возвращаемое значение |
BOOL: Если символ оказывается начальным байтом, возвращается TRUE. В противном случае возвращается FALSE. |
||||||||||||||||||||||||
Включаемый файл |
winnls.h |
||||||||||||||||||||||||
См. также |
IsDBCSLeadByteEx, WideCharToMuItiByte. |
||||||||||||||||||||||||
IsDBCSLeadByteEx • Windows 98 • Windows 2000 |
|||||||||||||||||||||||||
Описание |
Функция IsDBCSLeadByteEx определяет с использованием указанной кодовой страницы, является ли данный символ первым байтом двухбайтового символа. |
||||||||||||||||||||||||
Синтаксис |
BOOL IsDBCSLeadByteEx(UINT uCodePage, BYTE TestChar) |
||||||||||||||||||||||||
Параметры |
|||||||||||||||||||||||||
uCodePage |
UINT: Используемая кодовая страница, которая может быть любой действительной кодовой страницей. С другой стороны, для указания кодовой страницы ANSI, используемой в системе по умолчанию, достаточно установить значение СР_АСР данного параметра, а для указания кодовой страницы OEM, используемой в системе по умолчанию — СР_ОЕМ. |
||||||||||||||||||||||||
TestChar |
BYTE: Проверяемый символ. |
||||||||||||||||||||||||
Возвращаемое значение |
BOOL: Если символ оказывается начальным байтом, возвращается TRUE. В протианом случае значение FALSE. |
||||||||||||||||||||||||
Включаемый файл |
winnls.h |
||||||||||||||||||||||||
См. также |
WideCharToMuItiByte. |
||||||||||||||||||||||||
IsTextUnicode + Windows 98 * Windows 2000 |
|||||||||||||||||||||||||
Описание |
Функция IsTextUnicode определяет, может ли буфер содержать текст в форме Unicode. В данной функции применяются различные статистические и детерминированные методы определения указанного выше обстоятельства под управлением признаков, передаваемых приложением. При возврате из данной функции сообщаются результаты выполненных проверок. |
||||||||||||||||||||||||
Синтаксис |
DWORD IsTextUnicode(CONST LPVOID IpBuffer, int cb, LPINT Ipi) |
||||||||||||||||||||||||
Параметры |
|||||||||||||||||||||||||
IpBuffer |
CONST LPVOID: Указатель на проверяемый входной буфер. |
||||||||||||||||||||||||
cb |
int: Размер входного буфера в байтах. |
||||||||||||||||||||||||
Ipi |
LPINT: Указатель на целое значение int, которое вначале содержит набор флагов, определяющих виды проверок, применяемых к тексту из входного буфера. После выхода из функции это значение содержит набор битовых флагов, обозначающих результаты указанных проверок: 1, если содержимое буфера успешно прошло проверку, либо 0, если проверка завершилась неудачно. При выходе из функции значение имеют только те признаки, которые устанавливались при входе. Если же для данного параметра установлено значение NULL, тогда функция использует псе доступные проверки для определения того факта, что буфер может содержать текст в форме Unicode. Все действительные признаки перечислены в табл. 22.17. |
||||||||||||||||||||||||
Возвращаемое значение |
DWORD: Если функция возвращает ненулевое значение, значит, данные в буфере прошли заданные проверки успешно. В случае возврата нулевого значения данные в буфере проверки не прошли. Так или иначе, целое значение, на которое указывает параметр Ipi, содержит результаты конкретных проверок, примененных данной функцией к содержимому буфера для принятия соответствующего решения. |
||||||||||||||||||||||||
Включаемыйфайл |
winbase.h |
||||||||||||||||||||||||
См. также |
IsDBCSLeadByteEx. |
||||||||||||||||||||||||
Таблица 22.17. Флаги, используемые в функции IsTextUnicode |
|||||||||||||||||||||||||
Значение |
Что означает |
||||||||||||||||||||||||
IS_TEXT_UNICODE_ASCII16 |
Текст представлен в коде Unicode и не содержит ничего, кроме дополненных нулями значений или символов в коде ASCII |
||||||||||||||||||||||||
IS_TEXT_UNICODE BUFFER_TOO_SMALL |
В буфере слишком мало символов (меньше 2 байт) для осмысленного анализа его содержимого |
||||||||||||||||||||||||
IS_TEXT_UNICODE_CONTROLS |
Текст содержит один или более следующих непечатаемых символов: RETURN, LINEFEED, SPACE, CJK_SPACE, TAB в коде Unicode |
||||||||||||||||||||||||
IS_TEXT_UNICODE_ILLEGAL_CHARS |
Текст содержит один или более следующих недействительных для Unicode символов: встроенный маркер обратной последовательности байтов (Reverse BOM), UNICODE_NUL, CR/LF (упакованный в одно слово) или значение OxFFFF |
||||||||||||||||||||||||
IS_TEXT_ONICODE_NOT_ASCII_MASK |
Флаг, представляющий собой определенное сочетание флага IS_TEXT_UNICODE_NULL_BYTES и трех неиспользуемых в данный момент битовых флагов |
||||||||||||||||||||||||
IS_TEXT_UNICODE_NOT_rjNICODE_MASK |
Флаг, представляющий собой определенное сочетание флагов IS TEXT UNICODE ILLEGAL CHARS, IS_TEXT_UNICODE_ODD_LENGTH и двух неиспользуемых в данный момент битовых флагов |
||||||||||||||||||||||||
IS_TEXT_UNICODE_NULL_BYTES |
Текст содержит пустые байты, указывающие на то, что он не является текстом ASCII |
||||||||||||||||||||||||
IS_TEXT_UNICODE_ODD LENGTH |
Количество символов в строке является нечетным. Строка с нечетным числом символов по определению не может быть текстом Unicode |
||||||||||||||||||||||||
IS_TEXT_ONICODE_REVERSE_ASCI116 |
То же, что и флаг IS_TEXT_UNICODE_ASCIIU, за исключением того, что байты текста Unicode располагаются в обратном порядке |
||||||||||||||||||||||||
IS_TEXT_UNICODE_REVERSE_CONTROLS |
То же, что и флаг IS_TEXT_UNICODE_REVERSE_ASCi1«, за исключением того, что байты символов Unicode располагаются в обратном порядке |
||||||||||||||||||||||||
IS_TEXT_ONICODE_REVERSE MASK |
Флаг, представляющий собой определенное сочетание флагов IS TEXT UNICODE REVERSE ASCII16, IS TEXT UNICODE REVERSE STATISTICS, IS TEXT UNICODE REVERSE CONTROLS и IS_TEXT_UNICODE_REVERSE_SIGNATURE |
||||||||||||||||||||||||
IS_TEXT_UMICODE_REVERSE_S IGNATURE |
Текст содержит в первом символе значение OxFFFE маркера обратной последовательности байтов (Reverse BOM) в коде Unicode |
||||||||||||||||||||||||
IS_TEXT_UNICODE_REVERSE STATISTICS |
То же, что и флаг IS_TEXT_UNICODE_STATISTICS, за исключением того, что байты возможного текста в коде Unicode располагаются в обратном порядке |
||||||||||||||||||||||||
IS_TEXT_UNICODE_SIGNATURE |
Текст содержит в первом символе значение OxFEFF маркера последовательности байтов (ВОМ) в коде Unicode |
||||||||||||||||||||||||
IS_TEXT_UNICODE_STATISTICS |
Текст, возможно, представлен в коде Unicode, причем подобное решение принимается на основании применяемого статистического анализа. Абсолютная достоверность результата не гарантируется |
||||||||||||||||||||||||
IS_TEXT_UNICODE_UNICODE_MASK |
Флаг, представляющий собой определенное сочетание флагов IS TEXT UNICODE ASCII U, IS TEXT UNICODE STATISTICS, IS TEXT UNICODE CONTROLS и IS_TEXT_UNICODE_SIGNATURE |
||||||||||||||||||||||||
IsValidCodePage • Windows 98 • Windows 2000 |
|||||||||||||||||||||||||
Описание |
Функция IsValidCodePage определяет действительность данной кодовой страницы. |
||||||||||||||||||||||||
Синтаксис |
BOOL IsValidCodePage(UINT CodePage) |
||||||||||||||||||||||||
Параметры |
|||||||||||||||||||||||||
CodePage |
UINT: Проверяемая кодовая страница. Каждая кодовая страница определяется через уникальный номер. Перечень кодовых страниц приведен в табл. 22.2. |
||||||||||||||||||||||||
Возвращаемое значение |
BOOL: Если кодовая страница оказывается действительной, возвращается TRUE. В противном случае возвращается FALSE. |
||||||||||||||||||||||||
Включаемый файл |
winnls.h |
||||||||||||||||||||||||
См. также |
GetACP, GetCPInfo, GetOEMCP. |
||||||||||||||||||||||||
IsValidLocale • Windows 98 • Windows 2000 |
|||||||||||||||||||||||||
Описание |
Функция IsValidLocale определяет действительность идентификатора региональной установки. Эта функция проверяет факт введения или поддержки в настоящий момент идентификатора региональной установки в вызывающей системе. |
||||||||||||||||||||||||
Синтаксис |
BOOL IsValidLocale(LCID Locale, DWORD dwFlags) |
||||||||||||||||||||||||
Параметры |
|||||||||||||||||||||||||
Locale |
LCID: Проверяемый идентификатор региональной установки. Для создания идентификатора региональной установки можно воспользоваться макрокомандой MAKELCID. |
||||||||||||||||||||||||
dwFlags |
DWORD: Проверка на достоверность, применяемая к идентификатору региональной установки. Чтобы проверить факт введения и поддержки региональной установки, потребуется задать значение LCID_INSTALLED. Для проверки только факта поддержки региональной установки необходимо установить значение LCID_SUPPORTED. |
||||||||||||||||||||||||
Возвращаемое значение |
BOOL: Если региональная установка проходит проверку на достоверность успешно, возвращается значение TRUE. В противном случае возвращается FALSE. |
||||||||||||||||||||||||
Включаемый файл |
winnls.h |
||||||||||||||||||||||||
См. также |
GetLocalelnfo. |
||||||||||||||||||||||||
LCMapString • Windows 98 • Windows 2000 |
|||||||||||||||||||||||||
Описание |
Функция LCMapString преобразует одну символьную строку в другую либо создает ключ сортировки для данной строки, используя параметры настройки региональной установки для выполнения преобразования. Подобное преобразование не может быть выполнено по месту. |
||||||||||||||||||||||||
Синтаксис |
int LCMapString(LCID Locale, DWORD dwMapFlags, LPCTSTR IpSource, tat nSourceSize, LPTSTR IpDest, int nDestSize) |
||||||||||||||||||||||||
Параметры |
|||||||||||||||||||||||||
Locale |
LCID: Идентификатор региональной установки. Этот параметр может принимать значение любого идентификатора региональной установки, созданного с помощью макрокоманды MAKELCID, значение LOCALE_SYSTEM_DEFAULT региональной установки, используемой в системе по умолчанию, либо значение LOCALE_USER_DEFAULT региональной установки, принятой пользователем по умолчанию. |
||||||||||||||||||||||||
dwMapHags |
DWORD: Флаги преобразования, которые видоизменяют конечный результат. Полный перечень вариантов применения функции LCMapString приведен в табл. 22.18. |
||||||||||||||||||||||||
IpSource |
LPCTSTR: Указатель на строку, которая подлежит преобразованию либо используется для формирования исходного ключа сортировки. |
||||||||||||||||||||||||
nSourceSize |
int: Размер преобразуемой строки. |
||||||||||||||||||||||||
IpDest |
LPTSTR: Буфер назначения. Этот параметр игнорируется, если установлено значение 0 параметра nDestSize. |
||||||||||||||||||||||||
nDestSize |
int: Количество байт в буфере назначения либо 0 для определения этого количества, которое требуется в выходном буфере. |
||||||||||||||||||||||||
Возвращаемое значение |
int: Количество байт, скопированных в буфер назначения. Если же значение параметра nDestSize равно 0, возвращается число символов, которое необходимо для получения преобразованной строки или ключа сортировки. В случае ошибки возвращается 0. Для возврата кода ошибки применяется функция GetLastError. |
||||||||||||||||||||||||
Включаемыйфайл |
winnls.h |
||||||||||||||||||||||||
См. также Пример |
WideCharToMultiByte, MultiByteToWideChar, OemToChar, CharToOem.В приведенном ниже примере последовательность символов с ударением сначала преобразуется в прописные, а затем в строчные буквы. Все эти преобразования выполняет функция LCMapString. |
||||||||||||||||||||||||
См. \local-sources\chap22\22-13.txt |
|||||||||||||||||||||||||
Таблица 22. 18. Возможные значения параметра dwMapFlags функции LCMapString |
|||||||||||||||||||||||||
Значение |
Описание |
||||||||||||||||||||||||
LCMAP_BYTEREV |
Изменить порядок расположения байтов на обратный, меняя местами старшие (HIBYTES) и младшие (LOBYTES) байты |
||||||||||||||||||||||||
LCMAP_FULLWIDTH |
Преобразовать однобайтовые символы в двухбайтовые. Этот флаг не может использоваться вместе с флагом LCMAP HALFWIDTH,реализующим противоположную функцию |
||||||||||||||||||||||||
LCMAP_FULL WIDTH |
Преобразовать двухбайтовые символы в однобайтовые. Этот флаг не может использоваться вместе с флагом LCMAP FULL WIDTH, реализующим противоположную функцию |
||||||||||||||||||||||||
LCMAP_HIRAGANA |
Преобразовать символы катаканы в символы хироганы. Этот флаг не используется вместе с флагом LCMAP KATAKANA |
||||||||||||||||||||||||
LCMAP_KATAKANA |
Преобразовать символы хироганы в символы катаканы. Этот флаг не используется вместе с флагом LCMAP HIRAGANA |
||||||||||||||||||||||||
LCMAP_LINGUISTIC_CASING |
' Использовать для смены регистра лингвистические правила, а не правила, применяемые в файловой системе. Этот флаг действителен вместе с флагами LCMAP LOWERCASE и LCMAP_UPPERCASE. |
||||||||||||||||||||||||
LCMAP_OWERCASE |
Преобразовать символы в строчные буквы. Этот флаг может использоваться только вместе с флагом LCMAP BYTEREVERSAL |
||||||||||||||||||||||||
LCMAP_SIMPLIFIED_CHINESE |
Преобразовать традиционные китайские символы в упрощенные |
||||||||||||||||||||||||
LCMAP_SORTKEY |
Создать ключ сортировки. Используется вместе с флагом LCMAP BYTEREVERSAL, любой константой типа NORM или с флагом SORT_STRINGSORT |
||||||||||||||||||||||||
LCMAP_SIMPLIFIED_CHINESE |
Преобразовать упрощенные китайские символы в традиционные |
||||||||||||||||||||||||
LCMAP_UPPERCASE |
Преобразовать символы в прописные буквы. Этот флаг может использоваться только вместе с флагом LCMAP_BYTEREVERSAL |
||||||||||||||||||||||||
NORM_IGNORECASE |
Установить режим, в котором не учитывается регистр |
||||||||||||||||||||||||
NORM_IGNOREKANATYPE |
Не делать различия между символами хироганы и катаканы |
||||||||||||||||||||||||
NORM_IGNORESPACE |
Удалить несамостоятельные символы, а также японские символы с ударением. Несамостоятельными являются такие символы, которые являются модификаторами символов и фактически не занимают никакого места в строке |
||||||||||||||||||||||||
NORM_IGNORESYMBOLS |
Удалить знаки |
||||||||||||||||||||||||
NORM_IGNOREWIDTH |
Не делать различий между одно- и многобайтовыми символами |
||||||||||||||||||||||||
SORT_STRINGSORT |
Рассматривать знаки препинания как символы |
||||||||||||||||||||||||
Istrcat • Windows 98 • Windows 2000 |
|||||||||||||||||||||||||
Описание |
Функция Istrcat соединяет две строки. |
||||||||||||||||||||||||
Синтаксис |
LPTSTR lstrcat(LPTSTR IpszStringl, LPTSTR lpszString2) |
||||||||||||||||||||||||
Параметры |
|||||||||||||||||||||||||
IpszStringl |
LPTSTR: Указатель на первую строку, завершающуюся нулевым символом. Для размещения двух строк после соединения должно быть выделено достаточно места. |
||||||||||||||||||||||||
lpszString2 |
LPTSTR: Указатель на вторую строку, завершающуюся нулевым символом. Эта строка присоединяется в конец первой. |
||||||||||||||||||||||||
Возвращаемое значение |
LPTSTR: Если выполнение функции оказывается успешным, возвращается указатель на первую строку. В противном случае возвращается NULL и устанавливается признак ошибки. |
||||||||||||||||||||||||
Включаемый' файл |
wibase.h ' |
||||||||||||||||||||||||
См. также |
Istrcpy. |
||||||||||||||||||||||||
Пример |
Функция Istrcat используется в большинстве примеров, в том числе и в примере применения функции GetStringTypeEx. |
||||||||||||||||||||||||
Istrcmp • Windows 98 • Windows 2000 |
|||||||||||||||||||||||||
Описание |
Функция Istrcmp сравнивает две строки, используя текущий язык. |
||||||||||||||||||||||||
Синтаксис |
LPTSTR lstrcmp(LPTSTR IpszStringl, LPTSTR lpszString2) |
||||||||||||||||||||||||
Параметры |
|||||||||||||||||||||||||
IpszStringl |
LPTSTR: Указатель на первую строку, завершающуюся нулевым символом. |
||||||||||||||||||||||||
lpszString2 |
LPTSTR Указатель на вторую строку, завершающуюся нулевым символом. |
||||||||||||||||||||||||
Возвращаемое значение |
LPTSTR: Отрицательное значение, если первая строка меньше второй, положительное — если первая строка больше второй, и 0, если строки равны. |
||||||||||||||||||||||||
Включаемый файл |
wibase.h |
||||||||||||||||||||||||
См. также |
Istrcmpi, CompareString. |
||||||||||||||||||||||||
Пример |
См. пример применения функции CompareString. |
||||||||||||||||||||||||
Istrcmpi • Windows 98 * Windows 2000 |
|||||||||||||||||||||||||
Описание |
Функция Istrcmpi сравнивает две строки, используя текущий язык. Сравнение выполняется с учетом регистра. |
||||||||||||||||||||||||
Синтаксис |
LPTSTR lstrcmpi(LPTSTR IpszStringl, LPTSTR lpszString2) |
||||||||||||||||||||||||
Параметры |
|||||||||||||||||||||||||
IpszStringl |
LPTSTR: Указатель на первую строку, завершающуюся нулевым символом. |
||||||||||||||||||||||||
lpszString2 |
LPTSTR: Указатель на вторую строку, завершающуюся нулевым символом. |
||||||||||||||||||||||||
Возвращаемое значение |
LPTSTR: Отрицательное значение, если первая строка меньше второй, положительное — если первая строка больше второй, и 0, если строки равны. Значение возврата количественно определяет разницу между двумя несовпадающими строками. |
||||||||||||||||||||||||
Включаемый файл |
wibase.h |
||||||||||||||||||||||||
См. также |
Istrcmp, CompareString. |
||||||||||||||||||||||||
Пример |
См. пример применения функции CompareString. |
||||||||||||||||||||||||
Istrcpy • Windows 98 • Windows 2000 |
|||||||||||||||||||||||||
Описание |
Функция Istrcpy копирует строку по другому адресу. |
||||||||||||||||||||||||
Синтаксис |
LPTSTR lstrcpy(LPTSTR IpDestBuffer, LPTSTR IpszSrcString) |
||||||||||||||||||||||||
Параметры |
|||||||||||||||||||||||||
IpDestBuffer |
LPTSTR: Указатель на буфер назначения, в который записывается копируемая строка. Этот буфер должен быть достаточно велик для ее размещения. |
||||||||||||||||||||||||
IpszSrcString |
LPTSTR: Указатель на копируемую строку, завершающуюся нулевым символом. |
||||||||||||||||||||||||
Возвращаемое значение |
LPTSTR: Если выполнение рассматриваемой функции оказывается успешным, возвращается указатель на буфер назначения. В противном случае возвращается NULL и устанавливается признак ошибки. |
||||||||||||||||||||||||
Включаемый файл |
wibase.h |
||||||||||||||||||||||||
См. также |
Istrcat. |
||||||||||||||||||||||||
Пример |
Функция Istrcpy используется в большинстве примеров, в том числе и в примере применения функции GetStringTypeEx. |
||||||||||||||||||||||||
Istrcpyn • Windows 98 • Windows 2000 |
|||||||||||||||||||||||||
Описание |
Функция Istrcpyn копирует в буфер указанное количество символов исходной строки. |
||||||||||||||||||||||||
Синтаксис |
LPTSTR lstrcpyn(LPTSTR IpStringl, LPTSTR IpStringl, int iMaxLength) |
||||||||||||||||||||||||
Параметры |
|||||||||||||||||||||||||
IpStringl |
LPTSTR: Указатель на буфер, в который выполняется копирование символов. Буфер должен быть достаточно велик для размещения в нем символов, количество которых определяется параметром iMaxLength, включая и место под завершающий нулевой символ. |
||||||||||||||||||||||||
lpString2 |
LPTSTR Указатель на завершаемую нулевым символом строк)', из которой выполняется копирование символов. |
||||||||||||||||||||||||
Возвращаемое значение |
LPTSTR Количество символов, в том числе и завершающий нулевой, скопированных из строки, на которую указывает параметр lpString2, в буфер, на который указывает параметр IpStringl. |
||||||||||||||||||||||||
Включаемый' файл |
wibase.h |
||||||||||||||||||||||||
См. также |
Istrcat, Istrcmp, Istrcmpi, Istrlen. |
||||||||||||||||||||||||
Istrlen • Windows 98 • Windows 2000 |
|||||||||||||||||||||||||
Описание |
Функция Istrlen возвращает длину строки. |
||||||||||||||||||||||||
Синтаксис |
int IstrIen(LPTSTR IpszString) |
||||||||||||||||||||||||
Параметры |
|||||||||||||||||||||||||
IpszString |
LPTSTR Указатель на завершаемую нулевым символом строку. |
||||||||||||||||||||||||
Возвращаемое значение |
|||||||||||||||||||||||||
int: Количество символов в строке. |
|||||||||||||||||||||||||
Включаемый файл |
wibase.h |
||||||||||||||||||||||||
См. также |
wsprintf. |
||||||||||||||||||||||||
Пример |
Функция Istrlen используется в большинстве примеров, в том числе и в примере применения функции GetStringTypeEx. |
||||||||||||||||||||||||
MultibyteToWideChar • Windows 98 • Windows 2000 |
|||||||||||||||||||||||||
Описание |
Функция MultibyteToWideChar преобразует символьные строки, представленные заданной кодовой страницей, в строку символов Unicode. Такого рода преобразование не может выполняться по месту! |
||||||||||||||||||||||||
Синтаксис ., |
int MultibyteToWideChar(UINT uCodePage, DWORD dwflags, LPCTSTR IpMultiByteStr, int IpMultiByteSize, LPWSTR IpWideCharStr, int nWideCharSize) |
||||||||||||||||||||||||
Параметры |
|||||||||||||||||||||||||
uCodePage |
UINT: Принимает значение любой действительной кодовой страницы, а также любое из значений, перечисленных в табл. 22.19. |
||||||||||||||||||||||||
dwFlags |
DWORD: Параметры преобразования из табл. 22.20. |
||||||||||||||||||||||||
IpMultiByteStr |
LPCTSTR: Указатель на преобразуемую строку. |
||||||||||||||||||||||||
IpMultiByteSize |
int: Количество преобразуемых байт. Если значение этого параметра равно -1, считается, что строка завершается нулевым символом. |
||||||||||||||||||||||||
IpWideCharStr |
LPWSTR Указатель на буфер, в который поступают данные Unicode |
||||||||||||||||||||||||
nWdeCharSize |
int: Количество символов, которые могут сохраняться в буфере nWideCharSize, либо 0, если запрашивается размер буфера с преобразованными символами. В последнем случае параметр nWideCharSize не используется. |
||||||||||||||||||||||||
Возвращаемое значение |
int: Количество скопированных символов. Если значение параметра nWideCharSize равно 0, возвращается число символов, которое необходимо для хранения преобразованных данных. В случае ошибки возвращается значение 0. Для возврата кода ошибки применяется функция GetLastError. |
||||||||||||||||||||||||
Включаемый файл |
winnls.h |
||||||||||||||||||||||||
Константа данных региональной установки |
Определение |
||||||||||||||||||||||||
LOCALE_IINTLCURRDIGITS |
Количество цифр в дробной части числа, представленного в международном формате денежной единицы (до 3 байт). |
||||||||||||||||||||||||
LOCALE_INEGCURR |
Способ отображения знака денежной единицы в отрицательных суммах. Действительные значения этой константы находятся в пределах от 0 до 15. Описание соответствующих видов форматирования дано для констант LOCALE INEGSIGNPOSN, LOCALEJNEGSYMPRECEDES и LOCALEJNEGSEPBYSPACE |
||||||||||||||||||||||||
LOCALE_INEGSEPBYSPACE |
Определяет, отделяется (1) или не отделяется (0) пробелом знак денежной единицы от отрицательной суммы |
||||||||||||||||||||||||
LOCALE_INEGSIGNPOSN |
Форматирование отрицательных значений. Значения этой константы аналогичны константе LOCALE IPOSSIGNPOSN |
||||||||||||||||||||||||
LOCALE_INEGSYMPRECEDES |
Определяет, предшествует ли отрицательной сумме знак денежной единицы (1) или же он следует после нее (0) |
||||||||||||||||||||||||
LOCALE_IPOSSEPBYSPACE |
Определяет, отделяется (1) или не отделяется (0) пробелом знак денежной единицы от положительной суммы |
||||||||||||||||||||||||
LOCALE_IPOSSIGNPOSN |
Форматирование положительных сумм: |
||||||||||||||||||||||||
0 — используются скобки |
|||||||||||||||||||||||||
1 — соответствующий знак предшествует сумме и знаку денежной единицы |
|||||||||||||||||||||||||
2 — соответствующий знак следует после суммы и знака денежной единицы |
|||||||||||||||||||||||||
3 — соответствующий знак располагается непосредственно перед знаком денежной единицы |
|||||||||||||||||||||||||
4 — соответствующий знак располагается непосредственно после знака денежной единицы |
|||||||||||||||||||||||||
LOCALE_IPOSSYMPRECEDES |
Определяет, предшествует ли положительной сумме знак денежной единицы (Т) или же он следует после нее (0) |
||||||||||||||||||||||||
LOCALE_SCURRENCY |
Строка, используемая в качестве знака денежной единицы |
||||||||||||||||||||||||
LOCALE_SINTLSYMBOL |
Трехсимвольная строка в стандарте ISO 4217 (принятый в международной практике знак денежной единицы), после которой следует строка из одного символа, отделяющая знак денежной единицы от суммы |
||||||||||||||||||||||||
LOCALE_SMONDECIMALSEP |
Символы, используемые для отделения десятичной части суммы |
||||||||||||||||||||||||
LOCALE_SMONGROUPING |
Группирование цифр суммы с учетом знака денежной единицы, которое выражается как в константе LOCALE_SGROUPING |
||||||||||||||||||||||||
LOCALE_SMONTHOUSANDSEP |
Символы, используемые для отделения тысячной части суммы со знаком денежной единицы |
||||||||||||||||||||||||
Константа данных региональной установки |
Определение |
||||||||||||||||||||||||
LOCALE_ICENTURY |
0 — представление столетия двумя цифрами, 1 — представление столетия четырьмя цифрами |
||||||||||||||||||||||||
LOCALE_IDATE |
Порядок расположения месяца, года и дня в дате. 0 — месяц-день-год, 1 — день-месяц-год, 2 — год-месяц-день. Это короткий формат даты |
||||||||||||||||||||||||
LOCALE_IDAYLZERO |
Наличие (1) или отсутствие (0) ведущих нулей в полях дня |
||||||||||||||||||||||||
LOCALE_IFIRSTDAYOFWEEK |
Значения констант LOCALEJJDAYNAME1 -LOCALE JiDAYNAME/ |
||||||||||||||||||||||||
LOCALE_IFIRSTWEEKOFYEAR |
Если 0, тогда неделя, которая содержит первый день первого месяца года, считается первой неделей года. Если 1 , тогда первой считается неделя, которая следует после первого дня первого месяца года. А если 2, тогда первой считается неделя с первыми четырьмя днями года |
||||||||||||||||||||||||
LOCALE_ILDATE |
Порядок расположения месяца, года и дня в длинном формате даты |
||||||||||||||||||||||||
LOCALE_IMONLZERO |
Наличие (1) или отсутствие (0) ведущих нулей в полях месяца |
||||||||||||||||||||||||
LOCALE_IOPTIONALCALENDARS |
Перечень других поддерживаемых календарей. Это разделенный нулями список значений, аналогичных приведенным выше для константы LOCALEJCALENDARTYPE |
||||||||||||||||||||||||
LOCALE_ITIME |
0 — 12-часовый формат времени (до и после полудня), 1 — 24-часовый формат времени |
||||||||||||||||||||||||
LOCALE_ITLZERO |
Наличие (1) или отсутствие (0) ведущих нулей в полях времени |
||||||||||||||||||||||||
LOCALE_S1159 |
Строка, обозначающая время до полудня |
||||||||||||||||||||||||
LOCALE_S23S9 |
Строка, обозначающая время после полудня |
||||||||||||||||||||||||
LOCALE_SABBREVDAYNAME1 LOCALE_SABBREVDAYNAME7 |
Собственные сокращенные названия дней недели |
||||||||||||||||||||||||
LOCALE_SABBREVMONTHNAME1 LOCALE_SABBREVMONTH4AME13 |
Собственные сокращенные названия месяцев года |
||||||||||||||||||||||||
LOCALE_SDATE |
Разделитель дат |
||||||||||||||||||||||||
LOCALE_SDAYNAME1 LOCALE_SDAYNAME7 |
Собственные полные названия дней недели |
||||||||||||||||||||||||
LOCALE_SLONGDATE |
Длинный формат даты. Например, формат "dd MMMM УУУУ" г°Да"- применяемый к дате 18 января 2001 года |
||||||||||||||||||||||||
LOCALE_SMONTHNAME1 LOCALE_SMONTHNAME1 3 |
Собственные полные названия месяцев года |
||||||||||||||||||||||||
LOCALE_SSHORTDATE |
Короткий формат даты. Например, формат ddOmmOyy, применяемый к дате 18/01/01. |
||||||||||||||||||||||||
LOCALE_STIME |
Разделитель формата времени |
||||||||||||||||||||||||
LOCALE_STIMEFORMAT |
Например, hh:mm:ss для 12-часового формата либо HH:mm:ss для 24-часового формата |
||||||||||||||||||||||||
Таблица 22.24. Данные региональной установки, касающиеся форматов даты и времени |
|||||||||||||||||||||||||
Константа данных региональной установки |
Определение |
||||||||||||||||||||||||
LOCALE_ICALENDARTYPE |
Основной календарь. 1 — григорианский календарь, принятый в США, 2 - григорианский календарь, принятый в Великобритании, 3 - японский календарь (год императора), 4 - китайский календарь (год республики), 5 — корейский календарь (эра тангун) |
||||||||||||||||||||||||
Таблица 22.25. Различные идентификаторы региональной установки |
|||||||||||||||||||||||||
Различные идентификаторы региональной установки |
Описание |
||||||||||||||||||||||||
LOCALEJMEASURE |
Метрическая система единиц (0) или система единиц, применяемая в США (1) (2 байта) |
||||||||||||||||||||||||
LOCALE_NOUSEROVERRIDE |
Приоритет отдается региональной установке, принятой по умолчанию в системе, по сравнению с региональной установкой, принятой по умолчанию пользователем |
||||||||||||||||||||||||
SetThreadLocale • Windows 98 • Windows 2000 |
|||||||||||||||||||||||||
Описание |
Функция SetThreadLocale задает текущую региональную установку для нити. |
||||||||||||||||||||||||
Синтаксис |
BOOL SetThreadLocaIe(LCID Locale) |
||||||||||||||||||||||||
Параметры |
|||||||||||||||||||||||||
Locale |
LCID: Новая региональная установка для нити. Этот параметр может принимать значение идентификатора региональной установки, созданного с помощью макрокоманды MAKELCID, значение LOCALE_SYSTEM_DEFAULT региональной установки, используемой в системе по умолчанию, либо значение LOCALE_USER_DEFAULT региональной установки, принятой пользователем по умолчанию. |
||||||||||||||||||||||||
Возвращаемое значение |
BOOL: Если выполнение рассматриваемой функции оказывается успешным, возвращается значение TRUE. В противном случае возвращается FALSE. |
||||||||||||||||||||||||
Включаемый файл |
winnls.h |
||||||||||||||||||||||||
См. также |
GetThreadLocale, GetSytemDefaultLCID, GetUseDefaultLCID. |
||||||||||||||||||||||||
ToAscii • Windows 98 • Windows 2000 |
|||||||||||||||||||||||||
Описание |
Функция ToAscii преобразует код виртуальной клавиши и состояние клавиатуры в соответствующие символы Windows, которые записываются в буфер в виде списка значений типа WORD. Эта функция применяется главным образом для преобразования кодов клавиш международной (отличной от США) клавиатуры. |
||||||||||||||||||||||||
Синтаксис |
int ToAscu(UINT uVirtKey, UINT uScanCode, CONST PBYTE IpKeyState, LPWORD IpwTransKey, UINT uState) |
||||||||||||||||||||||||
Параметры |
|||||||||||||||||||||||||
uVirtKey |
UINT: Преобразуемый код виртуальной клавиши |
||||||||||||||||||||||||
uScanCode |
UINT: Аппаратный сканд-код преобразуемой клавиши. Если клавиша отпущена, устанавливается старший разряд этого кода. |
||||||||||||||||||||||||
IpKeyState |
CONST PBYTE: Массив байт состояния всей клавиатуры. Каждый элемент этого 256-байтового массива представляет одну клавишу. Он индексируется сканд-кодом. Если старший разряд элемента массива установлен, значит, клавиша нажата. Для инициализации массива перед вызовом функции необходимо обратиться к функции GetKeyboardState. |
||||||||||||||||||||||||
IpwTransKey |
LPWORD: Указатель на буфер, в который будут поступать преобразованные символы Windows. |
||||||||||||||||||||||||
uState |
UINT: Если устаноштено значение 1, активным становится соответствующее меню; иначе используется 0. |
||||||||||||||||||||||||
Возвращаемое значение |
hit: 0 — без преобразования, 1 — скопирован один символ Windows, 2 — скопировано два символа, поскольку эти символы не могут быть представлены одним составным символом. |
||||||||||||||||||||||||
Включаемыйфайл |
winuser.h |
||||||||||||||||||||||||
См. также |
GetKeyboardState. |
||||||||||||||||||||||||
Пример |
В приведенном ниже примере функция ToAscii используется для преобразования значений параметра WM_KEYDOWN в соответствующие символы из набора ANSI. Всякий раз когда нажимается клавиша, отображается соответствующее количество байт и символ ANSI. |
||||||||||||||||||||||||
См. \local-sources\chap22\22-17.txt |
|||||||||||||||||||||||||
WideCharToMultiBvte • Windows 98 • Windows 2000 |
|||||||||||||||||||||||||
Описание |
Функция WideCharToMultiByte преобразует строку, представленную в виде широких символов Unicode, в строку символов, представленную указанной кодовой страницей. |
||||||||||||||||||||||||
Синтаксис |
int WideCharToMultiByte(UINT CodePage, DWORD dwflags, LPCWSTR IpWideCharStr, int nWideCharLen, LPSTR IpMultiByteStr, int nMultiByteLength, LPCSTR IpDefaultChar, LPBOOL IpUsedDefaultChar) |
||||||||||||||||||||||||
Параметры |
|||||||||||||||||||||||||
CodePage |
UINT: Этот параметр может принимать значение любой действительной кодовой страницы. Кроме того, он может принимать любое значение из табл. 22.19. |
||||||||||||||||||||||||
dwFlags |
DWORD: Возможные значения преобразования, определяющие последовательность действий в том случае, когда для преобразования широкого символа отсутствует соответствующий предварительно составленный символ. Возможные значения параметра перечислены в табл. 22.26. |
||||||||||||||||||||||||
IpWideCharStr |
LPCWSTR: Указатель на буфер, в который поступают данные в коде Unicode |
||||||||||||||||||||||||
nWideCharLen |
int: Количество символов, которые могут быть сохранены в буфере IpWideCharStr, либо 0, если запрашивается размер буфера преобразованных данных. В последнем случае параметр IpWideCharStr не используется. |
||||||||||||||||||||||||
IpMuMByteStr |
LPSTR Указатель на буфер, который содержит преобразуемую строку. |
||||||||||||||||||||||||
nMultiByteLength |
int: Количество преобразуемых байт. Если для этого параметра установлено значение -1, тогда считается, что строка завершается нулевым символом. |
||||||||||||||||||||||||
IpDefaultChar |
LPCSTR: Указатель на многобайтовый символ, который будет использоваться в случае, если преобразование из набора Unicode в набор многобайтовых символов окажется невозможным. Если установлено значение NULL, тогда вместо многобайтового используется принятый по умолчанию символ из кодовой страницы. Этот символ указывается в поле DefaultChar структуры CPINFO, данные из которой можно получить через функцию GetCPInfo. |
||||||||||||||||||||||||
lpUsedDefaultChar |
|||||||||||||||||||||||||
LPBOOL: Указатель на логическое значение, которое устанавливается всякий раз, когда имеет место используемое по умолчанию преобразование. Если установлено значение NULL, преобразование по умолчанию произойдет, однако об этом ничего не будет сообщено. Действие функции оказывается более эффективным, если установлено значение NULL параметра lp UsedDefaultChar |
|||||||||||||||||||||||||
Возвращаемое значение |
int: Количество скопированных символов. Если значение параметра nWideCharLen равно 0, возвращается число символов, которое необходимо для хранения преобразованных данных. В случае ошибки возвращается 0. Для возврата кода ошибки применяется функция GetLastError. |
||||||||||||||||||||||||
Включаемый файл |
winnls.h |
||||||||||||||||||||||||
См. также |
MultiByteToWideChar. |
||||||||||||||||||||||||
Таблица 22.26. Возможные значения параметра dwFlags функции WldeCharToMuttfByte |
|||||||||||||||||||||||||
Флаг, используемый в функции WideCharToMultiBytt |
Описание> |
||||||||||||||||||||||||
WC_COMPOSITECHECK |
Преобразовать пары основных и несамостоятельных символов в предварительно составленные символы, если таковые существуют |
||||||||||||||||||||||||
WC_DEFAULTCHAR |
Использовать принятый по умолчанию символ, указанный в данных кодовой страницы, если соответствующий предварительно составленный символ не найден. Этот флаг не может использоваться вместе с флагом WC_DISCARDNS |
||||||||||||||||||||||||
WC_DISCARDNS |
Отвергнуть несамостоятельный символ, если предварительно составленный символ отсутствует. Этот флаг не может использоваться вместе с флагом WC_DEFAULTCHAR |
||||||||||||||||||||||||
WC_NO_BEST_FIT_CHARS |
Преобразовать в символ, принятый по умолчанию, любые символы Unicode, которые не преобразуются непосредственно в соответствующие многобайтовые символы |
||||||||||||||||||||||||
WC_SEPCHARS |
Сформировать отдельные символы во время преобразования |
||||||||||||||||||||||||
wsprintf • Windows 98 • Windows 2000 |
|||||||||||||||||||||||||
Описание |
Функция wsprintf форматирует данные с использование заданной строки формата и размещает полученные результаты в символьном буфере. Специальные символы-заполнители, находящиеся в буфере, описывают способ передачи в буфер, интерпретации и отображения других аргументов. Например, значение типа DWORD может использоваться в качестве беззнакового 32-разрядного значения либо в виде указателя на строку. Функция wsprintf объявляется как WINAPIV, указывая на то, что вместо стандартного соглашения о вызовах в интерфейсе WINAPI в данном случае используется соглашение о вызовах, принятое в языке С. В соответствии с этим соглашением о вызовах аргументы передаются функции справа налево, причем стек вызовов настраивается по выходе из функции вызывающей, а не вызываемой частью программы. А вот в соответствии со стандартным соглашением о вызовах WINAPI стек вызовов настраивается во время возврата из функции. В обоих соглашениях о вызовах WINAPI и |
||||||||||||||||||||||||
WINAPIV предусматривается сохранение регистра в именах функций (в отличие от соглашения о вызовах, принятого в языке Pascal для интерфейса Winl6). |
|||||||||||||||||||||||||
Синтаксис |
int wsprintf(LPTSTR IpBuffer, LPCTSTR IpszFormatString, [arguments]) |
||||||||||||||||||||||||
Параметры |
|||||||||||||||||||||||||
IpBuffer |
LPTSTR Указатель на символьный буфер с результатом. |
||||||||||||||||||||||||
IpszFormatString |
LPTSTR: Указатель на строку, завершающуюся нулевым символом и содержащую формат выходного результата, хранящегося в буфере. Вместо имеющихся в буфере символов-заполнителей подставляются значения аргументов. Например, типичная строка формата может иметь следующий вид: "Это строка %s, а это ее адрес %#Х". Если вызвать функцию wsprintf с такой строкой формата и передать ей при вызове один и тот же аргумент (указатель на строку) в качестве третьего и четвертого параметров, тогда функция wsprintf подставит содержимое указанной строки вместо первого аргумента и шестнадцатиричное представление адреса строки (в том числе и ведущий ноль — Ох) вместо второго аргумента. Возможные форматы, используемые в функции wsprintf для различных типов данных, перечислены в табл. 22.27. В строке формата можно также задавать модификаторы заполнения, обозначающие способ представления заполняющих данных. Например, префикс _ изменяет выравнивание поля по правому краю на выравнивание по левому краю, а префикс 0 заменяет заполняющий символ пробела символом 0. Как следует из приведенного выше примера применения параметра IpszFormatString, префикс # является еще одним модификатором, который оказывает влияние только на типы шестнадцатиричных данных (%х, %1х, %Х, %1Х), размещая перед отображаемыми цифрами ведущий ноль Ох. Модификаторы заполнения, представленные в табл. 22.28, допускается использовать совместно. Наконец, для каждого поля можно указать ширину и точность представления данных. При этом ширина определяет минимальное число символов, которые копируются в выходной буфер. Следовательно, если ширина поля равна 10, а содержимым подставляемого аргумента является строка "Hello", тогда в буфер копируется строка "bbbbbHello" (в данном примере b представляет собой заполняющий символ). Если вместо указанной выше строки передается строка "HelloWorld" (длиной в 1 1 символов), тогда вся эта строка копируется в выходной буфер. Указываемая ширина поля никогда его не усекает. Модификатор точности (десятичная тоска с последующим числом) определяет минимальное количество цифр, которые копируются в выходной буфер. Для достижения минимального количества цифр поле дополняется нулями (по умолчанию с левого края). Таким образом, при заданной точности ".10" число 3.14 будет скопировано в выходной буфер в виде "00000003.14". Синтаксис любой строки формата следующий: %[-][#] [<field width>][.<field precision>]<field type> где <field width> и <field precision> — это числа, которые определяют, соответственно, ширину поля и точность представления данных, a <field type> задает, каким образом будет интерпретирован соответствующий аргумент. |
||||||||||||||||||||||||
arguments |
(тип переменной): Указатель на список элементов данных, которые должны форматироваться в текстовом буфере. |
||||||||||||||||||||||||
Возвращаемое значение |
|||||||||||||||||||||||||
int: Количество символов, сохраненных в буфере. |
|||||||||||||||||||||||||
Включаемый файл |
winuser.h |
||||||||||||||||||||||||
См. также |
wvsprintf. |
||||||||||||||||||||||||
Пример |
Функция wsprintf используется в большинстве примеров, приведенных в этой главе, в том числе и в примере применения функции ToAscii. |
||||||||||||||||||||||||
Таблица 22.27. Возможные форматы, используемые в функции wsprintf для различных типов данных |
|||||||||||||||||||||||||
Возможные форматы |
Описание |
||||||||||||||||||||||||
%с |
Символ типа TCHAR из используемого по умолчанию набора символов. Это означает, что если для компиляции указан оператор определения набора символов #define UNICODE, тогда это символ типа WCHAR. В противном случае это символ типа CHAR |
||||||||||||||||||||||||
%С |
Одиночный символ из нестандартного набора символов. Это означает, что если для компиляции указан оператор определения набора символов #define UNICODE, тогда это символ типа CHAR. В противном случае это символ типа WCHAR |
||||||||||||||||||||||||
%d, %i |
Десятичное целое значение со знаком |
||||||||||||||||||||||||
%hc, %hC |
Всегда символ типа CHAR |
||||||||||||||||||||||||
%hc, %hS |
Всегда строка типа CHAR или LPSTR |
||||||||||||||||||||||||
%lc, %IC |
Всегда символ типа WCHAR |
||||||||||||||||||||||||
%ld, %li |
Длинное десятичное целое значение со знаком |
||||||||||||||||||||||||
%ls, %IS |
Всегда строка символов в коде Unicode типа LPWSTR |
||||||||||||||||||||||||
%lu |
Длинное десятичное целое значение без знака |
||||||||||||||||||||||||
%lx, %IX |
Длинное шестнадцатиричное значение: для представления цифр свыше 9 в формате %1х используются буквы "abcdef", а в формате %1Х — буквы "ABCDEF" |
||||||||||||||||||||||||
%s |
Строка символов типа LPSTR, представленная используемым по умолчанию набором символов. Это означает, что если для компиляции указан оператор определения набора символов #define UNICODE, тогда это строка типа LPWSTR. В противном случае это строка типа LPSTR |
||||||||||||||||||||||||
%S |
Строка символов, представленная нестандартным набором символов. Это означает, что если для компиляции указан оператор определения набора символов #define UNICODE, тогда это строка типа LPSTR. В противном случае это строка типа LPWSTR |
||||||||||||||||||||||||
%u |
Целое число без знака |
||||||||||||||||||||||||
%x, %X |
Шестнадцатиричное значение: для представления цифр свыше 9 в формате %х используются буквы "abcdef", а в формате %Х — буквы "ABCDEF" |
||||||||||||||||||||||||
Таблица 22.28. Возможные форматы модификаторов заполнения полей |
|||||||||||||||||||||||||
Возможные форматы |
Описание |
||||||||||||||||||||||||
0 |
Замена заполняющего символа пробела символом 0 |
||||||||||||||||||||||||
# |
Размещение строки Ох перед данными, что является распространенным способом отображения шестнадцатиричных значений |
||||||||||||||||||||||||
Дополнение с целью выравнивания поля выходного результата пробелами или нулями справа, а не (по умолчанию) слева |
|||||||||||||||||||||||||
wvsprintf • Windows 98 • Windows 2000 |
|||||||||||||||||||||||||
Описание |
Функция wvsprintf форматирует данные с использованием указанной строки формата и размещает полученные результаты в символьном буфере. Как и в функции wsprintf, специальные символы-заполнители, находящиеся в буфере, описывают способ передачи в буфер, интерпретации и отображения других аргументов, однако вместо переменного числа аргументов функция wvsprintf осуществляет выборку из своих полей данных, используя указатель на массив аргументов, переданный в третьем параметре. Это дает возможность использовать в функции wvsprintf стандартные соглашения о вызовах интерфейса Win32. |
||||||||||||||||||||||||
Синтаксис |
int wvsprintf(LPTSTR IpBuffer, LPCTSTR IpszFormatString, vajist argList) |
||||||||||||||||||||||||
Параметры |
|||||||||||||||||||||||||
IpBuffer |
LPTSTR Указатель на символьный буфер, в котором хранится выходной результат. |
||||||||||||||||||||||||
IpszFormatString |
LPTSTR: Указатель на строку, завершающуюся нулевым символом и содержащую формат выходного результата, хранящегося в буфере. В функции wvsprintf применяются те же правила образования формата, что и в wsprintf. |
||||||||||||||||||||||||
argList |
va_Iist: Указатель на массив полей, которые подставляются вместо символов-заполнителей строки формата в выходном буфере. |
||||||||||||||||||||||||
Возвращаемое значение |
|||||||||||||||||||||||||
int: Количество символов, сохраненных в буфере. |
|||||||||||||||||||||||||
Включаемый файл |
winuser.h, stdarg.h |
||||||||||||||||||||||||
См. также |
wsprintf. |
||||||||||||||||||||||||
Пример |
Когда пользователь выбирает в приведенном ниже примере пункт меню Test!, одни и те же данные отображаются в самых разнообразных форматах. |
||||||||||||||||||||||||
Cм. \local-sources\chnp22\22-18.txt |
|||||||||||||||||||||||||
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.