文字列変換マクロString Conversion Macros

これらのマクロは、文字列変換機能を提供します。These macros provide string conversion features.

ATL および MFC 文字列変換マクロATL and MFC String Conversion Macros

ここで説明する文字列変換マクロは、ATL と MFC の両方に対して有効です。The string conversion macros discussed here are valid for both ATL and MFC. MFC 文字列変換の詳細については、「 テクニカルノート 59: USING MFC MBCS/Unicode 変換マクロ 」および「 Mfc マクロとグローバル変数」を参照してください。For more information on MFC string conversion, see TN059: Using MFC MBCS/Unicode Conversion Macros and MFC Macros and Globals.

DEVMODE および TEXTMETRIC 文字列変換マクロDEVMODE and TEXTMETRIC String Conversion Macros

これらのマクロは、 DEVMODE または textmetric 構造体のコピーを作成し、新しい構造体内の文字列を新しい文字列型に変換します。These macros create a copy of a DEVMODE or TEXTMETRIC structure and convert the strings within the new structure to a new string type. マクロは、新しい構造体のスタックにメモリを割り当て、新しい構造体へのポインターを返します。The macros allocate memory on the stack for the new structure and return a pointer to the new structure.

MACRONAME( address_of_structure )

解説Remarks

次に例を示します。For example:

DEVMODEW* lpw = DEVMODEA2W(lpa);

およびand:

TEXTMETRICW* lptmw = TEXTMETRICA2W(lptma);

マクロ名では、ソース構造内の文字列型が左 ( たとえば) であり、変換先構造体の文字列型が右側にあります (たとえば、 W)。In the macro names, the string type in the source structure is on the left (for example, A) and the string type in the destination structure is on the right (for example, W). LPSTR を表し、 OLE は LPOLESTR、 T は LPTSTR を表し、 W は LPWSTR を表します。A stands for LPSTR, OLE stands for LPOLESTR, T stands for LPTSTR, and W stands for LPWSTR.

したがって、DEVMODEA2W は、LPSTR 文字列を含む構造体を DEVMODE LPWSTR 文字列を含む構造体にコピー DEVMODE します。 TEXTMETRICOLE2T は、LPOLESTR 文字列を含む構造体を、 TEXTMETRIC TEXTMETRIC LPTSTR 文字列を含む構造体にコピーします。Thus, DEVMODEA2W copies a DEVMODE structure with LPSTR strings into a DEVMODE structure with LPWSTR strings, TEXTMETRICOLE2T copies a TEXTMETRIC structure with LPOLESTR strings into a TEXTMETRIC structure with LPTSTR strings, and so on.

構造体で変換される2つの文字列 DEVMODE は、デバイス名 ( dmDeviceName ) とフォーム名 ( dmFormName ) です。The two strings converted in the DEVMODE structure are the device name (dmDeviceName) and the form name (dmFormName). DEVMODE文字列変換マクロでは、構造体のサイズ () も更新され dmSize ます。The DEVMODE string conversion macros also update the structure size (dmSize).

構造体で変換された4つの文字列 TEXTMETRIC は、最初の文字 ( tmFirstChar )、最後の文字 ( tmLastChar )、既定の文字 ( tmDefaultChar )、および改行文字 ( tmBreakChar ) です。The four strings converted in the TEXTMETRIC structure are the first character (tmFirstChar), the last character (tmLastChar), the default character (tmDefaultChar), and the break character (tmBreakChar).

DEVMODEおよび文字列変換マクロの動作は、 TEXTMETRIC 有効なコンパイラディレクティブ (存在する場合) によって異なります。The behavior of the DEVMODE and TEXTMETRIC string conversion macros depends on the compiler directive in effect, if any. ソースの型とターゲットの型が同じである場合、変換は実行されません。If the source and destination types are the same, no conversion takes place. コンパイラディレクティブは、次のように TOLE を変更します。Compiler directives change T and OLE as follows:

有効なコンパイラ ディレクティブCompiler directive in effect T の変更後T becomes OLE の変更後OLE becomes
なしnone AA WW
_UNICODE_UNICODE WW WW
OLE2ANSIOLE2ANSI AA AA
** _ UNICODEOLE2ANSI**_UNICODE and OLE2ANSI WW AA

次の表に、 DEVMODE および TEXTMETRIC 文字列変換マクロの一覧を示します。The following table lists the DEVMODE and TEXTMETRIC string conversion macros.

DEVMODE マクロDEVMODE macro TEXTMETRIC マクロTEXTMETRIC macro
DEVMODEA2WDEVMODEA2W TEXTMETRICA2WTEXTMETRICA2W
DEVMODEOLE2TDEVMODEOLE2T TEXTMETRICOLE2TTEXTMETRICOLE2T
DEVMODET2OLEDEVMODET2OLE TEXTMETRICT2OLETEXTMETRICT2OLE
DEVMODEW2ADEVMODEW2A TEXTMETRICW2ATEXTMETRICW2A

関連項目See also

[マクロ]Macros