在将此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 express版指令 http://forum.skype.com/index.php?showtopic=54549
之前使用HWND_BROADCAST的呼叫正常工作,Skype按预期回复,因此我知道Skype已安装并正常运行。
我使用的句柄是Skype Reply消息中的wParam值,如代码中所示。这不是零,但我不确定是否有办法测试它而不是使用SendMessage。
来自这个C ++代码示例的编译应用程序(请参阅zip下载)确实有效,所以我很难过。我使用UTF8对消息进行编码,然后在我的应用程序中创建COPYDATASTRUCT的实例,填充它然后使用lparam中的COPYDATASTRUCT指针调用SendMessage()。 Skype没有回应,也没有服从。我错过了一些明显的东西吗?
答案 0 :(得分:2)
答案 1 :(得分:1)
这是已知错误,解决方案是每当收到WM_COPYDATA时,必须始终从Windows程序返回1.