コード例 #1
0
DWORD	HookProc(HMODULE hModule, PCHAR szProc, DWORD dwHookAddr)
{
	DWORD pProcAddr = (DWORD) GetProcAddress(hModule, szProc);
	if (pProcAddr == NULL) return NULL;	// function doesn't exists in current process

	return HookProc (pProcAddr, dwHookAddr);
}
コード例 #2
0
ファイル: TextOutSpy.c プロジェクト: JasonXJ/goldendict
LRESULT CALLBACK MouseHookProc(int nCode, WPARAM wParam, LPARAM lParam)
{
DWORD wso;
	if ( (nCode == HC_ACTION) && ((wParam == WM_MOUSEMOVE) || (wParam == WM_NCMOUSEMOVE)) ) {
		wso = WaitForSingleObject(hSynhroMutex, 0);
		if (wso == WAIT_OBJECT_0 || wso == WAIT_ABANDONED) {
			HookProc( &(((PMOUSEHOOKSTRUCT)lParam)->pt) );
			ReleaseMutex(hSynhroMutex);
		}
	}
	return CallNextHookEx(GlobalData->g_hHook, nCode, wParam, lParam);
}
コード例 #3
0
ファイル: Win9xConHook.c プロジェクト: Garridon/windowsrtdev
/*
 * SendMessage Hook:
 */
LRESULT __declspec(dllexport) CALLBACK CallWndProc(INT hc, WPARAM wParam, 
                                                   LPARAM lParam)
{
    PCWPSTRUCT pcwps = (PCWPSTRUCT)lParam;
    
    if (pcwps) {
        int rv = HookProc(hc, &pcwps->hwnd, &pcwps->message, 
                          &pcwps->wParam, &pcwps->lParam);
        if (rv != -1)
            return rv;
    }
    /* 
     * CallNextHookEx apparently ignores the hhook argument, so pass NULL
     */
    return CallNextHookEx(NULL, hc, wParam, lParam);
}
コード例 #4
0
ファイル: Win9xConHook.c プロジェクト: Garridon/windowsrtdev
/*
 * PostMessage Hook:
 */
LRESULT __declspec(dllexport) CALLBACK GetMsgProc(INT hc, WPARAM wParam, 
                                                  LPARAM lParam)
{
    PMSG pmsg;

    pmsg = (PMSG)lParam;

    if (pmsg) {
        int rv = HookProc(hc, &pmsg->hwnd, &pmsg->message, 
                          &pmsg->wParam, &pmsg->lParam);
        if (rv != -1)
            return rv;
    }
    /* 
     * CallNextHookEx apparently ignores the hhook argument, so pass NULL
     */
    return CallNextHookEx(NULL, hc, wParam, lParam);
}
コード例 #5
0
ファイル: TextOutSpy.c プロジェクト: JasonXJ/goldendict
LRESULT CALLBACK GetMessageHookProc(int nCode, WPARAM wParam, LPARAM lParam)
{
PMSG pMsg;
DWORD wso;
	if( nCode == HC_ACTION && wParam == PM_REMOVE ) 
	{
		pMsg = (PMSG)lParam;
		if( pMsg && ( pMsg->message == WM_MOUSEMOVE || pMsg->message == WM_NCMOUSEMOVE ) ) 
		{
			wso = WaitForSingleObject(hSynhroMutex, 0);
			if (wso == WAIT_OBJECT_0 || wso == WAIT_ABANDONED) 
			{
				POINT pt;
				pt.x = GET_X_LPARAM( pMsg->lParam );
				pt.y = GET_Y_LPARAM( pMsg->lParam );
				if( pMsg->message == WM_MOUSEMOVE && pMsg->hwnd != NULL )
					ClientToScreen( pMsg->hwnd, &pt );
				HookProc( &pt );
				ReleaseMutex(hSynhroMutex);
			}
		}
	}
	return CallNextHookEx(GlobalData->g_hHook, nCode, wParam, lParam);
}
コード例 #6
0
DWORD	HookProc(PCHAR szModule, PCHAR szProc, DWORD dwHookAddr)
{
	HMODULE module = GetModuleHandle(szModule);
	return HookProc (module, szProc, dwHookAddr);
}