a module that accesses that.
When I make a call to it I get the message (from show last error) of
"The parameter is incorrect."
Well there are 3 parameters being passed.
Code: Select all
IF MyUser32.SendInput(1, S.ADR(input), cbSize) = 0 THEN
MyWin.ShowLastError; Out.Ln;
input.Dump;
HALT(0);
END;
Code: Select all
cbSize:= SIZE(KEYBDINPUT);
The fact that the call to SendInput does not bomb says I really am calling the procedure.
Now comes my questions. the C code looks like
Code: Select all
kb.wVk = vk;
Input.type = INPUT_KEYBOARD;
Input.ki = kb;
::SendInput(1,&Input,sizeof(Input));
Also SIZE(input) and sizeof(input) should yield the same number (in this case 16) bytes.
Before the call input.type = 1 (the value of INPUT_KEYBOARD), After the call stuff is
messed up
Is this an issue about [ccall]? What else could be going on?input.type = 6480556 (*initially 1*)
KEYBDINPUT.wVk = 452 (*initially ORD("R")*)
KEYBDINPUT.wScan = 13964 (*initially 0*)
KEYBDINPUT.dwFlags = 0 (*initially 0*)
KEYBDINPUT.time = 0 (*initially 0*)
KEYBDINPUT.dwExtraInfo = 0 (*initially 0*)
-Doug Danforth