I migrated my win-api based application to lazarus 1.8.0 64-bit. (from 32 bit)
Then I noticed error on mousewheel event when converting WPARAM by LOWORD function (base.inc)
function wndProc(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
begin
case Msg of
....
WM_MOUSEWHEEL: begin
doSomeThing( KeysToShiftState( LOWORD(wParam), .... )
end;
end;
end;
The error from Exception.Message is:
"Type procedure (parentfp_void_pointer, ANSISTRING) is not structure or union type"
Patching it to LOWORD( longint(wParam) ) seems to help, but is this the correct way?