MsgHook Native library updates

MsgHook Native library works from native test application, still
introducing library to java side through jni.
This commit is contained in:
Edward Jakubowski
2014-05-23 06:50:49 -04:00
parent 1721d2a130
commit b5ede5e6cb
28 changed files with 304 additions and 52 deletions

View File

@@ -1,12 +1,19 @@
/*
* Copyright 2014, Synthuse.org
* Released under the Apache Version 2.0 License.
*
* last modified by ejakubowski7@gmail.com
*/
#include <windows.h>
#define MSGHOOKER_FILE TEXT("MsgHook.dll")
HINSTANCE msgHookDll;
//BOOL SetHook(HWND callerHWnd, DWORD threadId)
typedef BOOL (* SETHOOK)(HWND, DWORD);
SETHOOK SetHook;
//BOOL SetMsgHook(HWND callerHWnd, DWORD threadId)
typedef BOOL (* SETMSGHOOK)(HWND, DWORD);
SETMSGHOOK SetMsgHook;
//BOOL RemoveHook()
typedef BOOL (* REMOVEHOOK)(VOID);
@@ -14,10 +21,13 @@ REMOVEHOOK RemoveHook;
typedef struct
{
HWND hWnd;
int nCode;
DWORD dwHookType;
WPARAM wParam;
LPARAM lParam;
TCHAR wParamStr[25];
TCHAR lParamStr[25];
}HEVENT;
/*
@@ -30,16 +40,16 @@ typedef struct {
} KBDLLHOOKSTRUCT, *PKBDLLHOOKSTRUCT;
*/
BOOL InitHook(HWND hw, int threadId)
BOOL InitMsgHook(HWND hw, int threadId)
{
msgHookDll = LoadLibrary(MSGHOOKER_FILE);
if (msgHookDll != NULL)
{
SetHook = (SETHOOK)GetProcAddress(msgHookDll, "SetHook");
SetMsgHook = (SETMSGHOOK)GetProcAddress(msgHookDll, "SetMsgHook");
RemoveHook = (REMOVEHOOK)GetProcAddress(msgHookDll, "RemoveHook");
if (SetHook)
if (SetMsgHook)
{
return SetHook(hw, threadId);
return SetMsgHook(hw, threadId);
}
}
return false;
@@ -195,8 +205,8 @@ void InitializeMsgLookup(int allowList[], int allowSize)
case WM_CTLCOLORDLG: _tcscpy_s(MSG_LOOKUP[i], _T("WM_CTLCOLORDLG")); break;
case WM_CTLCOLORSCROLLBAR: _tcscpy_s(MSG_LOOKUP[i], _T("WM_CTLCOLORSCROLLBAR")); break;
case WM_CTLCOLORSTATIC: _tcscpy_s(MSG_LOOKUP[i], _T("WM_CTLCOLORSTATIC")); break;
case WM_MOUSEFIRST: _tcscpy_s(MSG_LOOKUP[i], _T("WM_MOUSEFIRST")); break;
//case WM_MOUSEMOVE: _tcscpy_s(MSG_LOOKUP[i], _T("WM_MOUSEMOVE")); break;
//case WM_MOUSEFIRST: _tcscpy_s(MSG_LOOKUP[i], _T("WM_MOUSEFIRST")); break;
case WM_MOUSEMOVE: _tcscpy_s(MSG_LOOKUP[i], _T("WM_MOUSEMOVE")); break;
case WM_LBUTTONDOWN: _tcscpy_s(MSG_LOOKUP[i], _T("WM_LBUTTONDOWN")); break;
case WM_LBUTTONUP: _tcscpy_s(MSG_LOOKUP[i], _T("WM_LBUTTONUP")); break;
case WM_LBUTTONDBLCLK: _tcscpy_s(MSG_LOOKUP[i], _T("WM_LBUTTONDBLCLK")); break;