Método ICertServerExit::EnumerateExtensions (certif.h)
O método EnumerateExtensions retorna a cadeia de caracteres OID ( identificador de objeto ) (também conhecida como nome da extensão) da próxima extensão de certificado a ser enumerada e incrementa o ponteiro interno para a extensão a seguir.
Antes de chamar EnumerateExtensions, um aplicativo chama ICertServerExit::EnumerateExtensionsSetup. Quando feito a enumeração, um aplicativo chama ICertServerExit::EnumerateExtensionsClose.
Sintaxe
HRESULT EnumerateExtensions(
[out] BSTR *pstrExtensionName
);
Parâmetros
[out] pstrExtensionName
Um ponteiro para o nome da extensão enumerada.
Retornar valor
C++
Se o método for bem-sucedido, o método retornará S_OK e *pstrExtensionName será definido como o BSTR que contém o nome da extensão enumerada. Um valor de S_FALSE será retornado se a última extensão já tiver sido enumerada.Para usar esse método, crie uma variável do tipo BSTR , defina a variável igual a NULL e passe o endereço dessa variável como pstrExtensionName.
Quando terminar de usar o BSTR, libere-o chamando a função SysFreeString .
Se o método falhar, ele retornará um valor HRESULT que indica o erro. Para obter uma lista de códigos de erro comuns, consulte Valores HRESULT comuns.
VB
Retorna uma cadeia de caracteres que contém o nome da extensão enumerada ou uma cadeia de caracteres vazia se a última extensão já tiver sido enumerada.Comentários
Esse método enumera extensões de certificado registradas no banco de dados, mesmo aquelas que estão desabilitadas e não aparecem no certificado. Para determinar se uma extensão está desabilitada, use ICertServerExit::GetCertificateExtensionFlags para testar a EXTENSION_DISABLE_FLAG bit da extensão.
Exemplos
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);
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Nenhum compatível |
Servidor mínimo com suporte | Windows Server 2003 [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | certif.h (inclua Certsrv.h) |
Biblioteca | Certidl.lib |
DLL | Certcli.dll |
Confira também
ICertServerExit::EnumerateExtensionsClose
ICertServerExit::EnumerateExtensionsSetup