C++ の戻り値
C++ では、戻り値は通常 HRESULT 型です。 この戻り値から、メソッドが成功したかどうかを判断することができ、成功しなかった場合はエラーが何であったかを判断できます。 証明書サービスは通常、メソッドが正常に完了したときに、HRESULT として S_OK を返します。 返す必要があるプログラム値は、メソッド内の "out" パラメーターを通じて返されます。 次の例は、要求プロパティを取得する C++ メソッド呼び出しを示しています。
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);
上記のコード フラグメントでは、成功または失敗が HRESULT 変数 hr に返されます。 HRESULT 変数の成功を確認することが必須です [条件によってコードで処理されます (S_OK!= hr)]。 メソッドが正常に完了した場合、要求プロパティの値が VARIANT varProp パラメーターで返されます。