次の方法で共有


ICertView::SetRestriction メソッド (certview.h)

SetRestriction メソッドは、列の並べ替えと修飾の制限を設定します。

構文

HRESULT SetRestriction(
  [in] LONG          ColumnIndex,
  [in] LONG          SeekOperator,
  [in] LONG          SortOrder,
  [in] const VARIANT *pvarValue
);

パラメーター

[in] ColumnIndex

ビューの有効な列インデックス番号、または定義済みの列指定子。 ColumnIndex パラメーターが負でない場合、この値は制限を受ける列の 0 から始まるインデックスを表します。

ColumnIndex パラメーターが負の値の場合、他のすべてのパラメーターは無視され、このパラメーターは次のいずれかの値である必要があります。

意味
CV_COLUMN_LOG_DEFAULT
解決された要求にビューを制限します。 発行された証明書または失敗した要求が発生した場合、要求は解決されます。失効した証明書は解決済みと見なされます。
CV_COLUMN_LOG_FAILED_DEFAULT
失敗した要求にビューを制限します。
CV_COLUMN_QUEUE_DEFAULT
解決されていない要求にビューを制限します。要求によって発行された証明書または失敗した要求のいずれかが発生した場合、ビューには含まれません。

[in] SeekOperator

列のデータ クエリ修飾子の論理演算子を指定します。 このパラメーターは、データ クエリ修飾子を定義するために pvarValue パラメーターと共に使用されます。 このパラメーターは、次のいずれかの値に設定する必要があります。

意味
CVR_SEEK_EQ
等しい
CVR_SEEK_LE
以下
CVR_SEEK_LT
より小さい
CVR_SEEK_GE
以上
CVR_SEEK_GT
より大きい

[in] SortOrder

列の並べ替え順序を指定します。 制限が 0 または 1 のインデックス付き列には、CVR_SORT_ASCENDまたはCVR_SORT_DESCENDの並べ替え順序を含めることができます。 2 つ以上の制限があるインデックスのない列または列では、CVR_SORT_NONEを使用する必要があります。

意味
CVR_SORT_ASCEND
[昇順]
CVR_SORT_DESCEND
[降順]
CVR_SORT_NONE
並べ替え順序なし

[in] pvarValue

この列に適用されるデータ クエリ修飾子を指定します。 このパラメーターは SeekOperator パラメーターと共に、証明書サービス ビューに返されるデータを決定します。

戻り値

VB

メソッドが成功した場合、メソッドは S_OKを返します。

メソッドが失敗した場合は、エラーを示す HRESULT 値を返します。 一般的なエラー コードの一覧については、「 共通の HRESULT 値」を参照してください。

注釈

ICertView オブジェクトは、制限の配列を保持し、各列に任意の数の制限を含めることを許可します。 列の制限が確立されると、 ICertView::OpenView メソッドの呼び出しによってデータが取得され、各列の制限がデータベース クエリの一部として使用されます。

SetRestriction メソッドを呼び出す前に、ICertView::OpenConnection メソッドを呼び出して証明書サービス サーバーとの接続を確立する必要があります。

    // This example restricts the data
    // to rows that have RequestIDs greater than five.
    // pCertView is a pointer to ICertView.
    HRESULT    hr;
    VARIANT    varRest;
    LONG       nIndex;
    BSTR       bstrCol = NULL;

    // Use one column in the result set.
    hr = pCertView->SetResultColumnCount(1);
    if (FAILED(hr))
    {
        printf("Failed SetResultColumnCount - %x\n", hr);
        goto error;
    }
    // Determine the column index for RequestID column.
    bstrCol = SysAllocString(TEXT("RequestID"));
    hr = pCertView->GetColumnIndex(FALSE, bstrCol, &nIndex);
    if (FAILED(hr))
    {
        printf("Failed GetColumnIndex - %x\n", hr);
        goto error;
    }
    // Place this column into the result set.
    pCertView->SetResultColumn(nIndex);
    // Set a restriction on this column.
    VariantInit(&varRest);
    varRest.vt = VT_I4;
    varRest.lVal = 5;
    // Restrict view to requests with ID greater than 5.
    hr = pCertView->SetRestriction(nIndex,
                                   CVR_SEEK_GT,
                                   CVR_SORT_NONE,
                                   &varRest);
    if (S_OK != hr)
        printf("Failed ICertView::SetRestriction - %x\n", hr);
    else
	{
        // Call OpenView, process rows, release resources, and so on.
        // ...
	}
error:
    // Done processing, clear resources.
    VariantClear(&varRest);
    if (NULL != bstrCol)
        SysFreeString(bstrCol);

要件

要件
サポートされている最小のクライアント サポートなし
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー certview.h (Certsrv.h を含む)
Library Certidl.lib
[DLL] Certadm.dll

こちらもご覧ください

ICertView

ICertView2

ICertView::OpenConnection

ICertView::OpenView

ICertView::SetResultColumn

IEnumCertViewColumn::IsIndexed