Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Em C++, o valor de retorno é normalmente do tipo HRESULT. É a partir desse valor de retorno que se pode determinar se o método foi bem-sucedido ou não e, se não, qual foi o erro. Os Serviços de Certificados normalmente retornam S_OK para o HRESULT quando o método for concluído com êxito. Os valores programáticos que precisam ser retornados são retornados através de parâmetros "out" no método. O exemplo a seguir mostra uma chamada de método C++ para recuperar uma propriedade request:
BSTR bstrPropName = NULL;
VARIANT varProp;
HRESULT hr;
VariantInit(&varProp);
bstrPropName = SysAllocString(L"RequestID");
if (NULL == bstrPropName)
{
printf("Failed SysAllocString\n");
// Take application-specific error action.
exit(1);
}
// Retrieve the request property.
// pCertServerPolicy is a pointer to a previously
// instantiated ICertServerPolicy object.
hr = pCertServerPolicy->GetRequestProperty(bstrPropName,
PROPTYPE_LONG,
&varProp);
if (S_OK != hr)
{
printf("Failed GetRequestProperty [%x]\n", hr);
// Take application-specific error action.
// ...
}
else
{
// Successfully retrieved property; use varProp as needed.
// ...
}
// Done processing.
VariantClear(&varProp);
if (NULL != bstrPropName)
SysFreeString(bstrPropName);
No fragmento de código anterior, o sucesso ou falha é retornado para a variável HRESULT, hr. É imperativo verificar o HRESULT variável para o sucesso [manipulado no código pela condição (S_OK != hr)]. Se o método for concluído com êxito, o valor da propriedade request será retornado no parâmetro VARIANTvarProp.