Updated on 2024-09-13 GMT+08:00

Starting Projection

StartProjection

API Description

This API is used to start projection.

Precautions

  1. Call this API after login.
  2. This API is an asynchronous API. The return value only indicates whether the API is successfully called. The actual service processing result is returned in the corresponding callback function.

Method Definition

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

Callback Function

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

Parameter Description

Parameter

Mandatory

Type

Description

startProjectionParam

Yes

HwmStartProjectionParam

Parameters for starting projection.

Table 1 HwmStartProjectionParam description

Parameter

Mandatory

Type

Description

pairCode

Yes

char[]

Pairing code.

randomNumber

No

char[]

Random number, which needs to be carried for cross-enterprise projection. To obtain the value, call this API with pairCode carried. The call fails and error code 222020012 is returned. Then obtain the randomNumber value in startProjectionResult and use the value to call this API again for secondary projection.

verifyCode

No

char[]

Verification code, which needs to be carried for cross-enterprise projection. To obtain the value, call this API with pairCode carried. The call fails and error code 222020012 is returned. Then obtain the verification code in the returned result and use the code to call this API again for secondary projection.

Return Values

Table 2 Return values

Type

Description

HwmErrCode

If 0 is returned, the operation is successful. If other values are returned, the operation fails. For details about values returned upon failures, see Common Error Codes.

HwmStartProjectionResult

Projection result.

Table 3 HwmStartProjectionResult description

Parameter

Type

Description

randomNumber

char[]

Random number. It is returned in the cross-enterprise projection scenario and used for secondary projection.

Sample Code

 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
/**
* Start projection.
*/
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;
}