在将此 CONSOLE 示例转换为完整的 Windows 对话框实现时,我遇到了一个非常“简单的问题”。SendMessage()(第 283 行)返回零,GetLastError 显示 0x578 - 无效的窗口句柄。
http://read.pudn.com/downloads51/sourcecode/windows/multimedia/175678/msgapitest.cpp__.htm ( https://developer.skype.com/Download/Sample...example_win.zip )
C++ 2005 Studio 速成版说明 http://forum.skype.com/index.php?showtopic=54549
之前使用 HWND_BROADCAST 的调用正常工作,Skype 回复正常,所以我知道 Skype 已安装并正常工作。
我使用的句柄是来自 Skype 回复消息的 wParam 值,如代码中所示。这不是零,但我不确定除了使用 SendMessage 之外是否还有其他方法可以测试它。
从这个 C++ 代码示例(参见 zip 下载)编译的应用程序确实可以工作,所以我很难过。我确实使用 UTF8 对消息进行编码,并在我的应用程序中创建了一个 COPYDATASTRUCT 实例,填充它然后使用 lparam 中的 COPYDATASTRUCT 指针调用 SendMessage()。Skype 不响应也不服从。我在这里遗漏了一些明显的东西吗?