При отправке сообщений параметры WPARAM
и LPARAM
имеют определенные интерпретации в зависимости от сообщения.Вам нужно передать эти параметры так, чтобы сообщение, которое вы отправляете, ожидало их передачи.Если вы определяете свое собственное сообщение (возможно, через смещение от WM_USER
, WM_APP
или RegisterWindowMessage
), то, очевидно, у вас естьнемного больше широты.
Во времена 16-битной Windows , WPARAM
было 16-битным словом, в то время как LPARAM
было 32-битной длиной.Эти различия исчезли в Win32;они оба стали 32-битными значениями.
Согласно это , LPARAM
определяется как LONG_PTR
, что в 64-битной Windows является 64-битным значением со знаком.WPARAM
определяется как UINT_PTR
, что в 64-битной Windows является 64-битным значением без знака.Если вы определяете собственное сообщение, вы можете назначить его параметры соответствующим образом.