ICertServerExit::EnumerateExtensions-Methode (certif.h)
Die EnumerateExtensions-Methode gibt die OID-Zeichenfolge ( Objektbezeichner ) (auch als Erweiterungsname bezeichnet) der nächsten Zertifikaterweiterung zurück, die aufgelistet werden soll, und erhöht dann den internen Zeiger auf die folgende Erweiterung.
Vor dem Aufruf von EnumerateExtensions ruft eine Anwendung ICertServerExit::EnumerateExtensionsSetup auf. Wenn die Aufzählung abgeschlossen ist, ruft eine Anwendung ICertServerExit::EnumerateExtensionsClose auf.
Syntax
HRESULT EnumerateExtensions(
[out] BSTR *pstrExtensionName
);
Parameter
[out] pstrExtensionName
Ein Zeiger auf den aufgezählten Erweiterungsnamen.
Rückgabewert
C++
Wenn die Methode erfolgreich ist, gibt die Methode S_OK zurück, und *pstrExtensionName wird auf den BSTR festgelegt, der den Namen der aufgezählten Erweiterung enthält. Ein Wert von S_FALSE wird zurückgegeben, wenn die letzte Erweiterung bereits aufgelistet wurde.Um diese Methode zu verwenden, erstellen Sie eine Variable vom Typ BSTR , legen Sie die Variable gleich NULL fest, und übergeben Sie die Adresse dieser Variablen als pstrExtensionName.
Wenn Sie die Verwendung des BSTR abgeschlossen haben, geben Sie ihn frei, indem Sie die SysFreeString-Funktion aufrufen.
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
Gibt eine Zeichenfolge zurück, die den Namen der aufgezählten Erweiterung enthält, oder eine leere Zeichenfolge, wenn die letzte Erweiterung bereits aufgelistet wurde.Hinweise
Diese Methode listet Zertifikaterweiterungen auf, die in der Datenbank aufgezeichnet wurden, auch diejenigen, die deaktiviert sind und nicht im Zertifikat angezeigt werden. Um zu ermitteln, ob eine Erweiterung deaktiviert ist, verwenden Sie ICertServerExit::GetCertificateExtensionFlags , um das EXTENSION_DISABLE_FLAG Bit der Erweiterung zu testen.
Beispiele
BSTR bstrExt = NULL;
VARIANT varExt;
LONG ExtFlags;
HRESULT hr;
VariantInit(&varExt);
// Enumerate the extensions.
while (S_OK ==
(hr = pCertServerExit->EnumerateExtensions(&bstrExt)))
{
// Retrieve the extension data.
if (FAILED(pCertServerExit->GetCertificateExtension(
bstrExt,
PROPTYPE_BINARY,
&varExt)))
printf("Failed GetCertificateExtension\n");
else
{
// Retrieve the extension flags.
if (FAILED(pCertServerExit->GetCertificateExtensionFlags(
&ExtFlags)))
printf("Failed GetCertificateExtensionFlags\n");
else
// This sample will display the extension OID string,
// the extension flags (in hex) and
// the length of the BSTR binary ASN-encode extension.
printf("Extension: %ws\tFlags:%x\tLength:%u\n",
bstrExt,
ExtFlags,
SysStringByteLen(varExt.bstrVal));
}
}
// Determine if hr was S_FALSE, meaning the enumeration
// was completed, or some other error.
if (S_FALSE != hr)
printf("Failed EnumerateExtensions - %x\n", hr);
// Free BSTR resource.
if (NULL != bstrExt)
SysFreeString(bstrExt);
// Free VARIANT resource.
VariantClear(&varExt);
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Nicht unterstützt |
Unterstützte Mindestversion (Server) | Windows Server 2003 [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | certif.h (include Certsrv.h) |
Bibliothek | Certidl.lib |
DLL | Certcli.dll |
Weitere Informationen
ICertServerExit::EnumerateExtensionsClose
ICertServerExit::EnumerateExtensionsSetup