Предупреждение C33022

Обнаружено потенциально неверное использование HRESULT (низкая достоверность)

Замечания

Это предупреждение является индикатором низкой достоверности для функции, которая возвращает HRESULT, что в FALSE конечном итоге возвращается или назначается возвращаемой переменной, возвращаемой.

Имя анализа кода: HRESULT_USAGE_LOW_CONFIDENCE

Пример

Следующий пример кода вызывает предупреждение C33022:

#include <Windows.h>

#define CHECK_RESULT(X) X ? S_OK : FALSE;
#define RETURN_RESULT(X) return CHECK_RESULT(X)

HRESULT foo()
{
    // ......
    RETURN_RESULT(FALSE);   // C33022
}

Эти предупреждения исправляются с помощью правильного значения HRESULT:

#include <Windows.h>

#define CHECK_RESULT(X) X ? S_OK : E_FAIL;
#define RETURN_RESULT(X) return CHECK_RESULT(X)

HRESULT foo()
{
    // ......
    RETURN_RESULT(FALSE);    // OK
}

См. также

C33020