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