IMAPITable::Restrict
適用対象: Outlook 2013 | Outlook 2016
テーブルにフィルターを適用し、指定した条件に一致する行のみに行セットを減らします。
HRESULT Restrict(
LPSRestriction lpRestriction,
ULONG ulFlags
);
パラメーター
lpRestriction
[in]フィルターの条件を定義する SRestriction 構造体へのポインター。 lpRestriction パラメーターに NULL を渡すと、現在のフィルターが削除されます。
ulFlags
[in]制限操作のタイミングを制御するフラグのビットマスク。 次のフラグを設定できます。
TBL_ASYNC
操作を非同期的に開始し、操作が完了する前に を返します。
TBL_BATCH
テーブル内のデータが必要になるまで、フィルターの評価を延期します。
戻り値
S_OK
フィルターが正常に適用されました。
MAPI_E_BUSY
制限操作の開始を妨げる別の操作が進行中です。 進行中の操作の完了を許可するか、停止する必要があります。
MAPI_E_TOO_COMPLEX
lpRestriction パラメーターが指す特定のフィルターが複雑すぎるため、テーブルで操作を実行できません。
注釈
IMAPITable::Restrict メソッドは、テーブルに制限 (フィルター) を設定します。 以前の制限がある場合は破棄され、新しい制限が適用されます。 制限を適用しても、テーブルの基になるデータには影響しません。単に、取得できる行を制限を満たすデータを含む行に制限することで、ビューを変更します。
いくつかの異なる種類の制限があり、それぞれ異なる構造で説明されています。 SRestriction 構造体には、制限の種類を示す値と、その型に適用できる特定の構造体の 2 つのメンバーが含まれています。
Restrict の呼び出しによってビューから非表示になっているテーブル行の通知は生成されません。
複数値プロパティに対するプロパティ制限は、単一値プロパティの制限と同様に機能します。 プロパティ制限で使用する複数値プロパティには、MVI_FLAG フラグが設定されている必要があります。 このフラグが設定されていない場合は、完全に順序付けられたタプルとして扱われます。 2 つの複数値列の比較では、列要素が順番に比較され、最初の不等値での列の関係がレポートされます。 等値は、比較された列に同じ値が同じ順序で含まれている場合にのみ返されます。 1 つの列の値が他の列よりも少ない場合、報告される関係は、もう一方の値に対する null 値の関係です。
制限の詳細については、「 制限について」を参照してください。
注:
サーバー上のデータを検索する動的クエリを作成する場合は、Restrict メソッドと QueryRows メソッドを一緒に使用する代わりに FindRow メソッドを使用します。 Restrict メソッドは、ベース フォルダーに追加または変更されたすべてのメッセージを評価するために使用されるキャッシュされたビューを作成します。 クライアント アプリケーションが動的クエリごとに Restrict メソッドを使用する場合は、クエリごとにキャッシュされたビューが作成されます。
呼び出し側への注意
新しい制限を作成せずに現在の制限を破棄するには、 lpRestriction で NULL を渡します。
別の非同期テーブル呼び出しが進行中で 、Restrict がMAPI_E_BUSYを返す場合は、 IMAPITable::Abort を呼び出して呼び出しを停止できます。
いずれかの フラグを設定しない限り、Restrict は同期的に動作します。 TBL_BATCH フラグを設定した場合、 制限は 、データを要求しない限り、制限の評価を延期します。 TBL_ASYNC フラグが設定されている場合、 Restrictは非同期的に動作し、操作が完了する前にを返す可能性があります。
Restrict の呼び出しが行われ、現在のカーソル位置であるBOOKMARK_CURRENTがテーブルの先頭に設定されると、テーブルのすべてのブックマークが破棄されます。
テーブルの列セットに含まれていないプロパティに対してプロパティ制限を適用しようとすると、結果は未定義になります。 テーブルでプロパティがサポートされているかどうかが不明な場合は、プロパティの制限と既存の制限を組み合わせてください。 は、プロパティの制限を適用する前に、プロパティの存在に関する制限チェックが存在します。
制限のためにテーブルからフィルター処理された行に対してテーブル通知を受け取る必要はありません。
MFCMAPI リファレンス
MFCMAPI のサンプル コードについては、次の表を参照してください。
ファイル | 関数 | コメント |
---|---|---|
ContentsTableListCtrl.cpp |
CContentsTableListCtrl::ApplyRestriction |
MFCMAPI では、 IMAPITable::Restrict メソッドを使用してテーブルに制限を設定します。 |