Comprobación de errores en C++
En C++, todos los métodos de Servicios de certificados devuelven directamente un valor HRESULT que indica si la llamada al método se realizó correctamente o no. Si se produjo un error en la llamada, el valor devuelto indica por qué se produjo un error.
En el ejemplo siguiente se muestra cómo se pueden usar los valores HRESULT devueltos para la comprobación de errores. Para ver códigos de error de ejemplo, consulte Valores HRESULT comunes.
HRESULT hr;
BSTR strAttributeName;
BSTR strAttributeValue = NULL;
if(!(strAttributeName = SysAllocString(L"TheAttribute")))
{
printf("Could not allocate memory for attribute name.\n");
exit(1);
}
hr = pICertServerPolicy->GetRequestAttribute(
strAttributeName,
&strAttributeValue);
if(S_OK != hr) // Check to determine whether method failed
{
if (E_INVALIDARG == hr)
{
//... Do something to recover from errors and so on.
}
}
// Free BSTRs when finished.
if (NULL != strAttributeName)
SysFreeString(strAttributeName);
if (NULL != strAttributeValue)
SysFreeString(strAttributeValue);