C++ でのエラー チェック
C++ では、すべての Certificate Services メソッドは、メソッド呼び出しが成功したか失敗したかを示す HRESULT 値を直接返します。 呼び出しが失敗した場合、戻り値は失敗した理由を示します。
次の例は、返された HRESULT 値をエラー チェックに使用する方法を示しています。 エラー コードの例については、「 共通の HRESULT 値」を参照してください。
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);