更新时间:2024-07-30 GMT+08:00

场景9:添加与会人

描述

在会议中,可以调用添加与会人的接口把与会人加入到会议中。

业务流程

使用SDK添加与会人时,先调用AddAttendee接口,然后处理回调函数OnAddAttendeeResult。

  1. 接口调用

    1. 组装数据结构HwmConfAttendee。
    2. 调用AddAttendee开始创建,第1步中的数据作为参数。

  2. 处理回调函数

    处理回调函数OnAddAttendeeResult。

示例代码

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
/**
* 添加与会人
*/
int demoAddAttendeeDlg::clickAddAttendee()
{
    int ret;
    CString tempCString;
    
    //获取与会人信息,实际使用是根据实际情况获取
    m_numbersEdit.GetWindowText(tempCString);
    string tempString = CTools::UNICODE2UTF(tempCString);
    vector<string> list = CTools::split(tempString, ';');
    vector<string> temp;
    int count = list.size();
 
    int realCount = 0;
    if (count > 0)
    {
        //申请结构体内存
        hwmsdkagent::HwmConfAttendee* participants;
        participants = (hwmsdkagent::HwmConfAttendee*)malloc(sizeof(hwmsdkagent::HwmConfAttendee) * count);
        if (participants == NULL)
        {
            return -1;
        }
        memset(participants, 0, sizeof(hwmsdkagent::HwmConfAttendee)*count);
 
        hwmsdkagent::HwmConfAttendee* participantsTemp = participants;
        for (int i = 0; i < count; i++)
        {
            temp = CTools::split(list[i], '-');
            if (temp.size() == 2)
            {
                //name赋值
                strncpy_s(participantsTemp->name, (char *)temp[0].c_str(), HWM_MAX_DISPLAY_NAME_LEN);
                //number赋值
                strncpy_s(participantsTemp->number, (char *)temp[1].c_str(), HWM_MAX_NUMBER_LEN);
                //指针个数加1
                realCount++;
                participantsTemp++;
            }
        }
 
        ret = hwmsdkagent::AddAttendee(participants, realCount);
        
        //释放内存空间
        free(participants);
        participants = NULL;
    }
    
    return ret;
}

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
/**
* 添加与会者接口回调
*/
void demoCallbackProc::OnAddAttendeeResult(hwmsdk::HwmErrCode ret, const char* msg)
{
    CString codeStr;
    codeStr.Format(_T("%d"), ret);
    string msgStr = CTools::UTF82MultiByte(msg);
    CString tips = _T("OnAddAttendeeResult code:") + codeStr + _T(", msg:") + CString(msgStr.c_str());
    AfxMessageBox(tips);
}