如何将本机窗口处理程序(HWND)嵌入到C#WPF应用程序中

时间:2018-02-09 21:09:37

标签: c# c++ wpf winapi pjsip

我正致力于使用pjsip进行视频通话的应用程序。

我有:

  1. 核心库:一个静态库,在C ++中使用pjsua2。
  2. 用于C ++ / CLI网桥的动态库,它包装了来自1的所有公共接口。
  3. 一个WPF应用,链接2。
  4. WPF应用可以打开捕获设备。 Pjsip为视频预览创建一个sdl窗口,并在C ++端将其HWND作为void *返回。

    我是"铸造"它使用std :: stringstream流操作符进入std :: string - 并将其编组到WPF端。

    我想将该窗口嵌入到我的WPF主窗口中。这可能吗?

1 个答案:

答案 0 :(得分:1)

您可以在WPF中使用Hwnd​Host类并托管本机窗口。

Hwnd​HostSystem.Windows.Interop WPF命名空间的一部分。

以下是微软的例子,但这有点乏味。

https://docs.microsoft.com/en-us/dotnet/framework/wpf/advanced/walkthrough-hosting-a-win32-control-in-wpf