c++ - SetWindowsHookEx succeed but callback function is never called -
dll code:
lresult callback cbtnewproc(int ncode, wparam wparam, lparam lparam) { std::ofstream file; file.open("e:\\enter.txt", std::ios::out); file << ncode; file.close(); return callnexthookex(g_hhook, ncode, wparam, lparam); } extern "c" __declspec(dllexport) void installhook() { if (g_hhook != null){ unhookwindowshookex(g_hhook); g_hhook = null; } hinstance hinstance = getmodulehandle(null); g_hhook = setwindowshookex(wh_cbt, cbtnewproc, null, getcurrentthreadid()); if (g_hhook == null) { messagebox(null, l"fail!", l"caption", mb_ok); } else { messagebox(null, l"install success!", l"caption", mb_ok); } }
i wrote program load dll , called installhook
. message box "install success" showed callback function never called, enter.txt not found under drive e.
i'm using win7 + vs2013.
for hook set in other processes, must pass hinstance of dll contains hook proc setwindowshookex
.
you should pass 0 thread id.
Comments
Post a Comment