共用方式為


傳回C++中的值

在C++中,傳回值通常是 HRESULT 類型。 它來自這個傳回值,可以判斷方法是否成功,如果不是,則錯誤是什麼。 當方法成功完成時,憑證服務通常會傳回 HRESULTS_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 參數中傳回要求屬性值。