ENTRYID
適用対象: Outlook 2013 | Outlook 2016
MAPI オブジェクトのエントリ識別子が含まれています。
プロパティ | 値 |
---|---|
ヘッダー ファイル: |
Mapidefs.h |
関連するマクロ: |
CbNewENTRYID、 SizedENTRYID |
typedef struct
{
BYTE abFlags[4];
BYTE ab[MAPI_DIM];
} ENTRYID, FAR *LPENTRYID;
メンバー
abFlags
オブジェクトを記述する情報を提供するフラグのビットマスク。 フラグの最初のバイト abFlags[0]のみをプロバイダーによって設定できます。他の 3 つは予約されています。 これらのフラグは、永続的なエントリ識別子に設定しないでください。これらは、短期エントリ識別子にのみ設定されます。 クライアントでは、この構造体は読み取り専用です。 abFlags[0]では、次のフラグを設定できます。
MAPI_NOTRECIP
エントリ識別子は、メッセージの受信者として使用できません。
MAPI_NOTRESERVED
他のユーザーはエントリ識別子にアクセスできません。
MAPI_NOW
エントリ識別子は、他の時点では使用できません。
MAPI_SHORTTERM
エントリ識別子は短期です。 エントリ識別子の他の使用が有効になっていない限り、このバイト内の他のすべての値を設定する必要があります。
MAPI_THISSESSION
エントリ識別子は、他のセッションでは使用できません。
Ab
サービス プロバイダーによって使用されるバイナリ データの配列を示します。 クライアント アプリケーションでは、この配列を使用できません。
注釈
ENTRYID 構造体は、メッセージ ストアとアドレス帳プロバイダーによって、オブジェクトの一意の識別子を構築するために使用されます。 エントリ識別子は、次の種類のオブジェクトを識別するために使用されます。
メッセージ ストア
フォルダー
メッセージ
アドレス帳コンテナー
配布リスト
メッセージング ユーザー
状態オブジェクト
プロファイル セクション
各プロバイダーは、そのプロバイダーにとって意味のある ENTRYID 構造体の形式を使用します。
1 つのオブジェクトは、2 つの異なるバイナリ値で表すことができるため、エントリ ID を直接比較することはできません。 2 つのエントリ識別子が同じオブジェクトを表しているかどうかを判断するには、 IMAPISession::CompareEntryIDs メソッドを 呼び出します。
クライアントがオブジェクトの IMAPIProp::GetProps メソッドを呼び出してエントリ識別子を取得すると、オブジェクトはエントリ識別子の最も永続的な形式を返します。 クライアントは、 abFlags メンバーの最初のバイトにフラグが設定されていないことを確認することで、エントリ識別子が長期的であることを確認できます。
クライアントがテーブル内の列を介してエントリ識別子にアクセスする場合、ほとんどの場合、このエントリ識別子は長期的ではなく短期です。 短期エントリ識別子を使用して、対応するオブジェクトを現在の MAPI セッションでのみ開くことができます。 クライアントは、すべてのフラグが abFlags メンバーの最初のバイトに設定されていることを確認することで、エントリ識別子が短期であることを確認できます。
一部のエントリ識別子は短期ですが、長期的な使用があります。 このようなエントリ識別子には、 abFlags メンバーの最初のバイトに 1 つ以上の適切なフラグが設定されます。
ENTRYID 構造体は FLATENTRY 構造体に似ています。 ただし、いくつかの違いがあります。
ENTRYID 構造体は、エントリ識別子のサイズを格納しません。FLATENTRY 構造体は です。
ENTRYID 構造体は、フラグ データとエントリ識別子の残りの部分を個別に格納します。FLATENTRY 構造体は、エントリ識別子の残りの部分を含むフラグ データを格納します。
ENTRYID 構造体は、IMAPIProp インターフェイスのメソッドと、次の OpenEntry メソッドにパラメーターとして渡されます。IABLogon::OpenEntry、IAddrBook::OpenEntry、IMAPIContainer::OpenEntry、IMAPISession::OpenEntry、IMAPISupport::OpenEntry、IMsgStore::OpenEntry、IMSLogon::OpenEntry、IMSLogon::OpenEntry
ENTRYID 構造体は、エントリ識別子をディスクに格納するために使用されます。 FLATENTRY 構造体は、エントリ識別子をファイルに格納するか、バイト ストリームで渡すために使用されます。
クライアントは常に自然に配置されたエントリ識別子を渡す必要があります。 プロバイダーは任意にアラインされたエントリ識別子を処理する必要がありますが、クライアントはこの動作を想定しないでください。 適切にアラインされたエントリ識別子をメソッドに渡すことができなかった場合、RISC プロセッサでアラインメント エラーが発生する可能性があります。
自然配置係数 (通常は 8 バイト) は、CPU でサポートされる最大のデータ型であり、通常はシステム メモリ アロケーターで使用されるのと同じアラインメント係数です。 自然にアライメントされたメモリ アドレスを使用すると、CPU はアラインメント エラーを生成することなく、そのアドレスでサポートされている任意のデータ型にアクセスできます。 RISC CPU の場合、サイズ N バイトのデータ型は通常、N バイトの偶数倍数に配置する必要があります。アドレスは N の偶数倍数です。
詳細については、「 エントリ識別子」を参照してください。