我正在使用 Skype 进行应用程序到应用程序的通信。我的要求是当一个 Skype 用户发出呼叫/视频呼叫时,我想使用应用程序流将消息从插入 Skype 的一个应用程序发送到插入 Skype 的其他应用程序。
在单独的示例应用程序中,我可以使用应用程序流从一个应用程序向其他应用程序发送和接收消息,但我想在用户拨打电话时激活应用程序流。
Skype4COM 为 ICallChannelManager 公开这三个事件
- ICallChannelManagerEvents::Channels
- ICallChannelManagerEvents::Created
- ICallChannelManagerEvents::消息
我已经注册了这三个事件
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 事件。
我不确定,当其他两个事件 ICallChannelManagerEvents::Channels 和 ICallChannelManagerEvents::Message 被触发时。请帮我解决这个问题。