Exemplo n.º 1
0
BOOL far pascal zUnhookWindowsHook( int pp1, FARPROC pp2 )
{
    BOOL r;
    FARPROC fp ;

    SaveRegs();
    /*
    ** Log IN Parameters (No Create/Destroy Checking Yet!)
    */
    LogIn( (LPSTR)"APICALL:UnhookWindowsHook int+FARPROC+",
        pp1, pp2 );

    fp = (FARPROC)HookFind( (void far *)pp2 ) ;
    if ( fp == NULL ) {     /* Unhooking an unknown hook type */
        fp = pp2;
    }

    /*
    ** Call the API!
    */
    RestoreRegs();
    GrovelDS();
    r = UnhookWindowsHook(pp1,fp);
    UnGrovelDS();
    SaveRegs();
    /*
    ** Log Return Code & OUT Parameters (No Create/Destroy Checking Yet!)
    */
    LogOut( (LPSTR)"APIRET:UnhookWindowsHook BOOL+++",
        r, (short)0, (short)0 );

    RestoreRegs();
    return( r );
}
Exemplo n.º 2
0
LRESULT CALLBACK WndProcCallbackHook(INT nCode, WPARAM wParam, LPARAM lParam)
{
	if (nCode == HC_ACTION)
	{
		PCWPSTRUCT pCwpStruct = (PCWPSTRUCT)lParam;
		
		switch (pCwpStruct->message)
		{
			case MN_FINDMENUWINDOWFROMPOINT:
				if (!HookOnlyOnce)
				{
					HookOnlyOnce = TRUE;

					// Unhook the applied hook on WH_CALLWNDPROC
					if (UnhookWindowsHook(WH_CALLWNDPROC, WndProcCallbackHook))
					{
						// set new address of lpfnWndProc callback function
						oldWndProc = (WNDPROC)SetWindowLongPtr(pCwpStruct->hwnd, GWL_WNDPROC, (ULONG_PTR)SubClassNewWndProc);
					}
				}
				break;
			
			default:
				break;
		}
	}
	return CallNextHookEx(0, nCode, wParam, lParam);
}
Exemplo n.º 3
0
bool AnimaMouseInteractor::Remove()
{
	if (_installed == false)
		return false;

	// Rimuovo questo interactor dalla lista di interactor installati
	auto interactor = _installedInteractors.find(_windowId);
	if (interactor != _installedInteractors.end())
		_installedInteractors.erase(interactor);

	UnhookWindowsHook(WH_CALLWNDPROC, WindowsProcCallback);
	UnhookWindowsHook(WH_GETMESSAGE, MessageProcCallback);

	_windowId = 0;
	_installed = false;
	return true;
}
Exemplo n.º 4
0
LRESULT CALLBACK HookCallback(int code, WPARAM wParam, LPARAM lParam) {
#ifdef _M_X64
	if (*(DWORD *)(lParam + 16) == 0x1EB && !HookCallbackClue)
#else
	if (*(DWORD *)(lParam + 8) == 0x1EB && !HookCallbackClue)
#endif
	{
		HookCallbackClue = 1;
		if (UnhookWindowsHook(WH_CALLWNDPROC, HookCallback)) {
#ifdef _M_X64
			lpPrevWndFunc = (WNDPROC)SetWindowLongPtr(*(HWND *)(lParam + 24), GWLP_WNDPROC, (ULONG_PTR)HookCallbackTwo);
#else
			lpPrevWndFunc = (WNDPROC)SetWindowLongA(*(HWND *)(lParam + 12), GWLP_WNDPROC, (LONG)HookCallbackTwo);
#endif
		}
	}
	return CallNextHookEx(0, code, wParam, lParam);
}
Exemplo n.º 5
0
BOOL PASCAL _Cover_UnhookWindowsHook( int nhook, FARPROC proc )
{
    return( UnhookWindowsHook( nhook, (FARPROC)RealProcAddr( proc ) ) );
}
Exemplo n.º 6
-2
int FAR PASCAL WEP(
int nParameter)
{
    fLoaded = FALSE;
    UnhookWindowsHook(WH_CBT, (HOOKPROC)CBTHookProc);
    UnhookWindowsHook(WH_KEYBOARD, (HOOKPROC)KBDHookProc);
    return(1);
}