次の方法で共有


一時エントリ識別子

適用対象: Outlook 2013 | Outlook 2016

1 回限りのエントリ識別子は、 IAddrBook::CreateOneOff メソッドの MAPI と、MAPI サブシステムにアクセスできないコンポーネント (ゲートウェイ コンポーネントなど) によって作成されます。 �ڍׂɂ‚��ẮA IAddrBook::CreateOneOff��Q�Ƃ��Ă��������B 次の図は、1 回限りのエントリ識別子の形式を示しています。

一時エントリ識別子の形式

1 回限りのエントリ識別子形式

最初のフィールドは、カスタム受信者を表すエントリ識別子を識別する特別な MAPIUID 構造体です。 この MAPIUID 構造体は、定数MAPI_ONE_OFF_UIDに設定する必要があります。 MAPI_ONE_OFF_UIDは、ヘッダー ファイル MAPIDEFS.H で定義されています。

バージョンとフラグのフィールドは、Intel のバイト順で 16 ビットの単語です。 バージョン フィールドは 0 に設定する必要があります。 flags フィールドは、次の値に設定できます。

MAPI_ONE_OFF_NO_RICH_INFO

MAPI_ONE_OFF_UNICODE

MAPI_ONE_OFF_NO_RICH_INFO フラグは、受信者がトランスポート ニュートラル カプセル化形式 (TNEF) でメッセージ コンテンツを受信しない場合に設定されます。 このフラグは、MAPI_SEND_NO_RICH_INFOが IAddrBook::CreateOneOff メソッドに渡されるときに設定されます。

表示名と電子メール アドレスが Unicode 文字列の場合、MAPI_ONE_OFF_UNICODE フラグが設定されます。 このフラグは、MAPI_UNICODEが IAddrBook::CreateOneOff に渡されるときに設定されます。 MAPI_UNICODE フラグが CreateOneOff に渡されない場合、MAPI では、表示名と電子メール アドレスの文字列がワークステーションの現在の ANSI 文字セット内にあると見なされます。 ANSI 文字列は、通常、コード ページがエントリ識別子でエンコードされていないため、異なる文字セットを使用してプラットフォーム間で送信されるメッセージではうまく機能しません。 この潜在的な非互換性から保護するために、多くのアドレス型は、複数の文字セット間で共通する文字のみに制限されます。 ただし、文字セットとプラットフォームの互換性を確保するために、クライアントはメッセージ内の文字列に Unicode を使用する必要があります。

表示名は、受信者のPR_DISPLAY_NAME (PidTagDisplayName) プロパティと IAddrBook::CreateOneOff に渡される lpszName パラメーターに対応する null で終わる文字列です。 文字セットは、MAPI_ONE_OFF_UNICODE フラグが設定されている場合は Unicode、クリアな場合は ANSI です。

アドレスの種類は、受信者のPR_ADDRTYPE (PidTagAddressType) プロパティと IAddrBook::CreateOneOff に渡される lpszAdrType パラメーターに対応する null で終わる文字列です。

電子メール アドレスは、受信者の PR_EMAIL_ADDRESS (PidTagEmailAddress) プロパティと IAddrBook::CreateOneOff に渡される lpszAddress パラメーターに対応する null で終わる文字列です。

注:

1 回限りのエントリ識別子構造体にパディングはありません。バイトは上で示したとおりにパックされ、エントリ識別子の長さは、電子メール アドレスの終端の null 文字を超えるバイトを含めないようにしてください。

1 回限りのエントリ識別子を手動で構築するクライアントとアドレス帳プロバイダーも 、PR_RECORD_KEY (PidTagRecordKey) プロパティと PR_SEARCH_KEY (PidTagSearchKey) プロパティの値を生成する必要がある場合があります。 レコード キーはエントリ識別子と同じです。 検索キーは、次のフィールドを次の順序で連結して形成する必要があります。

  1. 大文字に変換されたアドレスの種類。

  2. コロン (:)。

  3. 電子メール アドレス。大文字に変換されます。

  4. 終了する null 文字。

検索キーの生成時に文字セット変換を行う必要はありません。