返回列表 发帖

如何使用AnyChat GameVideo SDK中的OnTextMessageEx事件

AnyChat GameVideo SDK提供了语音、视频、文字等多种即时通讯方式,其中文字消息采用了ActiveX事件(Event)的方式来通知上层应用,其中有三个(接口)事件可以用来传递文字消息:
1、OnTextMessage    收到文本消息事件
2、OnTextMessageEx 收到文本消息事件(改进型、扩展接口)
3、OnTransBuffer (收到缓冲区事件,透明通道)

    需要说明的是,OnTextMessageEx 是在OnTextMessage基础上改进过的,所以建议大家使用OnTextMessageEx事件

在上层应用中该如何使用这三个接口,下面以“OnTextMessageEx ”为例说明:
1、在.h文件里面加入如下声明代码:
  1. afx_msg void OnTextMessageEx(long srcuserid, long taruserid, long bSecret, LONG* lpMsgBuf, long bufLen);
  2. afx_msg void OnTransBuffer(long userid, LONG* lpbuf, long nlen);
  3. DECLARE_EVENTSINK_MAP()
复制代码


2、在.cpp文件中加入事件映射代码,将CMainDlg改为你的类名
  1. BEGIN_EVENTSINK_MAP(CMainDlg, CDialog)
  2. //{{AFX_EVENTSINK_MAP(CMainDlg)
  3. ON_EVENT(CMainDlg, ACMEETINGCTRLID, 4 /* OnTextMessageEx */, OnTextMessageEx, VTS_I4 VTS_I4 VTS_I4 VTS_PI4 VTS_I4)
  4. ON_EVENT(CMainDlg, ACMEETINGCTRLID, 5 /* OnTransBuffer */, OnTransBuffer, VTS_I4 VTS_PI4 VTS_I4)
  5. //}}AFX_EVENTSINK_MAP
  6. END_EVENTSINK_MAP()
复制代码
3、在.cpp文件中加入如下实现代码,将CMainDlg改为你的类名
  1. // 收到文本消息
  2. void CMainDlg::OnTextMessageEx(long srcuserid, long taruserid, long bSecret, long* lpMsgBuf, long bufLen)
  3. {
  4. if(m_pTextMessageDlg)
  5. m_pTextMessageDlg->OnReceiveTextMessage(srcuserid,taruserid,bSecret,(LPCTSTR)lpMsgBuf,bufLen);
  6. }

  7. /**
  8. * 收到透明通道数据
  9. * @param userid 源用户ID,数据发送者
  10. * @param lpbuf 数据缓冲区
  11. * @param nlen 缓冲区大小
  12. */
  13. void CMainDlg::OnTransBuffer(long userid, LONG* lpbuf, long nlen)
  14. {

  15. }
复制代码

返回列表