Rückgabewerte in C++

In C++ ist der Rückgabewert in der Regel vom Typ HRESULT. Es stammt von diesem Rückgabewert, dass ermittelt werden kann, ob die Methode erfolgreich war, und falls nicht, was der Fehler war. Zertifikat Dienste werden in _ der Regel für das HRESULT zurückgegeben, wenn die-Methode erfolgreich abgeschlossen wurde. Programmgesteuerte Werte, die zurückgegeben werden müssen, werden durch "out"-Parameter in der-Methode zurückgegeben. Das folgende Beispiel zeigt einen C++-Methoden Aufrufzum Abrufen einer Anforderungs Eigenschaft:

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);

Im vorangehenden Code Fragment wird "Erfolg" oder "Fehler" an die HRESULT -Variable " HR" zurückgegeben. Es ist zwingend erforderlich, die HRESULT -Variable zu überprüfen, um [ im Code erfolgreich durch die Bedingung (en _ OK! = HR) verarbeitet zu werden ] . Wenn die Methode erfolgreich abgeschlossen wurde, wird der Wert der Anforderungs Eigenschaft im Variablen - varprop -Parameter zurückgegeben.