次の方法で共有


DEVMODE および TEXTMETRIC の各文字列変換マクロ

更新 : 2007 年 11 月

これらのマクロは、DEVMODE 構造体または TEXTMETRIC 構造体のコピーを作成し、このコピー内の文字列を新しい文字列型に変換します。また、コピー先の構造体のためにスタック上のメモリを割り当てます。これらのマクロは、コピー先の構造体へのポインタを返します。

MACRONAME( 
      address_of_structure  
)

解説

次に例を示します。

DEVMODEW* lpw = DEVMODEA2W(lpa);

および

TEXTMETRICW* lptmw = TEXTMETRICA2W(lptma);

マクロ名では、変換元の構造体の文字列型を左側 (この例では A)、変換先の構造体の文字列型を右側 (この例では W) に指定します。ALPSTROLELPOLESTRTLPTSTRWLPWSTR をそれぞれ表します。

したがって、DEVMODEA2W と指定した場合は、DEVMODE 構造体がコピーされ、このうち文字列 LPSTRLPWSTR に変換されます。また、TEXTMETRICOLE2T と指定した場合は、TEXTMETRIC 構造体がコピーされ、このうち文字列 LPOLESTRLPTSTR に変換されます。

DEVMODE 構造体では、デバイス名 (dmDeviceName) とフォーム名 (dmFormName) の 2 つの文字列が変換されます。また、DEVMODE 文字列変換マクロでは構造体のサイズ (dmSize) も更新します。

TEXTMETRIC 構造体では、最初の文字 (tmFirstChar)、最後の文字 (tmLastChar)、既定の文字 (tmDefaultChar)、ブレーク文字 (tmBreakChar) の 4 つの文字列が変換されます。

DEVMODE 文字列変換マクロと TEXTMETRIC 文字列変換マクロの動作は、有効になっているコンパイラ ディレクティブによって異なります。変換元と変換先の型が同じ場合、変換は行われません。コンパイラ ディレクティブでは、T および OLE を次のように変換します。

有効なコンパイラ ディレクティブ

T の変換後

OLE の変換後

なし

A

W

_UNICODE

W

W

OLE2ANSI

A

A

_UNICODE および OLE2ANSI

W

A

次の表は、DEVMODE および TEXTMETRIC の各文字列変換マクロの一覧です。

DEVMODE および TEXTMETRIC の各文字列変換マクロ

DEVMODEA2W

TEXTMETRICA2W

DEVMODEOLE2T

TEXTMETRICOLE2T

DEVMODET2OLE

TEXTMETRICT2OLE

DEVMODEW2A

TEXTMETRICW2A

参照

概念

ATL と MFC の文字列変換マクロ

その他の技術情報

ATL マクロ