I didn't manage to compile the component, but at least i know quite well why there is an error now :
void wsh_panel_window::on_mouse_wheel(WPARAM wp)
{
TRACK_FUNCTION();
VARIANTARG args[1];
args[0].vt = VT_I4;
args[0].lVal = GET_WHEEL_DELTA_WPARAM(wp) / WHEEL_DELTA;
script_invoke_v(CallbackIds::on_mouse_wheel, args, _countof(args));
}
The function argument wp is typed as a WPARAM (so an unsigned int pointer), but on some trackpad, the driver send small ints, between -WHEEL_DELTA and WHEEL_DELTA to GET_WHEEL_DELTA_WPARAM(wp), in order to achieve a smooth scroll i guess.
So if you divide by WHEEL_DELTA, and cast it to an int, you've got 0, whenever you scroll up or down.
So the solution would be something like changing
on_mouse_wheel(WPARAM wp)
to
on_mouse_wheel(float *wp)
in wsh_panel_window.h and wsh_panel_window.cpp
(i don't know c++ so it may not be valid, but it's probably not far )