Freigeben über


IEnumCERTVIEWEXTENSION::GetValue-Methode (certview.h)

Die GetValue-Methode ruft den Wert der aktuellen Erweiterung in der Erweiterungsenumerationssequenz ab.

Syntax

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

Parameter

[in] Type

Datentyp für die zurückgegebenen Daten. Dieser Parameter kann verwendet werden, um anzugeben, dass die Erweiterungsdaten vor der Rückgabe decodiert werden. Wenn PROPTYPE_BINARY angegeben ist, werden die Daten nicht decodiert, sondern im Rohformat zurückgegeben.

Geben Sie einen der folgenden Werte an.

Wert Bedeutung
PROPTYPE_BINARY
Der Erweiterungswert wird unverändert abgerufen und bei Bedarf ASN.1-codiert.
PROPTYPE_DATE
Der Erweiterungswert wird als Datum/Uhrzeit zurückgegeben.
PROPTYPE_LONG
Der Erweiterungswert wird als signierter long-Wert zurückgegeben.
PROPTYPE_STRING
Der Erweiterungswert ist ASN.1-codiert als IA5-Zeichenfolge.

[in] Flags

Flag, das das Ausgabeformat für die zurückgegebenen Daten angibt. Dieser Parameter kann einen der folgenden Werte annehmen.

Wert Bedeutung
CV_OUT_BASE64
BASE64 ohne BEGIN/END
CV_OUT_BASE64HEADER
BASE64 mit BEGIN CERTIFICATE und END CERTIFICATE
CV_OUT_BASE64REQUESTHEADER
BASE64 MIT BEGIN NEW CERTIFICATE REQUEST und END NEW CERTIFICATE REQUEST
CV_OUT_BINARY
Binary
CV_OUT_HEX
Hexadezimale Zeichenfolge
CV_OUT_HEXADDR
Hexadezimalzeichenfolge mit Adresse/Offset
CV_OUT_HEXASCII
Hexadezimalzeichenfolge mit ASCII
CV_OUT_HEXASCIIADDR
Hexadezimalzeichenfolge mit ASCII und Adresse/Offset

[out] pvarValue

Ein Zeiger auf einen Wert vom Typ VARIANT , der die Daten für die derzeit referenzierte Erweiterung enthält. Diese Methode schlägt fehl, wenn der pvarValue-ParameterNULL ist. Nach erfolgreichem Abschluss dieser Funktion enthält pvarValue die Erweiterungsdaten, auf die derzeit von der Erweiterungsenumerationssequenz verwiesen wird. Der Aufrufer ist für den Aufruf von VariantClear verantwortlich, wenn er mit den Daten in pvarValue fertig ist.

Rückgabewert

C++

Wenn die Methode erfolgreich ist, gibt die Methode S_OK zurück.

Wenn die Methode fehlschlägt, gibt sie einen HRESULT-Wert zurück, der den Fehler angibt. Eine Liste allgemeiner Fehlercodes finden Sie unter Allgemeine HRESULT-Werte.

VB

Der Rückgabewert ist ein Variant-Wert , der die Daten in der Erweiterung darstellt.

Hinweise

Diese Methode wird verwendet, um die Daten in der Erweiterung abzurufen, auf die derzeit von der Erweiterungsenumerationssequenz verwiesen wird.

Wenn die Erweiterungsenumerationssequenz nicht auf eine gültige Erweiterung verweist, schlägt GetValue fehl. Verwenden Sie eine der folgenden Methoden, um durch die Enumeration zu navigieren:

Diese Methode schlägt fehl, wenn die Erweiterungsenumerationssequenz durch einen Aufruf der ICertView::EnumCertViewColumn-Methode abgerufen wurde, da von dieser Methode abgerufene Enumerationssequenzen nur Schemainformationen enthalten.

Beispiele

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

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Nicht unterstützt
Unterstützte Mindestversion (Server) Windows Server 2003 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile certview.h (include Certsrv.h)
Bibliothek Certidl.lib
DLL Certadm.dll

Weitere Informationen

ICertView::EnumCertViewColumn

IEnumCERTVIEWEXTENSION

IEnumCERTVIEWEXTENSION::Next

IEnumCERTVIEWEXTENSION::Reset

IEnumCERTVIEWEXTENSION::Skip