【发布时间】:2013-06-24 19:16:48
【问题描述】:
比如我刚刚调用了GetMessage(或者我在CallWndMsg钩子回调中),得到了lParam和wParam。
可以使用 SendMessage 或 PostMessage 将此消息重新发送到使用刚刚收到的 lParam 和 wPAram 的其他进程的窗口,而无需深度处理。我的意思是如果这些参数(通常包含用于复合结构的指针)在重新发送期间仍然有效,或者我可能会遇到内存违规问题(或类似问题)? 如果可以的话,系统如何决定何时可以释放和删除lPAram和wPAram?
PS 似乎我不能为 WM_COPYDATA 这样做,因为 msdn 指出所有传递的数据只有在消息处理程序工作时才有效/但是对于其他消息来说呢。
【问题讨论】:
-
如果你使用
SendMessage,它应该阻塞它被调用的地方,所以lParam和wParam变量应该保持有效。 -
感谢您的回复。如果我使用 PostMessage 或 PostThreadMessage 会发生什么?