【发布时间】:2009-05-03 19:23:23
【问题描述】:
在将此 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 不响应也不服从。我在这里遗漏了什么明显的东西吗?
【问题讨论】:
-
您可以使用 IsWindow 检查句柄是否为有效窗口msdn.microsoft.com/en-us/library/ms633528(VS.85).aspx。 AFAIK 按预期工作,对不起,但没有一些代码,我无法判断出什么问题。
-
谢谢。这似乎是此处报告的 Skype 错误 developer.skype.com/jira/browse/SPA-649 在下一版本中修复。