Метод 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_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

Задает порядок сортировки для столбца. Индексированные столбцы с нулевым или одним ограничением могут содержать порядок сортировки CVR_SORT_ASCEND или CVR_SORT_DESCEND. Неиндексированные столбцы или столбцы с двумя или более ограничениями должны использовать 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
Header certview.h (включая Certsrv.h)
Библиотека Certidl.lib
DLL Certadm.dll

См. также раздел

ICertView

ICertView2

ICertView::OpenConnection

ICertView::OpenView

ICertView::SetResultColumn

IEnumCertViewColumn::IsIndexed