共用方式為


ICertView::SetRestriction 方法 (certview.h)

SetRestriction 方法會設定數據行的排序和限定限制。

語法

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

參數

[in] ColumnIndex

檢視或預先定義的數據行規範的有效數據行索引編號。 如果 ColumnIndex 參數不是負數,這個值代表接收限制之數據行之以零起始的索引。

如果 ColumnIndex 參數為負數,則會忽略所有其他參數,而且此參數必須是下列其中一個值:

價值 意義
CV_COLUMN_QUEUE_DEFAULT
-1
將檢視限制為尚未解析的要求;如果要求產生已發行的憑證或失敗的要求,則不會是檢視的一部分。
CV_COLUMN_LOG_DEFAULT
-2
將檢視限制為已解析的要求。 如果要求已產生已發行的憑證或失敗的要求,則會加以解決;撤銷的憑證會視為已解決。
CV_COLUMN_LOG_FAILED_DEFAULT
-3
限制檢視失敗的要求。

[in] SeekOperator

指定數據行之數據查詢限定子的邏輯運算元。 此參數與 pvarValue 參數搭配使用,以定義數據查詢限定符。

此參數必須設定為下列其中一個值:

價值 意義
CVR_SEEK_EQ
0x1
等於
CVR_SEEK_LT
0x2
小於
CVR_SEEK_LE
0x4
小於或等於
CVR_SEEK_GE
0x8
大於或等於
CVR_SEEK_GT
0x10
大於

[in] SortOrder

指定資料行的排序順序。 具有零或一個限制的索引數據行可以包含 CVR_SORT_ASCENDCVR_SORT_DESCEND排序順序。 具有兩個或多個限制的非索引資料行或資料行必須使用 CVR_SORT_NONE

價值 意義
CVR_SORT_NONE
0
沒有排序順序
CVR_SORT_ASCEND
0x1
上升
CVR_SORT_DESCEND
0x2

[in] pvarValue

指定套用至此數據行的數據查詢限定符。 這個參數以及 seekOperator 參數 ,決定哪些數據會傳回至憑證服務檢視。

傳回值

如果方法成功,此方法會傳回 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 [僅限傳統型應用程式]
目標平臺 窗戶
標頭 certview.h (include Certsrv.h)
連結庫 Certidl.lib
DLL Certadm.dll

另請參閱

ICertView

ICertView2

ICertView::OpenConnection

ICertView::OpenView

ICertView::SetResultColumn

IEnumCertViewColumn::IsIndexed