Mercurial > pidgin
changeset 4531:0e148dd373ab
[gaim-migrate @ 4810]
Switching to lowercase names
committer: Tailor Script <tailor@pidgin.im>
author | Herman Bloggs <hermanator12002@yahoo.com> |
---|---|
date | Wed, 05 Feb 2003 22:55:12 +0000 |
parents | cbdc0fc5c3c6 |
children | 6488535322a1 |
files | src/win32/IdleTracker/IdleTracker.c src/win32/IdleTracker/IdleTracker.h |
diffstat | 2 files changed, 0 insertions(+), 195 deletions(-) [+] |
line wrap: on
line diff
--- a/src/win32/IdleTracker/IdleTracker.c Wed Feb 05 13:47:28 2003 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,175 +0,0 @@ -/** - * IdleTracker - a DLL that tracks the user's idle input time - * system-wide. - * - * Usage - * ===== - * - call IdleTrackerInit() when you want to start monitoring. - * - call IdleTrackerTerm() when you want to stop monitoring. - * - to get the time past since last user input, do the following: - * GetTickCount() - IdleTrackerGetLastTickCount() - * - * Author: Sidney Chong - * Date: 25/5/2000 - * Version: 1.0 - * - * From: http://www.codeproject.com/dll/trackuseridle.asp - * - * Modified by: Herman Bloggs <hermanator12002@yahoo.com> - * Date: 11/5/2002 - **/ - -#include <windows.h> -#ifndef __GNUC__ -#include <crtdbg.h> -#endif - -/** - * The following global data is SHARED among all instances of the DLL - * (processes); i.e., these are system-wide globals. - **/ -#ifndef __GNUC__ -#pragma data_seg(".IdleTrac") // you must define as SHARED in .def -HHOOK g_hHkKeyboard = NULL; // handle to the keyboard hook -HHOOK g_hHkMouse = NULL; // handle to the mouse hook -DWORD g_dwLastTick = 0; // tick time of last input event -LONG g_mouseLocX = -1; // x-location of mouse position -LONG g_mouseLocY = -1; // y-location of mouse position -#pragma data_seg() -#pragma comment(linker, "/section:.IdleTrac,rws") -#else -/* Shared data section for mingw */ -asm (".section .IdleTrac,\"d\"\n" \ - "_g_hHkKeyboard:\n\t.long 0\n" \ - "_g_hHkMouse:\n\t.long 0\n" \ - "_g_dwLastTick:\n\t.long 0\n" \ - "_g_mouseLocX:\n\t.long -1\n" \ - "_g_mouseLocY:\n\t.long -1\n" \ - ); -extern HHOOK g_hHkKeyboard; -extern HHOOK g_hHkMouse; -extern DWORD g_dwLastTick; -extern LONG g_mouseLocX; -extern LONG g_mouseLocY; - -typedef struct tagMOUSEHOOKSTRUCT { - POINT pt; - HWND hwnd; - UINT wHitTestCode; - DWORD dwExtraInfo; -} MOUSEHOOKSTRUCT; - -#endif -HINSTANCE g_hInstance; - -/** - * Get tick count of last keyboard or mouse event - **/ -__declspec(dllexport) DWORD IdleTrackerGetLastTickCount() -{ - return g_dwLastTick; -} - -/** - * Keyboard hook: record tick count - **/ -LRESULT CALLBACK KeyboardTracker(int code, WPARAM wParam, LPARAM lParam) -{ - if (code==HC_ACTION) { - g_dwLastTick = GetTickCount(); - } - return CallNextHookEx(g_hHkKeyboard, code, wParam, lParam); -} - -/** - * Mouse hook: record tick count - **/ -LRESULT CALLBACK MouseTracker(int code, WPARAM wParam, LPARAM lParam) -{ - if (code==HC_ACTION) { - MOUSEHOOKSTRUCT* pStruct = (MOUSEHOOKSTRUCT*)lParam; - //we will assume that any mouse msg with the same locations as spurious - if (pStruct->pt.x != g_mouseLocX || pStruct->pt.y != g_mouseLocY) - { - g_mouseLocX = pStruct->pt.x; - g_mouseLocY = pStruct->pt.y; - g_dwLastTick = GetTickCount(); - } - } - return CallNextHookEx(g_hHkMouse, code, wParam, lParam); -} - -/** - * Initialize DLL: install kbd/mouse hooks. - **/ -__declspec(dllexport) BOOL IdleTrackerInit() -{ - if (g_hHkKeyboard == NULL) { - g_hHkKeyboard = SetWindowsHookEx(WH_KEYBOARD, KeyboardTracker, g_hInstance, 0); - } - if (g_hHkMouse == NULL) { - g_hHkMouse = SetWindowsHookEx(WH_MOUSE, MouseTracker, g_hInstance, 0); - } -#ifndef __GNUC__ - _ASSERT(g_hHkKeyboard); - _ASSERT(g_hHkMouse); -#endif - g_dwLastTick = GetTickCount(); // init count - - if (!g_hHkKeyboard || !g_hHkMouse) - return FALSE; - else - return TRUE; -} - -/** - * Terminate DLL: remove hooks. - **/ -__declspec(dllexport) void IdleTrackerTerm() -{ - BOOL bResult; - if (g_hHkKeyboard) - { - bResult = UnhookWindowsHookEx(g_hHkKeyboard); -#ifndef __GNUC__ - _ASSERT(bResult); -#endif - g_hHkKeyboard = NULL; - } - if (g_hHkMouse) - { - bResult = UnhookWindowsHookEx(g_hHkMouse); -#ifndef __GNUC__ - _ASSERT(bResult); -#endif - g_hHkMouse = NULL; - } -} - -/** - * DLL's entry point - **/ -int WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved) -{ - switch(dwReason) { - case DLL_PROCESS_ATTACH: - DisableThreadLibraryCalls(hInstance); - g_hInstance = hInstance; - break; - case DLL_PROCESS_DETACH: - //we do an unhook here just in case the user has forgotten. - IdleTrackerTerm(); - break; - } - return TRUE; -} - -#if 0 -/** - * This is to prevent the CRT from loading, thus making this a smaller - * and faster dll. - **/ -extern "C" BOOL __stdcall _DllMainCRTStartup( HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) { - return DllMain( hinstDLL, fdwReason, lpvReserved ); -} -#endif
--- a/src/win32/IdleTracker/IdleTracker.h Wed Feb 05 13:47:28 2003 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,20 +0,0 @@ -/** - * IdleTracker - a DLL that tracks the user's idle input time - * system-wide. - * - * Usage - * ===== - * - call IdleTrackerInit() when you want to start monitoring. - * - call IdleTrackerTerm() when you want to stop monitoring. - * - to get the time past since last user input, do the following: - * GetTickCount() - IdleTrackerGetLastTickCount() - * - * Author: Sidney Chong - * Date: 25/5/2000 - * Version: 1.0 - **/ -#include <windows.h> - -__declspec(dllimport) BOOL IdleTrackerInit(); -__declspec(dllimport) void IdleTrackerTerm(); -__declspec(dllimport) DWORD IdleTrackerGetLastTickCount();