我一直在努力避免将任何窗口句柄存储为全局句柄。到目前为止,我一直很好。
我现在正在使用键盘 Hook 程序,并且我正在尝试找到(如果有的话)将我的主窗口句柄传递给它。
如果真的不能用简单的方式完成,我可以让主窗口句柄全局化。
LRESULT CALLBACK KeyboardProc(int code, WPARAM wParam, LPARAM lParam);
有没有一种方法可以在其中一个参数中包含句柄?
谢谢。
最佳答案
看来您正在寻找一种将状态对象传递给 KeyboardProc
的方法。您可以按照说明进行操作 here , 使用 thunk 对象。这样,KeyboardProc
可以是您的 C++ 类的非静态成员方法,没有全局变量。这有点hack,但是非常方便。 ATL 库(atlstdthunk.h 中的CStdCallThunk
)使用了类似的技术。因为certain issues with DEP (数据执行保护),你最好使用 thunk 的 ATL 实现。
关于c++ - Win32 C++ 可以通过过程发送额外信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18324296/