Metodo ICertServerExit::EnumerateExtensions (certif.h)
Il metodo EnumerateExtensions restituisce la stringa OID ( Object Identifier ) (nota anche come nome di estensione) dell'estensione del certificato successiva da enumerare, quindi incrementa il puntatore interno all'estensione seguente.
Prima di chiamare EnumerateExtensions, un'applicazione chiama ICertServerExit::EnumerateExtensionsSetup. Al termine dell'enumerazione, un'applicazione chiama ICertServerExit::EnumerateExtensionsClose.
Sintassi
HRESULT EnumerateExtensions(
[out] BSTR *pstrExtensionName
);
Parametri
[out] pstrExtensionName
Puntatore al nome dell'estensione enumerata.
Valore restituito
C++
Se il metodo ha esito positivo, il metodo restituisce S_OK e *pstrExtensionName è impostato su BSTR che contiene il nome dell'estensione enumerata. Se l'ultima estensione è già stata enumerata, viene restituito un valore di S_FALSE.Per usare questo metodo, creare una variabile di tipo BSTR , impostare la variabile su NULL e passare l'indirizzo di questa variabile come pstrExtensionName.
Al termine dell'uso di BSTR, liberarlo chiamando la funzione SysFreeString .
Se il metodo ha esito negativo, restituisce un valore HRESULT che indica l'errore. Per un elenco dei codici di errore comuni, vedere Valori HRESULT comuni.
VB
Restituisce una stringa contenente il nome dell'estensione enumerata o una stringa vuota se l'ultima estensione è già stata enumerata.Commenti
Questo metodo enumera le estensioni del certificato registrate nel database, anche quelle disabilitate e non vengono visualizzate nel certificato. Per determinare se un'estensione è disabilitata, usare ICertServerExit::GetCertificateExtensionFlags per testare il bit di EXTENSION_DISABLE_FLAG dell'estensione.
Esempio
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);
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Nessuno supportato |
Server minimo supportato | Windows Server 2003 [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | certif.h (include Certsrv.h) |
Libreria | Certidl.lib |
DLL | Certcli.dll |
Vedi anche
ICertServerExit::EnumerateExtensionsClose
ICertServerExit::EnumerateExtensionsSetup