Minor hook fixes.

This commit is contained in:
crs 2003-03-16 17:40:47 +00:00
parent 95ddb95643
commit de64342292
1 changed files with 9 additions and 5 deletions

View File

@ -294,7 +294,8 @@ getMessageHook(int code, WPARAM wParam, LPARAM lParam)
if (code >= 0) { if (code >= 0) {
if (g_screenSaver) { if (g_screenSaver) {
MSG* msg = reinterpret_cast<MSG*>(lParam); MSG* msg = reinterpret_cast<MSG*>(lParam);
if (msg->message == WM_SYSCOMMAND && msg->wParam == SC_SCREENSAVE) { if (msg->message == WM_SYSCOMMAND &&
msg->wParam == SC_SCREENSAVE) {
// broadcast screen saver started message // broadcast screen saver started message
PostThreadMessage(g_threadID, PostThreadMessage(g_threadID,
SYNERGY_MSG_SCREEN_SAVER, TRUE, 0); SYNERGY_MSG_SCREEN_SAVER, TRUE, 0);
@ -374,7 +375,7 @@ keyboardLLHook(int code, WPARAM wParam, LPARAM lParam)
// //
// low-level mouse hook -- this allows us to capture and handle mouse // low-level mouse hook -- this allows us to capture and handle mouse
// wheel events on all windows NT platforms from NT SP3 and up. this // wheel events on all windows NT platforms from NT SP3 and up. this
// is both simpler than using the mouse hook but also supports windows // is both simpler than using the mouse hook and also supports windows
// windows NT which does not report mouse wheel events. we need to // windows NT which does not report mouse wheel events. we need to
// keep the mouse hook handling of mouse wheel events because the // keep the mouse hook handling of mouse wheel events because the
// windows 95 family doesn't support low-level hooks. // windows 95 family doesn't support low-level hooks.
@ -561,8 +562,11 @@ DllMain(HINSTANCE instance, DWORD reason, LPVOID)
} }
else if (reason == DLL_PROCESS_DETACH) { else if (reason == DLL_PROCESS_DETACH) {
if (g_processID == GetCurrentProcessId()) { if (g_processID == GetCurrentProcessId()) {
if (g_keyboard != NULL || g_mouse != NULL || g_cbt != NULL) { if (g_keyboard != NULL ||
g_mouse != NULL ||
g_getMessage != NULL) {
uninstall(); uninstall();
uninstallScreenSaver();
} }
g_processID = 0; g_processID = 0;
g_hinstance = NULL; g_hinstance = NULL;
@ -715,7 +719,7 @@ install()
} }
// install low-level keyboard/mouse hooks, if possible. since these // install low-level keyboard/mouse hooks, if possible. since these
// hook are called in the context of the installing thread and that // hooks are called in the context of the installing thread and that
// thread must have a message loop but we don't want the caller's // thread must have a message loop but we don't want the caller's
// message loop to do the work, we'll fire up a separate thread // message loop to do the work, we'll fire up a separate thread
// just for the hooks. note that low-level hooks are only available // just for the hooks. note that low-level hooks are only available
@ -814,7 +818,7 @@ uninstallScreenSaver(void)
assert(g_hinstance != NULL); assert(g_hinstance != NULL);
// uninstall hook unless the mouse wheel hook is installed // uninstall hook unless the mouse wheel hook is installed
if (g_getMessage != NULL && g_wheelSupport == kWheelNone) { if (g_getMessage != NULL && g_wheelSupport != kWheelOld) {
UnhookWindowsHookEx(g_getMessage); UnhookWindowsHookEx(g_getMessage);
g_getMessage = NULL; g_getMessage = NULL;
} }