Skype Raw API (НЕ COM API) проблема с отправкой сообщения - PullRequest
2 голосов
/ 03 мая 2009

При преобразовании этого примера CONSOLE в полную реализацию диалогового окна я столкнулся с очень «простой проблемой». 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 Edition. Инструкции http://forum.skype.com/index.php?showtopic=54549

Предыдущий вызов с использованием HWND_BROADCAST работает, и Skype отвечает, как и ожидалось, поэтому я знаю, что Skype установлен и работает правильно.

Дескриптор, который я использую, является значением wParam из ответного сообщения Skype, как в коде. Это не ноль, но я не уверен, есть ли способ проверить это кроме SendMessage.

Скомпилированное приложение из этого примера кода C ++ (см. Zip-загрузку) действительно работает, поэтому я в замешательстве. Я кодирую сообщение с помощью UTF8 и создаю экземпляр COPYDATASTRUCT в своем приложении, заполняю его, затем вызываю SendMessage () с указателем COPYDATASTRUCT в lparam. Скайп не отвечает и не подчиняется. Я что-то упускаю здесь очевидное?

Ответы [ 2 ]

2 голосов
/ 13 марта 2011

Пожалуйста, смотрите это: http://forum.skype.com/index.php?showtopic=790491

1 голос
/ 05 августа 2009

Это известная ошибка, решение состоит в том, что вы всегда должны возвращать 1 из своей процедуры Windows, когда получаете WM_COPYDATA.

...