DEVMODE および TEXTMETRIC の各文字列変換マクロ
これらのマクロは、DEVMODE 構造体または TEXTMETRIC 構造体のコピーを作成し、このコピー内の文字列を新しい文字列型に変換します。 マクロは、新しい構造体のスタックにメモリを割り当て、新しい構造体へのポインターを返します。
MACRONAME(
address_of_structure
)
解説
以下はその例です。
DEVMODEW* lpw = DEVMODEA2W(lpa);
および
TEXTMETRICW* lptmw = TEXTMETRICA2W(lptma);
マクロ名には、文字列を左にソースの構造をに入力します (たとえば、A) および文字列は右側にコピー先の構造体をに入力します (たとえば、W)。 A は LPSTRを意味します OLE は LPOLESTRを意味します T は LPWSTRの LPTSTRと W の立場を意味します。
したがって、DEVMODEA2W は LPTSTR の文字列を含む TEXTMETRIC の構造に LPWSTR の文字列、TEXTMETRICOLE2T を持つ DEVMODE の構造に LPSTR の文字列を含む DEVMODE の構造をコピー LPOLESTR の文字列を含む構造体の TEXTMETRIC などをコピーします。
DEVMODE の構造体に変換される 2 文字列は、デバイス名 (dmDeviceName) とフォームの名前 (dmFormName) です。 DEVMODE の文字列変換マクロは、構造体のサイズ (dmSize) を更新します。
TEXTMETRIC の構造体に変換される 4 文字列は、最初の文字 (tmFirstChar)、最後の文字 (tmLastChar)、既定の文字 (tmDefaultChar)、および改行文字 (tmBreakChar) です。
DEVMODE と TEXTMETRIC の文字列変換マクロの動作は、コンパイラ ディレクティブであれば、仮想異なります。 コピー元とコピー先の型が同じ場合、変換は行われません。 次のようにコンパイラ ディレクティブの変更 T と OLE :
コンパイラ ディレクティブ仮想 |
T は |
OLE は |
---|---|---|
[none] |
A |
W |
_UNICODE |
W |
W |
OLE2ANSI |
A |
A |
_UNICODE と OLE2ANSI |
W |
A |
次の表は DEVMODE と TEXTMETRIC の文字列変換マクロを示します。
DEVMODE および TEXTMETRIC の各文字列変換マクロ
DEVMODEA2W |
TEXTMETRICA2W |
DEVMODEOLE2T |
TEXTMETRICOLE2T |
DEVMODET2OLE |
TEXTMETRICT2OLE |
DEVMODEW2A |
TEXTMETRICW2A |