Compartir a través de


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

El método GetValue recupera el valor de la extensión actual en la secuencia de enumeración de extensiones.

Sintaxis

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

Parámetros

[in] Type

Tipo de datos para los datos devueltos. Este parámetro se puede usar para especificar que los datos de extensión se descodifiquen antes de devolverse. Si se especifica PROPTYPE_BINARY, los datos no se descodifican, sino que se devuelven en su formato sin formato.

Especifique uno de los valores siguientes.

Valor Significado
PROPTYPE_BINARY
El valor de extensión se recupera tal cual y está codificado ASN.1 si es necesario.
PROPTYPE_DATE
El valor de extensión se devuelve como una fecha y hora.
PROPTYPE_LONG
El valor de extensión se devuelve como un long con signo.
PROPTYPE_STRING
El valor de extensión es ASN.1 codificado como una cadena IA5.

[in] Flags

Marca que indica el formato de salida de los datos devueltos. Este parámetro puede ser uno de los valores siguientes.

Valor Significado
CV_OUT_BASE64
BASE64 sin BEGIN/END
CV_OUT_BASE64HEADER
BASE64 con BEGIN CERTIFICATE y END CERTIFICATE
CV_OUT_BASE64REQUESTHEADER
BASE64 con BEGIN NEW CERTIFICATE REQUEST y END NEW CERTIFICATE REQUEST
CV_OUT_BINARY
Binary
CV_OUT_HEX
Cadena hexadecimal
CV_OUT_HEXADDR
Cadena hexadecimal con dirección/desplazamiento
CV_OUT_HEXASCII
Cadena hexadecimal con ASCII
CV_OUT_HEXASCIIADDR
Cadena hexadecimal con ASCII y dirección/desplazamiento

[out] pvarValue

Puntero a un valor de tipo VARIANT que contiene los datos de la extensión a la que se hace referencia actualmente. Este método produce un error si el parámetro pvarValue es NULL. Tras completar correctamente esta función, pvarValue contiene los datos de extensión a los que hace referencia actualmente la secuencia de enumeración de extensión. El autor de la llamada es responsable de llamar a VariantClear cuando haya terminado con los datos de pvarValue.

Valor devuelto

C++

Si el método se realiza correctamente, el método devuelve S_OK.

Si se produce un error en el método, devuelve un valor HRESULT que indica el error. Para obtener una lista de códigos de error comunes, consulte Valores HRESULT comunes.

VB

El valor devuelto es un valor Variant que representa los datos de la extensión.

Comentarios

Este método se usa para recuperar los datos de la extensión a los que hace referencia actualmente la secuencia de enumeración de extensiones.

Si la secuencia de enumeración de extensión no hace referencia a una extensión válida, Se produce un error en GetValue . Use uno de los métodos siguientes para navegar por la enumeración :

Este método produce un error si la secuencia de enumeración de extensión se obtuvo mediante una llamada al método ICertView::EnumCertViewColumn porque las secuencias de enumeración obtenidas por ese método contienen solo información de esquema.

Ejemplos

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 Value
Cliente mínimo compatible No se admite ninguno
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado certview.h (incluya Certsrv.h)
Library Certidl.lib
Archivo DLL Certadm.dll

Consulte también

ICertView::EnumCertViewColumn

IEnumCERTVIEWEXTENSION

IEnumCERTVIEWEXTENSION::Next

IEnumCERTVIEWEXTENSION::Reset

IEnumCERTVIEWEXTENSION::Skip