Compartilhar via


Método IEnumCERTVIEWEXTENSION::GetValue (certview.h)

O método GetValue recupera o valor da extensão atual na sequência de enumeração de extensão.

Sintaxe

HRESULT GetValue(
  [in]  LONG    Type,
  [in]  LONG    Flags,
  [out] VARIANT *pvarValue
);

Parâmetros

[in] Type

Tipo de dados para os dados retornados. Esse parâmetro pode ser usado para especificar que os dados da extensão sejam decodificados antes de serem retornados. Se PROPTYPE_BINARY for especificado, os dados não serão decodificados, mas retornados em seu formato bruto.

Especifique um dos valores a seguir.

Valor Significado
PROPTYPE_BINARY
O valor da extensão é recuperado como está e é codificado em ASN.1, se necessário.
PROPTYPE_DATE
O valor da extensão é retornado como uma data/hora.
PROPTYPE_LONG
O valor da extensão é retornado como um long assinado.
PROPTYPE_STRING
O valor da extensão é codificado em ASN.1 como uma cadeia de caracteres IA5.

[in] Flags

Sinalizador que indica o formato de saída para os dados retornados. Esse parâmetro pode usar um dos valores a seguir.

Valor Significado
CV_OUT_BASE64
BASE64 sem BEGIN/END
CV_OUT_BASE64HEADER
BASE64 com BEGIN CERTIFICATE e END CERTIFICATE
CV_OUT_BASE64REQUESTHEADER
BASE64 COM BEGIN NEW CERTIFICATE REQUEST E END NEW CERTIFICATE REQUEST
CV_OUT_BINARY
Binário
CV_OUT_HEX
Cadeia de caracteres hexadecimal
CV_OUT_HEXADDR
Cadeia de caracteres hexadecimal com endereço/deslocamento
CV_OUT_HEXASCII
Cadeia de caracteres hexadecimal com ASCII
CV_OUT_HEXASCIIADDR
Cadeia de caracteres hexadecimal com ASCII e endereço/deslocamento

[out] pvarValue

Um ponteiro para um valor do tipo VARIANT que contém os dados da extensão referenciada no momento. Esse método falhará se o parâmetro pvarValue for NULL. Após a conclusão bem-sucedida dessa função, pvarValue contém os dados de extensão atualmente referenciados pela sequência de enumeração de extensão. O chamador é responsável por chamar VariantClear quando terminar com os dados em pvarValue.

Retornar valor

C++

Se o método for bem-sucedido, o método retornará S_OK.

Se o método falhar, ele retornará um valor HRESULT que indica o erro. Para obter uma lista de códigos de erro comuns, consulte Valores HRESULT comuns.

VB

O valor retornado é um Variant que representa os dados na extensão.

Comentários

Esse método é usado para recuperar os dados na extensão que está sendo referenciada pela sequência de enumeração de extensão.

Se a sequência de enumeração de extensão não estiver referenciando uma extensão válida, GetValue falhará. Use um dos seguintes métodos para navegar pela enumeração:

Esse método falhará se a sequência de enumeração de extensão tiver sido obtida por uma chamada para o método ICertView::EnumCertViewColumn porque as sequências de enumeração obtidas por esse método contêm apenas informações de esquema.

Exemplos

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 );

Requisitos

Requisito Valor
Cliente mínimo com suporte Nenhum compatível
Servidor mínimo com suporte Windows Server 2003 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho certview.h (inclua Certsrv.h)
Biblioteca Certidl.lib
DLL Certadm.dll

Confira também

ICertView::EnumCertViewColumn

IEnumCERTVIEWEXTENSION

IEnumCERTVIEWEXTENSION::Next

IEnumCERTVIEWEXTENSION::Reset

IEnumCERTVIEWEXTENSION::Skip