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

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:

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;


This diagnostic is classified as:

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

Bugs Found

Checked Projects
Collected Errors
14 312
This website uses cookies and other technology to provide you a more personalized experience. By continuing the view of our web-pages you accept the terms of using these files. If you don't want your personal data to be processed, please, leave this site. Learn More →