Partilhar via


C28623

Aviso C28623: conversão não assinada de coordenadas GetMessagePos(). Usar GET_X_LPARAM/GET_Y_LPARAM em vez de LOWORD/HIWORD

Sistemas com vários monitores podem ter coordenadas x e coordenadas y negativas. Nesses sistemas, GetMessagePos pode, portanto, retornar valores negativos. No entanto, como LOWORD e HIWORD tratam as coordenadas como quantidades não assinadas, elas não devem ser usadas.

Exemplo

PREfast relata o aviso para o exemplo a seguir.

DWORD dw = GetMessagePos();
POINT ppt;

ppt.x = LOWORD(dw);
ppt.y = HIWORD(dw);

O exemplo a seguir evita o erro.

DWORD dw = GetMessagePos();
POINT ppt;

ppt.x = GET_X_LPARAM(dw);
ppt.y = GET_Y_LPARAM(dw);