私はSkypeを使用したアプリ間の通信に取り組んでいます。私の要件は、1人のSkypeユーザーが通話/ビデオ通話を発信するときに、アプリケーションストリームを使用して、Skypeに接続された1つのアプリからSkypeに接続された他のアプリにメッセージを送信したかったことです。
別のサンプルアプリでは、あるアプリから別のアプリにアプリケーションストリームを使用してメッセージを送受信できますが、ユーザーが電話をかけたときにアプリケーションストリームをアクティブ化したいと思いました。
Skype4COMは、これら3つのイベントをICallChannelManagerに公開します
- ICallChannelManagerEvents :: Channels
- ICallChannelManagerEvents :: Created
- ICallChannelManagerEvents :: Message
これら3つのイベントを登録しました
hr = m_pCallChannelMgr.CreateInstance(__uuidof(CallChannelManager));
hr = SinkSkypeCallChannelMgrEvents::DispEventAdvise(m_pCallChannelMgr);
hr = m_pCallChannelMgr->CreateApplication(L"");
VARIANT_BOOL flag = m_pCallChannelMgr->GetCreated();
while(true )
{
if ( VARIANT_TRUE == flag) break;
flag = m_pCallChannelMgr->GetCreated();
Sleep(1000);
}
hr = m_pCallChannelMgr->Connect(m_Skypeptr);
m_pCallChannelMgr-> CreateApplication();の場合 ICallChannelManagerEvents::Createdイベントを発生させると呼ばれます。
2つのイベントICallChannelManagerEvents::ChannelsとICallChannelManagerEvents::Messageが発生したときのその他の場合についてはよくわかりません。Plzはこれについて私を助けてくれます。