C++의 반환 값

C++에서 반환 값은 일반적으로 HRESULT 형식입니다. 이 반환 값에서 메서드가 성공했는지 여부와 그렇지 않은 경우 오류가 무엇인지 확인할 수 있습니다. Certificate Services는 일반적으로 메서드가 성공적으로 완료되면 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)]. 메서드가 성공적으로 완료되면 REQUEST 속성 값이 VARIANTvarProp 매개 변수에 반환됩니다.