正在发送转发窗口消息
Sending forward windows message
例如,我刚刚调用了GetMessage(或者我在CallWndMsg钩子回调中),并获得了lParam和wParam。
可以使用SendMessage或PostMessage将此消息重新发送到其他进程的窗口,使用刚刚收到的lParam和wPAram,而无需深度应对。我的意思是,如果这些参数(通常包含计算结构的指针)在重新发送期间仍然有效,或者我可能面临内存冲突问题(或类似问题)?如果我能做到,系统如何决定何时可以发布和删除lPAram和wPAram?
PS似乎我不能对WM_COPYDATA这样做,因为msdn指出,所有传递的数据只有在消息处理程序工作时才是活动的/但其他消息呢。
您不应该将指针从进程A传递到进程B,在进程B中,这样的指针(地址)可能指向释放的内存或其他结构使用的内存。WM_COPYDATA是在进程之间传递数据的一种方法,您实际上可以将每个消息打包到二进制数组中,使用WM_COPYDATA将其发送到其他进程,然后在第二个进程中对其进行解包,然后将解包后的消息发送给它自己。
在进程之间传递lParam和wPAram的唯一安全方法是当它们只包含DWORD数据时。
相关文章:
- 在createdialog创建的窗口中捕获用于编辑控件的OnMouseMove消息
- 由于无效的 ValidateRgn() 子窗口不会收到WM_PAINT消息
- MFC 中的窗口消息管理:添加基类调用是否是强制性的?
- 输出窗口中消息的可视化工作室源
- 为什么初始化 Wintab 扩展后没有收到WT_PACKETEXT窗口消息?
- 与WM_DPICHANGED消息一起发送的建议窗口大小太大
- 如何处理窗口的消息?
- 在弹出窗口中管理CEF客户端区域的窗口消息
- 在Internet Explorer_Server(IE9)中处理窗口消息
- 使用智能指针在窗口消息中将对象作为 WPARAM 传递
- 将窗口消息发送到控制台应用程序
- 是否可以捕获翻译/调度消息循环中的窗口消息/事件
- 调整窗口大小时不断发送窗口消息WM_SIZING
- 正在发送转发窗口消息
- 对于单个实例应用程序,只允许使用单个窗口消息框
- Win32:更多"object oriented"窗口消息处理系统
- 异步代理和窗口消息
- Windows (c++)上窗口消息的问题(延迟)
- WinAPI窗口消息似乎被插件窃取-如何修复
- 在 COleControl 中未处理的 LButtonUp 窗口消息