SDK hook dll

I have modified the C++ code from Paul DiLascia’s MSJ
article to plain vanilla C code. Seems like the hook
is not getting installed properly. i think i’m missing
something obvious here.
kudrt

ps : the dll is suppose to install a system wide mouse
and keyboard hook.
here goes …

#include “windows.h”

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE = FILE;
#endif

#define DLLEXPORT __declspec(dllexport)

#pragma data_seg (“.InputInfo”)
HHOOK HookKbd = NULL;
HHOOK HookMouse = NULL;
DWORD LastInputTick = 0;
//HANDLE ghInst;
#pragma data_seg ()

BOOL APIENTRY DllMain(HANDLE hInst, DWORD
ul_reason_being_called, LPVOID lpReserved)
{
return TRUE;
}

LRESULT CALLBACK MyKbdHook(int code, WPARAM wParam,
LPARAM lParam)
{
//_asm int 3
if (code==HC_ACTION) {
LastInputTick = GetTickCount();
}
return CallNextHookEx(HookKbd, code, wParam, lParam);
}

LRESULT CALLBACK MyMouseHook(int code, WPARAM wParam,
LPARAM lParam)
{
//_asm int 3
if (code==HC_ACTION) {
LastInputTick = GetTickCount();
}
return CallNextHookEx(HookMouse, code, wParam,
lParam);
}

BOOL DLLEXPORT IdleUIInit( void )
{
//_asm int 3
if (HookKbd == NULL) {
HINSTANCE hInst = GetModuleHandle(“inputnfo.dll”);
HookKbd = SetWindowsHookEx(WH_KEYBOARD,
(HOOKPROC)MyKbdHook, hInst, 0);
HookMouse = SetWindowsHookEx(WH_MOUSE,
(HOOKPROC)MyMouseHook, hInst, 0);
LastInputTick = GetTickCount();
}
return TRUE;
}

DWORD DLLEXPORT IdleUIGetLastInputTime( void )
{
return LastInputTick;
}

void DLLEXPORT IdleUITerm( void )
{
BOOL bRet1 = UnhookWindowsHookEx(HookKbd);
BOOL bRet2 = UnhookWindowsHookEx(HookMouse);
}


Do You Yahoo!?
Make international calls for as low as $.04/minute with Yahoo! Messenger
http://phonecard.yahoo.com/


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com