更新时间:2024-09-13 GMT+08:00

发起投屏

StartProjection

接口描述

该接口用于发起投屏。

注意事项

  1. 该接口在已登录状态下才能调用。
  2. 该接口为异步接口,返回值只代表接口是否调用成功,实际业务处理结果在对应的回调函数中返回。

方法定义

1
HWM_SDK_AGENT_API hwmsdk::HwmErrCode StartProjection(const HwmStartProjectionParam *startProjectionParam);

回调函数

1
virtual void OnStartProjectionResult(hwmsdk::HwmErrCode ret, const char* reason, const HwmStartProjectionResult *startProjectionResult) {};

参数描述

参数

是否必须

类型

描述

startProjectionParam

HwmStartProjectionParam

发起投屏参数。

表1 结构体HwmStartProjectionParam参数说明

参数

是否必须

类型

描述

pairCode

char[]

配对码。

randomNumber

char[]

随机数,跨企业投屏场景需要携带。跨企业投屏时,只输入pairCode,投屏失败,回调结果返回错误码222020012,startProjectionResult中上报randomNumber,填充此字段,二次投屏

verifyCode

char[]

验证码,跨企业投屏场景需要携带。跨企业投屏时,只输入pairCode,投屏失败,回调结果返回错误码222020012,查看被投屏端的验证码,填充此字段,二次投屏

返回值

表2 返回值

类型

描述

HwmErrCode

成功返回0,其他值表示失败。失败返回值见错误码参考

HwmStartProjectionResult

发起投屏结果。

表3 结构体HwmStartProjectionResult参数说明

参数

类型

描述

randomNumber

char[]

随机数。跨企业投屏场景下返回,用于二次投屏

示例代码

 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
/**
* 发起投屏
*/
int demoStartProjectionDlg::clickStartProjection()
{
    m_pairCodeEdit.GetWindowText(m_pairCode);
    m_randomNumberEdit.GetWindowText(m_randomNumber);
    m_verifyCodeEdit.GetWindowText(m_verifyCode);

    std::string pairCode = CTools::UNICODE2UTF(m_pairCode.GetString());
    std::string randomNumber = CTools::UNICODE2UTF(m_randomNumber.GetString());
    std::string verifyCode = CTools::UNICODE2UTF(m_verifyCode.GetString());

    hwmsdkagent::HwmStartProjectionParam data{};
    strncpy_s(data.pairCode, pairCode.c_str(), sizeof(data.pairCode));
    strncpy_s(data.randomNumber, randomNumber.c_str(), sizeof(data.randomNumber));
    strncpy_s(data.verifyCode, verifyCode.c_str(), sizeof(data.verifyCode));
    hwmsdk::HwmErrCode ret = hwmsdkagent::StartProjection(&data);
    if (ret != hwmsdk::HWM_COMMON_SUCCESS)
    {
        CTools::OutputRetStr("Start projection error");
        return;
    }
    return ret;
}