Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Эти макросы предоставляют функции преобразования строк.
Макросы преобразования строк ATL и MFC
Рассматриваемые здесь макросы преобразования строк можно использовать как для ATL, так и для MFC. Дополнительные сведения о преобразовании строк MFC см. в разделе TN059. Использование макросов преобразования MFC MBCS/Юникода и макросов MFC и глобальных элементов.
Макросы преобразования строк DEVMODE и TEXTMETRIC
Эти макросы создают копию структуры DEVMODE или TEXTMETRIC и преобразуют строки в новой структуре в новый тип строки. Макросы выделяют память в стеке для новой структуры и возвращают указатель на новую структуру.
MACRONAME( address_of_structure )
Замечания
Например:
DEVMODEW* lpw = DEVMODEA2W(lpa);
and:
TEXTMETRICW* lptmw = TEXTMETRICA2W(lptma);
В именах макросов строка в исходной структуре находится слева (например, А), а тип строки в целевой структуре находится справа (например, W). A означает LPSTR, OLE означает LPOLESTR, T означает LPTSTR, а W — LPWSTR.
Таким образом, DEVMODEA2W копирует структуру со строками LPSTR в DEVMODE структуру со строками LPWSTR, TEXTMETRICOLE2T копирует DEVMODE TEXTMETRIC структуру со строками LPOLESTR в TEXTMETRIC структуру со строками LPTSTR и т. д.
Две строки, преобразованные в структуру DEVMODE , — это имя устройства (dmDeviceName) и имя формы (dmFormName). Макросы DEVMODE преобразования строк также обновляют размер структуры (dmSize).
Четыре строки, преобразованные в TEXTMETRIC структуру, являются первым символом (tmFirstChar), последним символом (), символом по умолчанию (tmLastChartmDefaultChar) и символом разрыва (tmBreakChar).
Поведение DEVMODE TEXTMETRIC макросов преобразования строк зависит от директивы компилятора( если таковой имеется). Если исходный и конечный типы совпадают, преобразование не выполняется. Директивы компилятора изменяют T и OLE следующим образом:
| Действующая директива компилятора | T становится | OLE становится |
|---|---|---|
| ничего | Объект | W |
| _ЮНИКОД | W | W |
| OLE2ANSI | Объект | Объект |
| _UNICODE и OLE2ANSI | W | Объект |
В следующей DEVMODE таблице перечислены макросы и TEXTMETRIC макросы преобразования строк.
DEVMODEМакрос |
TEXTMETRICМакрос |
|---|---|
| DEVMODEA2W | TEXTMETRICA2W |
| DEVMODEOLE2T | TEXTMETRICOLE2T |
| DEVMODET2OLE | TEXTMETRICT2OLE |
| DEVMODEW2A | TEXTMETRICW2A |