Манипулирование строками и преобразование наборов символов, страница 6

Возвращаемое значение

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