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

设置屏幕共享中需透明的窗口

SetTransparentWnd

接口描述

该接口用于设置屏幕共享中需透明的窗口。

注意事项

  1. 设置窗口句柄个数不超过4个
  2. 该接口为异步接口,返回值只代表接口是否调用成功,实际业务处理结果在对应的回调函数中返回。

方法定义

1
HWM_SDK_AGENT_API hwmsdk::HwmErrCode SetTransparentWnd(HWND handle[], unsigned int count);

回调函数

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

参数描述

表1 参数说明

参数

类型

描述

handle

HWND[]

窗口句柄。

count

unsigned int

窗口句柄个数。

表2 返回值

类型

描述

HwmErrCode

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

示例代码
 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
/**
* 获取设置屏幕共享中需透明的窗口
*/
void demoSetTransparentWndDlg::OnBnClickedOk()
{
    CString tempCString;
    m_wndsEdit.GetWindowText(tempCString);
    std::string tempString = CTools::UNICODE2UTF(tempCString.GetString());
    vector<std::string> list = CTools::split(tempString, ';');
    std::string temp;
    int count = list.size();

    int realCount = 0;
    if (count > 0)
    {
        //申请结构体内存
        HWND* handles;
        handles = (HWND*)malloc(sizeof(HWND) * count);
        if (handles == NULL)
        {
            return -1;
        }
        memset(handles, 0, sizeof(HWND)*count);

        HWND* handlesTemp = handles;
        for (int i = 0; i < count; i++)
        {
            temp = list[i];
            *handlesTemp = CTools::str2hwnd(temp);
            handlesTemp++;
            realCount++;
        }
        int ret = hwmsdkagent::SetTransparentWnd(handles, realCount);

        //释放内存空间
        free(handles);
        handles = NULL;
        if (hwmsdk::HWM_COMMON_SUCCESS != ret)
        {
            AfxMessageBox(_T("get error message error"));
            return;
        }
    }
}