MAPI の文字セットMAPI Character Sets

適用されます: OutlookApplies to: Outlook

MAPI 準拠のクライアント アプリケーションとサービス ・ プロバイダーは、ANSI 文字 (1 バイト)、または Unicode 文字 (2 バイト) を使用できます。MAPI-compliant client applications and service providers can use ANSI characters (single byte) or Unicode characters (double byte). OEM 文字セットはサポートされていません。OEM character sets are not supported. OEM 文字列は、MAPI メソッドに渡される、または関数と、そのメソッドまたは関数が失敗します。An OEM string passed to a MAPI method or function will cause that method or function to fail. OEM 文字セットでファイル名を使用するクライアント アプリケーションは、MAPI のメソッドまたは関数に渡す前に ANSI に変換するのには注意が必要である必要があります。Client applications that work with filenames in the OEM character set must be careful to convert them to ANSI before passing them to a MAPI method or function.

Unicode をサポートしている文字セットは、クライアントとサービス ・ プロバイダーの両方はオプションです。Supporting the Unicode character set is optional, both for clients and service providers. Unicode をサポートしているかどうかに関係なくコンパイルすることができるように、すべてのサービス プロバイダーでのコードを記述する必要があります。All service providers should write their code so that they can compile regardless of whether or not they support Unicode. クライアントは、サポートのレベルに応じて条件付きでコンパイルしますが、サービス プロバイダーがありません。Clients compile conditionally, depending on their level of support, but service providers do not. 文字セットが変更されたときに再コンパイルする必要はありません。They should not have to be recompiled when the character set changes. サービス プロバイダーのコードには何も条件付きにする必要があります。Nothing in service provider code should be conditional.

クライアント、または Unicode の作成に入力パラメーターまたは出力パラメーターとして文字列を含むメソッドの呼び出しをサポートするサービス ・ プロバイダー、MAPI_UNICODE フラグが設定します。When clients or service providers that support Unicode make a method call that includes character strings as input or output parameters, they set the MAPI_UNICODE flag. このフラグを設定することを示します実装は、受信したすべての文字列を Unicode 文字列です。Setting this flag indicates to the implementation that all incoming strings are Unicode strings. 出力では、このフラグ要求の実装から渡されるすべての文字列のバックアップを設定する必要があります Unicode 文字列可能な場合です。On output, setting this flag requests that all strings passed back from the implementation should be Unicode strings if possible. Unicode をサポートしているメソッドの実装者は、要求に従いますUnicode サポートを提供していないメソッドの実装は準拠していません。Method implementers that support Unicode will comply with the request; method implementers that do not provide Unicode support will not comply. PT_STRING8 の種類は、Unicode 形式ではない文字列プロパティです。String properties that are not in Unicode format are of type PT_STRING8.

MAPI では、ヘッダー ファイル MAPIDEFS にfMapiUnicodeの定数を定義します。既定の文字セットを表す H をします。MAPI defines the fMapiUnicode constant in the header file MAPIDEFS.H to represent the default character set. クライアントまたはサービス プロバイダーは、Unicode をサポートする場合は、 fMapiUnicodeが MAPI_UNICODE に設定されます。If a client or service provider supports Unicode, fMapiUnicode is set to MAPI_UNICODE. クライアントと Unicode をサポートしていないサービス ・ プロバイダーは、 fMapiUnicodeを 0 に設定します。Clients and service providers that do not support Unicode set fMapiUnicode to zero.

Unicode をサポートしていないサービス ・ プロバイダーは次のとおりです。Service providers that do not support Unicode should:

  • 文字セット間で変換を実行することを拒否します。Refuse to perform conversions between character sets.

  • メソッドの呼び出しで、MAPI_UNICODE フラグを渡すことはありません。Never pass the MAPI_UNICODE flag in method calls.

  • MAPI_E_BAD_CHARWIDTH は、MAPI_UNICODE フラグが渡されたときに返されます。Return MAPI_E_BAD_CHARWIDTH when the MAPI_UNICODE flag is passed in.

  • ANSI 文字列のプロパティを明示的に宣言します。Declare ANSI string properties explicitly.

サービス プロバイダーでは、Unicode およびクライアントのみをサポートするときに MAPI_E_BAD_CHARWIDTH は、MAPI_UNICODE フラグを渡さないようにする必要を返すこともします。Service providers can also return MAPI_E_BAD_CHARWIDTH when they only support Unicode and clients do not pass the MAPI_UNICODE flag.

現在のバージョンの MAPI では、次のメソッドの Unicode をサポートしています。The current version of MAPI supports Unicode in the following methods:





IMAPIProp::GetLastError(IAddrBookの実装のみ)IMAPIProp::GetLastError (IAddrBook implementation only)

これらのメソッドの呼び出し元は、Unicode 文字列であると返される文字列を期待できます。For these methods, callers can expect any returned strings to be Unicode strings. MAPI の実装の他のメソッドから返される文字列を ANSI 文字の文字列となります。Character strings returned from MAPI implementations of any other method will be ANSI character strings.