HWND - это дескриптор окна.
Этот тип объявлен в WinDef.h следующим образом:
typedef HANDLE HWND;
HANDLE - дескриптор объекта.
Этот тип объявлен в WinNT.h следующим образом:
typedef PVOID HANDLE;
Наконец, PVOID - это указатель на любой тип.
Этот тип объявлен в WinNT.h следующим образом:
typedef void * PVOID;
Итак, HWND на самом деле является указателем на void. Вы можете разыграть лонг в HWND следующим образом:
HWND h = (HWND) my_long_var;
но очень внимательно относитесь к тому, какая информация хранится в my_long_var. Вы должны убедиться, что там есть указатель.
Позже редактировать:
Предупреждение предполагает, что у вас включены 64-битные проверки переносимости. Если вы создаете 32-битное приложение, вы можете их игнорировать.