Skip to content

Commit 7c989c5

Browse files
committed
AhkDll: Add API 2: IbSend_mouse_event and IbSend_keybd_event
1 parent d3b9f93 commit 7c989c5

2 files changed

Lines changed: 72 additions & 3 deletions

File tree

AhkDll/IbAhkSend.hpp

Lines changed: 33 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,37 @@ namespace Send {
4242

4343
DLLAPI Send::Error __stdcall IbSendInit(Send::SendType type, Send::InitFlags flags, void* argument);
4444
DLLAPI void __stdcall IbSendDestroy();
45+
4546
DLLAPI void __stdcall IbSendSyncKeyStates();
46-
DLLAPI UINT WINAPI IbSendInput(UINT cInputs, LPINPUT pInputs, int cbSize);
47-
DLLAPI void __stdcall IbSendInputHook(Send::HookCode code);
47+
48+
#pragma region API 1
49+
50+
DLLAPI UINT WINAPI IbSendInput(
51+
_In_ UINT cInputs, // number of input in the array
52+
_In_reads_(cInputs) LPINPUT pInputs, // array of inputs
53+
_In_ int cbSize // sizeof(INPUT)
54+
);
55+
56+
DLLAPI void __stdcall IbSendInputHook(Send::HookCode code);
57+
58+
#pragma endregion
59+
60+
61+
#pragma region API 2
62+
63+
DLLAPI VOID WINAPI IbSend_mouse_event(
64+
_In_ DWORD dwFlags, //MOUSEEVENTF_
65+
_In_ DWORD dx,
66+
_In_ DWORD dy,
67+
_In_ DWORD dwData,
68+
_In_ ULONG_PTR dwExtraInfo
69+
);
70+
71+
DLLAPI VOID WINAPI IbSend_keybd_event(
72+
_In_ BYTE bVk,
73+
_In_ BYTE bScan,
74+
_In_ DWORD dwFlags, //KEYEVENTF_
75+
_In_ ULONG_PTR dwExtraInfo
76+
);
77+
78+
#pragma endregion

AhkDll/dllmain.cpp

Lines changed: 39 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,44 @@ DLLAPI void __stdcall IbSendSyncKeyStates() {
145145
send->sync_key_states();
146146
}
147147

148-
DLLAPI UINT WINAPI IbSendInput(UINT cInputs, LPINPUT pInputs, int cbSize) {
148+
DLLAPI UINT WINAPI IbSendInput(
149+
_In_ UINT cInputs,
150+
_In_reads_(cInputs) LPINPUT pInputs,
151+
_In_ int cbSize
152+
) {
149153
return send->send_input(pInputs, cInputs);
154+
}
155+
156+
DLLAPI VOID WINAPI IbSend_mouse_event(
157+
_In_ DWORD dwFlags,
158+
_In_ DWORD dx,
159+
_In_ DWORD dy,
160+
_In_ DWORD dwData,
161+
_In_ ULONG_PTR dwExtraInfo
162+
) {
163+
INPUT input;
164+
input.type = INPUT_MOUSE;
165+
input.mi.dx = dx;
166+
input.mi.dy = dy;
167+
input.mi.mouseData = dwData;
168+
input.mi.dwFlags = dwFlags;
169+
input.mi.time = 0;
170+
input.mi.dwExtraInfo = dwExtraInfo;
171+
IbSendInput(1, &input, sizeof INPUT);
172+
}
173+
174+
DLLAPI VOID WINAPI IbSend_keybd_event(
175+
_In_ BYTE bVk,
176+
_In_ BYTE bScan,
177+
_In_ DWORD dwFlags,
178+
_In_ ULONG_PTR dwExtraInfo
179+
) {
180+
INPUT input;
181+
input.type = INPUT_KEYBOARD;
182+
input.ki.wVk = bVk;
183+
input.ki.wScan = bScan;
184+
input.ki.dwFlags = dwFlags;
185+
input.ki.time = 0;
186+
input.ki.dwExtraInfo = dwExtraInfo;
187+
IbSendInput(1, &input, sizeof INPUT);
150188
}

0 commit comments

Comments
 (0)