Our website uses cookies to enhance your browsing experience.
Accept
to the top
>
>
>
V543. It is suspicious that value...
menu mobile close menu
Additional information
toggle menu Contents

V543. It is suspicious that value 'X' is assigned to the variable 'Y' of HRESULT type.

Nov 19 2010

The analyzer detected a potential error related to handling a variable of the HRESULT type.

HRESULT is a 32-bit value divided into three different fields: severity code, device code and error code. Such special constants as S_OK, E_FAIL, E_ABORT, etc. serve to handle HRESULT-values while the SUCCEEDED and FAILED macros are used to check HRESULT-values.

The V543 warning is generated if the analyzer detects an attempt to write value -1, true or false into a variable of the HRESULT type. Consider this sample:

HRESULT h;
...
if (bExceptionCatched)
{
  ShowPluginErrorMessage(pi, errorText);
  h = -1;
}

Writing of value "-1" is incorrect. If you want to report about some unspecified error, you should use value 0x80004005L (Unspecified failure). This constant and the like are described in "WinError.h". This is the correct code:

if (bExceptionCatched)
{
  ShowPluginErrorMessage(pi, errorText);
  h = E_FAIL;
}

References:

This diagnostic is classified as:

You can look at examples of errors detected by the V543 diagnostic.