IMAPIContainer::GetHierarchyTable
適用対象: Outlook 2013 | Outlook 2016
コンテナーの階層テーブルへのポインターを返します。
HRESULT GetHierarchyTable(
ULONG ulFlags,
LPMAPITABLE FAR * lppTable
);
パラメーター
ulFlags
[in]テーブルで情報を返す方法を制御するフラグのビットマスク。 次のフラグを設定できます。
CONVENIENT_DEPTH
階層テーブルに複数のレベルのコンテナーを格納します。 CONVENIENT_DEPTHが設定されていない場合、階層テーブルにはコンテナーの直接の子コンテナーのみが含まれます。
MAPI_DEFERRED_ERRORS
GetHierarchyTable は、呼び出し元がテーブルを使用できるようになる前に正常に返される可能性があります。 テーブルが使用できない場合、後続のテーブル呼び出しを行うとエラーが発生する可能性があります。
MAPI_UNICODE
文字列データを含む列を Unicode 形式で返すように要求します。 MAPI_UNICODE フラグが設定されていない場合は、文字列を ANSI 形式で返す必要があります。
SHOW_SOFT_DELETES
現在論理的に削除済みとしてマークされているアイテムを表示します。つまり、削除されたアイテムの保持期間フェーズにあります。
lppTable
[out]階層テーブルへのポインター。
戻り値
S_OK
階層テーブルが正常に取得されました。
MAPI_E_BAD_CHARWIDTH
MAPI_UNICODE フラグが設定され、実装で Unicode がサポートされていないか、MAPI_UNICODEが設定されておらず、実装で Unicode のみがサポートされています。
MAPI_E_NO_SUPPORT
コンテナーには子コンテナーがなく、階層テーブルを指定できません。
注釈
IMAPIContainer::GetHierarchyTable メソッドは、コンテナーの階層テーブルへのポインターを返します。 階層テーブルには、コンテナー内の子コンテナーに関する概要情報が保持されます。 フォルダー階層テーブルには、サブフォルダーに関する情報が保持されます。アドレス帳階層テーブルには、子アドレス帳コンテナーと配布リストに関する情報が保持されます。
一部のコンテナーに子コンテナーがない場合があります。 これらのコンテナーは 、GetHierarchyTable の実装からMAPI_E_NO_SUPPORTを返します。
CONVENIENT_DEPTH フラグが設定されている場合、階層テーブルの各行には、 列として PR_DEPTH (PidTagDepth) プロパティも含まれます。 PR_DEPTH は、テーブルを実装するコンテナーに対する各コンテナーのレベルを示します。 実装するコンテナーの直接の子コンテナーは深度 0、深さ 0 のコンテナーの子コンテナーは深度 1 などです。 PR_DEPTHの値は、レベルの階層が深くなるにつれて順番に増加します。
階層テーブルの必須列と省略可能な列の完全な一覧については、「 階層テーブル」を参照してください。
実装に関するメモ
コンテナーの階層テーブルをサポートする場合は、次の操作も行う必要があります。
コンテナーの IMAPIProp::OpenProperty メソッドの呼び出しをサポートして 、PR_CONTAINER_HIERARCHY (PidTagContainerHierarchy) プロパティを開きます。
コンテナー のIMAPIProp::GetPropList または IMAPIProp::GetProps メソッドの呼び出しから PR_CONTAINER_HIERARCHYを 返します。
呼び出し側への注意
文字列とバイナリコンテンツのテーブル列を切り捨てることができます。 通常、プロバイダーは 255 文字を返します。 テーブルに切り捨てられた列が含まれているかどうかを事前に把握できないため、列の長さが 255 バイトまたは 510 バイトの場合は、列が切り捨てられると仮定します。 必要に応じて、切り捨てられた列の完全な値をオブジェクトから直接取得するには、エントリ識別子を使用して開き、 IMAPIProp::GetProps メソッドを呼び出します。
プロバイダーの実装に応じて、制限と並べ替え操作は、文字列全体またはその文字列の切り捨てられたバージョンに適用できます。 さらに、ストア プロバイダーは、階層テーブルに対して指定された並べ替え順序セット SSortOrderSet を受け入れている保証はありません。
MFCMAPI リファレンス
MFCMAPI のサンプル コードについては、次の表を参照してください。
ファイル | 関数 | コメント |
---|---|---|
HierarchyTableTreeCtrl.cpp |
CHierarchyTableTreeCtrl::GetHierarchyTable |
CHierarchyTableTreeCtrl クラスは 、GetHierarchyTable を 使用して、ツリー ビュー コントロールに表示する階層テーブルを取得します。 |