Partager via


IEnumCERTVIEWEXTENSION ::GetValue, méthode (certview.h)

La méthode GetValue récupère la valeur de l’extension actuelle dans la séquence extension-énumération.

Syntaxe

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

Paramètres

[in] Type

Type de données pour les données retournées. Ce paramètre peut être utilisé pour spécifier que les données d’extension doivent être décodées avant d’être retournées. Si PROPTYPE_BINARY est spécifié, les données ne sont pas décodées, mais retournées dans leur format brut.

Spécifiez l’une des valeurs suivantes.

Valeur Signification
PROPTYPE_BINARY
La valeur de l’extension est récupérée telle quelle et est encodée en ASN.1 si nécessaire.
PROPTYPE_DATE
La valeur d’extension est retournée en tant que date/heure.
PROPTYPE_LONG
La valeur d’extension est retournée sous la forme d’un long signé.
PROPTYPE_STRING
La valeur d’extension est encodée en ASN.1 sous la forme d’une chaîne IA5.

[in] Flags

Indicateur qui indique le format de sortie pour les données retournées. Ce paramètre peut prendre les valeurs suivantes.

Valeur Signification
CV_OUT_BASE64
BASE64 sans BEGIN/END
CV_OUT_BASE64HEADER
BASE64 avec BEGIN CERTIFICATE et END CERTIFICATE
CV_OUT_BASE64REQUESTHEADER
BASE64 avec BEGIN NEW CERTIFICATE REQUEST et END NEW CERTIFICATE REQUEST
CV_OUT_BINARY
Binary
CV_OUT_HEX
Chaîne hexadécimale
CV_OUT_HEXADDR
Chaîne hexadécimale avec adresse/décalage
CV_OUT_HEXASCII
Chaîne hexadécimale avec ASCII
CV_OUT_HEXASCIIADDR
Chaîne hexadécimale avec ASCII et address/offset

[out] pvarValue

Pointeur vers une valeur de type VARIANT qui contient les données de l’extension actuellement référencée. Cette méthode échoue si le paramètre pvarValue a la valeur NULL. Une fois cette fonction terminée, pvarValue contient les données d’extension actuellement référencées par la séquence extension-énumération. L’appelant est responsable de l’appel de VariantClear lorsqu’il a terminé avec les données dans pvarValue.

Valeur retournée

C++

Si la méthode réussit, la méthode retourne S_OK.

Si la méthode échoue, elle retourne une valeur HRESULT qui indique l’erreur. Pour obtenir la liste des codes d’erreur courants, consultez Valeurs HRESULT courantes.

VB

La valeur de retour est un Variant qui représente les données de l’extension.

Remarques

Cette méthode est utilisée pour récupérer les données dans l’extension actuellement référencée par la séquence extension-énumération.

Si la séquence extension-énumération ne fait pas référence à une extension valide, GetValue échoue. Utilisez l’une des méthodes suivantes pour parcourir l’énumération :

Cette méthode échoue si la séquence extension-énumération a été obtenue par un appel à la méthode ICertView ::EnumCertViewColumn , car les séquences d’énumération obtenues par cette méthode contiennent uniquement des informations de schéma.

Exemples

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

Configuration requise

Condition requise Valeur
Client minimal pris en charge Aucun pris en charge
Serveur minimal pris en charge Windows Server 2003 [applications de bureau uniquement]
Plateforme cible Windows
En-tête certview.h (include Certsrv.h)
Bibliothèque Certidl.lib
DLL Certadm.dll

Voir aussi

ICertView ::EnumCertViewColumn

IEnumCERTVIEWEXTENSION

IEnumCERTVIEWEXTENSION ::Next

IEnumCERTVIEWEXTENSION ::Reset

IEnumCERTVIEWEXTENSION ::Skip