次の方法で共有


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 パラメーターで返されます。