Metodo IEnumCERTVIEWEXTENSION::GetValue (certview.h)

Il metodo GetValue recupera il valore dell'estensione corrente nella sequenza di enumerazione dell'estensione.

Sintassi

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

Parametri

[in] Type

Tipo di dati per i dati restituiti. Questo parametro può essere usato per specificare che i dati dell'estensione vengano decodificati prima di essere restituiti. Se viene specificato PROPTYPE_BINARY, i dati non vengono decodificati ma restituiti nel formato non elaborato.

Specificare uno dei valori seguenti.

Valore Significato
PROPTYPE_BINARY
Il valore dell'estensione viene recuperato come è e viene codificato ASN.1 se necessario.
PROPTYPE_DATE
Il valore dell'estensione viene restituito come data/ora.
PROPTYPE_LONG
Il valore dell'estensione viene restituito come long firmato.
PROPTYPE_STRING
Il valore dell'estensione è codificato ASN.1 come stringa IA5.

[in] Flags

Contrassegno che indica il formato di output per i dati restituiti. Questo parametro può avere uno dei valori seguenti.

Valore Significato
CV_OUT_BASE64
BASE64 senza BEGIN/END
CV_OUT_BASE64HEADER
BASE64 con BEGIN CERTIFICATE e END CERTIFICATE
CV_OUT_BASE64REQUESTHEADER
BASE64 con BEGIN NEW CERTIFICATE REQUEST e END NEW CERTIFICATE REQUEST
CV_OUT_BINARY
Binary
CV_OUT_HEX
Stringa esadecimale
CV_OUT_HEXADDR
Stringa esadecimale con indirizzo/offset
CV_OUT_HEXASCII
Stringa esadecimale con ASCII
CV_OUT_HEXASCIIADDR
Stringa esadecimale con ASCII e address/offset

[out] pvarValue

Puntatore a un valore di tipo VARIANT che contiene i dati per l'estensione a cui si fa riferimento. Questo metodo ha esito negativo se il parametro pvarValue è NULL. Al termine di questa funzione, pvarValue contiene i dati di estensione attualmente a cui fa riferimento la sequenza di enumerazione dell'estensione. Il chiamante è responsabile della chiamata a VariantClear quando viene eseguito con i dati in pvarValue.

Valore restituito

C++

Se il metodo ha esito positivo, il metodo restituisce S_OK.

Se il metodo ha esito negativo, restituisce un valore HRESULT che indica l'errore. Per un elenco di codici di errore comuni, vedere Valori HRESULT comuni.

VB

Il valore restituito è un valore Variant che rappresenta i dati nell'estensione.

Commenti

Questo metodo viene usato per recuperare i dati nell'estensione a cui fa riferimento la sequenza di enumerazione dell'estensione.

Se la sequenza di enumerazione dell'estensione non fa riferimento a un'estensione valida, GetValue ha esito negativo. Usare uno dei metodi seguenti per esplorare l'enumerazione:

Questo metodo ha esito negativo se la sequenza di enumerazione dell'estensione è stata ottenuta da una chiamata al metodo ICertView::EnumCertViewColumn perché le sequenze di enumerazione ottenute da tale metodo contengono solo informazioni sullo schema.

Esempio

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

Requisiti

Requisito Valore
Client minimo supportato Nessuno supportato
Server minimo supportato Windows Server 2003 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione certview.h (includere Certsrv.h)
Libreria Certidl.lib
DLL Certadm.dll

Vedi anche

ICertView::EnumCertViewColumn

IEnumCERTVIEWEXTENSION

IEnumCERTVIEWEXTENSION::Next

IEnumCERTVIEWEXTENSION::Reset

IEnumCERTVIEWEXTENSION::Skip