このCONSOLEの例を完全なウィンドウダイアログの実装に変換する際、私は非常に「簡単な問題」に遭遇しました。 SendMessage()(283行目)が0を返しています。 GetLastErrorが0x578を示しています - 無効なウィンドウハンドルです。Skype未処理API(COM APIでない)send message problem
http://read.pudn.com/downloads51/sourcecode/windows/multimedia/175678/msgapitest.cpp__.htm (https://developer.skype.com/Download/Sample...example_win.zip)
C++ 2005
スタジオ版命令 http://forum.skype.com/index.php?showtopic=54549HWND_BROADCASTが動作し、期待通りにSkypeは返答使用前の呼び出しを表現するので、私はSkypeがインストールされ、正しく動作している知っています。
私が使用するハンドルは、コードのようにSkype返信メッセージのwParam値です。これはゼロではありませんが、SendMessage以外でテストする方法があるかどうかはわかりません。
このC++コードのサンプル(zip downloadを参照)からコンパイルされたアプリケーションは実際に動作するので、私は困惑しています。私はUTF8でメッセージをエンコードして、私のアプリでCOPYDATASTRUCTのインスタンスを作成し、それからSendMessage()をlparamのCOPYDATASTRUCTポインターで呼び出します。 Skypeは応答しないし、それに従わない。私はここで何かを見逃していますか?
あなたはハンドルが有効ウィンドウhttp://msdn.microsoft.com/en-us/library/ms633528(VS.85).aspxであるかどうかを確認するためにIsWindowを使用することができます。申し訳ありませんが、いくつかのコードがなくても何が間違っているのか分かりません。 – Ismael
ありがとうございます。それはSkypeのバグであると思われます。 https://developer.skype.com/jira/browse/SPA-649 次のリリースで修正されました。 –