C6226
Предупреждение C6226: неявное приведение между семантически различными целочисленными типами: присвоение HRESULT значения -1. Попробуйте вместо этого использовать E_FAIL.
Данное предупреждение указывает, что результату HRESULT явно присваивается значение -1 или он инициализируется этим значением. Это предупреждение часто создается из-за случайного использования целочисленного типа вместо типа HRESULT. Для обозначения успеха следует использовать символьную константу S_OK. Для обозначения неудачи следует использовать символическую константу, начинающуюся со знаков E_.
Дополнительные сведения см. в макросах SUCCEEDED и FAILED.
Пример
Данное предупреждение создается в следующем коде:
#include <windows.h>
VOID f( )
{
HRESULT hr;
LPMALLOC pMalloc;
if (FAILED(CoGetMalloc(1, &pMalloc)))
{
hr = -1;
// code ...
}
else
{
// code ...
}
}
Для устранения этого предупреждения используйте следующий код:
#include <windows.h>
VOID f( )
{
HRESULT hr;
LPMALLOC pMalloc;
if (FAILED(CoGetMalloc(1, &pMalloc)))
{
hr = E_FAIL;
// code ...
}
else
{
// code ...
}
}
Для данного предупреждения тип SCODE эквивалентен типу HRESULT.