
# 开启共享
#### StartShare
**接口描述**
该接口用于开启会议共享。SDK的UI已经实现了"共享"功能，如果第三方App不需要通过程序控制开启共享，则不用调用该接口。
**注意事项**
1. 不在会议中调用该接口将返回失败。
2. 该接口为异步接口，返回值只代表接口是否调用成功，实际业务处理结果在对应的回调函数中返回。
**方法定义**
```
HWM_SDK_AGENT_API hwmsdk::HwmErrCode StartShare(HwmStartShareInfo *startShareInfo);
```
**回调函数**
```
virtual void OnStartShareResult(hwmsdk::HwmErrCode ret, const char* reason) {};
```
**参数描述**
 表1结构体HwmStartShareInfo参数说明 
| 参数                  | 是否必须 | 类型                  | 描述                                                 |
|:---|:---|:---|:---|
| shareType           | 是    | enum                | 共享类型。                                              |
| monitorShareInfo    | 否    | HwmMonitorShareInfo | 屏幕共享信息。当共享类型不是屏幕共享时，该变量不需要赋值。                      |
| appShareInfo        | 否    | HwmAppShareInfo     | 程序共享信息。当共享类型不是程序共享时，该变量不需要赋值。                      |
| operatableUiMonitor | 是    | HwmMonitorShareInfo | 共享时，工具栏所在的显示器。若monitorMode为主副屏，monitor值为0，则不指定显示器。 |
   
 表2枚举HwmShareType说明 
| 枚举值                    | 描述                             |
|:---|:---|
| HWM_SHARE_TYPE_MONITOR | 屏幕共享。                          |
| HWM_SHARE_TYPE_APP     | 程序共享。                          |
| HWM_SHARE_TYPE_ALL     | 全类型共享。和界面点击"共享"按钮效果一致，弹出共享选择框。 |
   
表3结构体HwmMonitorShareInfo参数说明 
| 参数           | 是否必须 | 类型             | 描述                          |
|:---|:---|:---|:---|
| monitor      | 是    | HwmMonitor     | 显示器类型，monitorMode为主副屏模式下生效。 |
| monitorMode  | 是    | HwmMonitorMode | 屏幕模式。                       |
| monitorIndex | 是    | unsigned int   | 屏幕索引，monitorMode为多屏模式下生效。   |
   
表4枚举HwmMonitor说明 
| 枚举值                   | 描述    |
|:---|:---|
| HWM_MONITOR_MAIN      | 主显示器。 |
| HWM_MONITOR_SECONDARY | 副显示器。 |
   
表5枚举HwmMonitorMode说明 
| 枚举值                                | 描述     |
|:---|:---|
| HWM_MONITOR_MODE_PRIMARY_SECONDARY | 主副屏模式。 |
| HWM_MONITOR_MODE_MULTI_MONITOR     | 多屏模式。  |
   
表6结构体HwmAppShareInfo参数说明 
| 参数        | 是否必须 | 类型   | 描述    |
|:---|:---|:---|:---|
| appHandle | 是    | HWND | 程序句柄。 |
   
**返回值**
表7返回值 
| 类型         | 描述                                                                                                           |
|:---|:---|
| HwmErrCode | 成功返回0，其他值表示失败。失败返回值见[错误码参考](https://support.huaweicloud.com/sdkreference-meeting/meeting_control_0022.html)。 |
   
**示例代码**
```
/**
* 开启共享
*/
int demoStartShareDlg::clickStartShare()
{
    hwmsdkagent::HwmStartShareInfo data;
    memset(&data, 0, sizeof(hwmsdkagent::HwmStartShareInfo));
    //设置共享类型
    data.shareType = hwmsdkagent::HwmShareType::HWM_SHARE_TYPE_MONITOR;
    //设置共享的显示器
    data.monitorShareInfo.monitor = hwmsdkagent::HWM_MONITOR_MAIN;
    //设置工具栏所在的显示器
    data.operatableUiMonitor = hwmsdkagent::HWM_MONITOR_MAIN;
    
    int ret = hwmsdkagent::StartShare(&data);
    return ret;
}
```
