Hi Leute,
ich versuche verzweifelt seit 2 Tagen meine Mausradereignisse mit einem systemweiten Hook abzufangen, jedoch bekomme ich es nicht gebacken. Mausklicks funktionieren einwandfrei (WM_LBUTTONDOWN, WM_RBUTTONDOWN, ...), aber sobald ich abfragen will, ob die "message == WM_MOUSEWHEEL" ist, bekomme ich eine Fehlermeldung, dass WM_MOUSEWHEEL ein nichtdeklarierter Bezeichner ist. Das verstehe ich absilut nicht.
Hier mal mein Code meiner MouseHook.dll
Ich bin für jegliche Hilfe dankbar.
greetz giniman
ich versuche verzweifelt seit 2 Tagen meine Mausradereignisse mit einem systemweiten Hook abzufangen, jedoch bekomme ich es nicht gebacken. Mausklicks funktionieren einwandfrei (WM_LBUTTONDOWN, WM_RBUTTONDOWN, ...), aber sobald ich abfragen will, ob die "message == WM_MOUSEWHEEL" ist, bekomme ich eine Fehlermeldung, dass WM_MOUSEWHEEL ein nichtdeklarierter Bezeichner ist. Das verstehe ich absilut nicht.
Hier mal mein Code meiner MouseHook.dll
Code:
// MouseHook.cpp : Definiert den Einsprungpunkt für die DLL-Anwendung.
//
#include "stdafx.h"
#include "MouseHook.h"
#pragma data_seg(".HOOKDATA")
HHOOK hook = NULL;
HWND hwnd = NULL;
char ClassN[100];
char WTitle[100];
#pragma data_seg()
#pragma comment(linker, "/SECTION:.HOOKDATA,RWS")
MOUSEHOOK_API void InstallHook(HWND h,char *c, char *w)
{
hook = NULL;
hwnd = h;
strcpy(ClassN,c);
strcpy(WTitle,w);
hook = SetWindowsHookEx(WH_MOUSE, MouseProc, GetModuleHandle("MouseHook.dll"), NULL);
if(hook==NULL)
MessageBox(NULL,"Unable to install hook","Error!",MB_OK);
}
MOUSEHOOK_API void RemoveHook()
{
UnhookWindowsHookEx(hook);
}
MOUSEHOOK_API LRESULT CALLBACK MouseProc(int nCode,WPARAM wParam,LPARAM lParam)
{
if(nCode < 0)
return CallNextHookEx(hook, nCode, wParam, lParam);
if(nCode == HC_ACTION)
{
switch (wParam)
{
case WM_LBUTTONDOWN:
case WM_NCLBUTTONDOWN:
PostMessage(hwnd, WM_LBUTTONDOWN, wParam, lParam);
break;
case WM_MBUTTONDOWN:
break;
case WM_RBUTTONDOWN:
case WM_NCRBUTTONDOWN:
PostMessage(hwnd, WM_RBUTTONDOWN, wParam, lParam);
break;
case WM_LBUTTONDBLCLK:
break;
case WM_MBUTTONDBLCLK:
break;
case WM_RBUTTONDBLCLK:
break;
case WM_MOUSEWHEEL:
PostMessage(hwnd, WM_MOUSEWHEEL, wParam, lParam);
break;
default:
break;
}
}
return CallNextHookEx(hook, nCode, wParam, lParam);
}
Ich bin für jegliche Hilfe dankbar.
greetz giniman
Zuletzt bearbeitet: