如何将参数传递给 SetWindowsHookEx 的回调?(如果可能的话)

tal*_*she 8 hook winapi c++-cli setwindowshookex

我使用 SetWindowsHookEx 和 WH_CALLWNDPROC 来捕获所有 WndProc 消息 - 它工作正常。我想知道是否有一种方法可以将参数存储在回调函数可以读取和使用的地方。

我假设因为回调函数位于“其他”进程内部,所以与调用 SetWindowsHookEx 的进程没有连接,因此仅将值存储在静态变量中不会有任何好处。

例如:

void Hook(DWORD dwThread, int randomNumber)
{
    MagicallyStore(randomNumber);
    SetWindowsHookEx(WH_CALLWNDPROC, hookProc, GetModuleHandle(L"WNDProcHooks"), dwThread);
    ...
    ...
}

LRESULT CALLBACK hookProc(int nCode, WPARAM wParam, LPARAM lParam)
{
    int randomNumber = MagicallyRestore();

    DoSomthing(randomNumber);

    return CallNextHookEx(0, nCode, wParam, lParam);
}
Run Code Online (Sandbox Code Playgroud)

我已经考虑过让“MagicallyStore”函数将参数写入文件并在“MagicallyRestore”函数中读取一次 - 但必须有更好的方法..

提前致谢 :)