Macros de conversão de cadeia de caracteres
Essas macros fornecem recursos de conversão de cadeia de caracteres.
Macros de conversão de cadeia de caracteres ATL e MFC
As macros de conversão de cadeia de caracteres discutidas neste documento são válidas para ATL e MFC. Para obter mais informações sobre conversão de cadeia de caracteres MFC, confira TN059: usar macros de conversão MFC MBCS/Unicode e Macros e globais MFC.
Macros de conversão de cadeia de caracteres DEVMODE e TEXTMETRIC
Essas macros criam uma cópia de uma estrutura DEVMODE ou TEXTMETRIC e convertem as cadeias de caracteres dentro da nova estrutura em um novo tipo de cadeia de caracteres. As macros alocam memória na pilha para a nova estrutura e retornam um ponteiro para a nova estrutura.
MACRONAME( address_of_structure )
Comentários
Por exemplo:
DEVMODEW* lpw = DEVMODEA2W(lpa);
e:
TEXTMETRICW* lptmw = TEXTMETRICA2W(lptma);
Nos nomes das macros, o tipo de cadeia de caracteres na estrutura de origem está à esquerda (por exemplo, A) e o tipo de cadeia de caracteres da estrutura de destino está à direita (por exemplo, W). A significa LPSTR, OLE significa LPOLESTR, T significa LPTSTR e W significa LPWSTR.
Assim, DEVMODEA2W copia uma estrutura DEVMODE
com cadeias de caracteres LPSTR em uma estrutura DEVMODE
com cadeias de caracteres LPWSTR. TEXTMETRICOLE2T copia uma estrutura TEXTMETRIC
com cadeias de caracteres LPOLESTR em uma estrutura TEXTMETRIC
com cadeias de caracteres LPTSTR e assim por diante.
As duas cadeias de caracteres convertidas na estrutura DEVMODE
são o nome do dispositivo (dmDeviceName
) e o nome do formulário (dmFormName
). As macros de conversão de cadeia de caracteres DEVMODE
também atualizam o tamanho da estrutura (dmSize
).
As quatro cadeias de caracteres convertidas na estrutura TEXTMETRIC
são o primeiro caractere (tmFirstChar
), o último caractere (tmLastChar
), o caractere padrão (tmDefaultChar
) e o caractere de quebra (tmBreakChar
).
O comportamento das macros de conversão de cadeia de caracteres DEVMODE
e TEXTMETRIC
depende da diretriz do compilador em vigor, quando houver. Se os tipos de origem e de destino forem o mesmo, a conversão não ocorre. As diretivas do compilador alteram T e OLE da seguinte maneira:
Diretriz do compilador em vigor | T torna-se | OLE torna-se |
---|---|---|
nenhum | A | W |
_UNICODE | W | W |
OLE2ANSI | A | A |
_UNICODE e OLE2ANSI | W | A |
A tabela a seguir lista as macros de conversão de cadeia de caracteres DEVMODE
e TEXTMETRIC
.
Macro DEVMODE |
Macro TEXTMETRIC |
---|---|
DEVMODEA2W | TEXTMETRICA2W |
DEVMODEOLE2T | TEXTMETRICOLE2T |
DEVMODET2OLE | TEXTMETRICT2OLE |
DEVMODEW2A | TEXTMETRICW2A |