複数値列の操作
適用対象: Outlook 2013 | Outlook 2016
複数値列には、複数値プロパティのデータが含まれます。これは、単一の値ではなく、基本型の値の配列を持つプロパティです。 既定の列セットに複数値のプロパティが含まれるテーブルがないため、テーブルのユーザーが要求した場合にのみ、複数値のプロパティがテーブルに含まれます。
複数値の列をテーブルに表示できます。
1 つの行で、すべてのプロパティ値が 1 つの列インスタンスに表示されます。 これが既定です。
- または-
一連の行で、プロパティ値ごとに 1 行。 各一意の値は、複数値プロパティの値と同じ数の行がある、独自の行の列に表示されます。 各行には、 PR_INSTANCE_KEY (PidTagInstanceKey) プロパティの一意の値がありますが、他の列の値は同じです。 複数の値を持つ複数の列 (たとえば、 それぞれ M と N の値を持つ 2 つの列) が行に含まれている場合、その行の M*N インスタンスがテーブルに表示されます。
テーブル ユーザーは、複数値列のプロパティ型に MVI_FLAG フラグを設定して IMAPITable::SetColumns メソッドを呼び出して、既定以外の種類の表示を要求します。 MVI_FLAG フラグは、MV_FLAGフラグとMV_INSTANCEフラグを論理 OR 演算と組み合わせた結果として定義される定数です。 SetColumns で使用されるだけでなく、MVI_FLAG lpSortCriteria パラメーターの IMAPITable::SortTable、lpRestriction パラメーターの ulPropTag メンバーの IMAPITable::Restrict にも渡すことができます。 MVI_FLAGを渡すと、 SortTable は SetColumns と同様に実行し、複数値列の値ごとに 1 行を追加し、インスタンス内の 1 つの値を並べ替えます。 値ごとに 1 行が追加されます。
ただし、複数値の列を追加の計算行に拡張しません。 MVI_FLAGが設定された複数値の列は、テーブルを制限する際にその列を使用するようにサービス プロバイダーに指示します。 制限にプロパティ値がある場合は、列の IMAPITable::QueryRows によって返される値と同じ単一の値プロパティ タグである必要があります。
テーブル実装者は、既定の種類の表示をサポートするためにのみ必要であり、呼び出し元が他の代替を要求したときにMAPI_E_TOO_COMPLEX値を返すことができます。 両方の種類の表示をサポートする機能は、フォルダー コンテンツ テーブルを実装するメッセージ ストア プロバイダーにとって最も重要です。