If you're absolutely confident that everything iscorrect with your codes try to disable the Warning #2259 with a directive:
#pragma warning ( disable : 2259 )// Non-pointer conversion from "type1" to "type2" may lose significant bits
Please take into account that this is Intel C++ compiler specific warning. In case of Microsoft C++ compiler you will
have a warning with a different number.
Here is a small Test-Case:
DWORD dwFileVersionMS = 1;
if( HIWORD( dwFileVersionMS ) < 6 )
RTint x = -1;
RTint x = -2;
Microsoft C++ compiler doesn't display any warnings.