Метод IEnumCERTVIEWEXTENSION::GetValue (certview.h)
Метод GetValue извлекает значение текущего расширения в последовательности перечисления расширений.
Синтаксис
HRESULT GetValue(
[in] LONG Type,
[in] LONG Flags,
[out] VARIANT *pvarValue
);
Параметры
[in] Type
Тип данных для возвращаемых данных. Этот параметр можно использовать, чтобы указать, что данные расширения декодируются перед возвратом. Если указан PROPTYPE_BINARY, данные не декодируются, а возвращаются в необработанном формате.
Укажите одно из следующих значений.
[in] Flags
Флаг, обозначающий формат выходных данных для возвращаемых данных. Этот параметр может принимать одно из указанных ниже значений.
[out] pvarValue
Указатель на значение типа VARIANT , содержащее данные для расширения, на которое ссылается в данный момент. Этот метод завершается ошибкой, если параметр pvarValue имеет значение NULL. После успешного выполнения этой функции pvarValue содержит данные расширения, на которые в настоящее время ссылается последовательность перечисления расширений. Вызывающий объект отвечает за вызов VariantClear по завершении работы с данными в pvarValue.
Возвращаемое значение
C++
Если метод завершается успешно, метод возвращает S_OK.Если метод завершается сбоем, он возвращает значение HRESULT , указывающее на ошибку. Список распространенных кодов ошибок см. в разделе Общие значения HRESULT.
VB
Возвращаемое значение — это Значение Variant , представляющее данные в расширении.Комментарии
Этот метод используется для получения данных в расширении, на которое в настоящее время ссылается последовательность перечисления расширений.
Если последовательность перечисления расширений не ссылается на допустимое расширение, getValue завершается ошибкой . Для перехода по перечислению используйте один из следующих методов:
- IEnumCERTVIEWEXTENSION::Reset: переходит к следующему расширению в последовательности перечисления.
- IEnumCERTVIEWEXTENSION::Next: переходит к следующему расширению в последовательности перечисления.
- IEnumCERTVIEWEXTENSION::Skip: пропускает указанное число расширений.
Примеры
VARIANT var;
LONG Index;
HRESULT hr;
SYSTEMTIME systime;
VariantInit(&var);
// Enumerate each extension
// pEnumExt is previously instantiated IEnumCERTVIEWEXTENSION object
while (S_OK == pEnumExt->Next(&Index))
{
hr = pEnumExt->GetValue(PROPTYPE_BINARY, CV_OUT_HEX, &var);
if (FAILED(hr))
{
printf("Failed GetValue - %x\n", hr);
break;
}
switch(var.vt)
{
case VT_EMPTY:
printf("VT_EMPTY\n");
break;
case VT_BSTR:
printf("BSTR:%ws\n", var.bstrVal);
break;
case VT_DATE:
VariantTimeToSystemTime(var.date, &systime);
printf("%d.%d.%d %02d:%02d:%02d\n",
systime.wMonth,
systime.wDay,
systime.wYear,
systime.wHour,
systime.wMinute,
systime.wSecond );
break;
case VT_I2:
printf("%d\n", var.iVal);
break;
case VT_I4:
printf("%d\n", var.lVal);
break;
default:
printf("type is:%i\n", var.vt);
break;
}
}
// Free resources.
VariantClear( &var );
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Ни одна версия не поддерживается |
Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
Целевая платформа | Windows |
Header | certview.h (включая Certsrv.h) |
Библиотека | Certidl.lib |
DLL | Certadm.dll |
См. также раздел
IEnumCERTVIEWEXTENSION