我正在编写一个包含一些媒体基础功能的库。我希望能够通过回调通知图书馆用户何时将网络摄像头连接到系统/从系统断开连接。MSDN 描述了如何知道相机何时断开连接,但它使用消息循环让您知道这一点。我不太了解 Windows 消息循环,但是我在这篇 MSDN 文章中读到的内容告诉我,我必须有一个窗口才能有一个消息循环,这对于库来说是不可接受的。
所以,我有几个问题:
我可以在新线程中创建消息循环并接收第一个链接描述的那些通知消息吗?(我希望它在一个新线程中,这样它就不会阻塞库用户的线程,然后库用户调用
setCameraChangeCallback(...)
,这会在其中启动消息循环。)如果是这样,我应该使用哪些函数来创建消息循环?我可以在不创建任何窗口的情况下做到这一点吗?
setCameraChangeCallback(...)
这是一个图书馆,所以如果图书馆用户打电话突然出现一个窗口,那就很奇怪了。同样,非常欢迎解释如何做到这一点(函数名称、要使用的特定参数等)。我的库可以在 Windows 应用程序中正常使用吗?这意味着将使用我的库的 Windows 应用程序可能已经创建了一个窗口并且它自己的消息循环正在运行。我在单独线程中运行的消息循环会干扰库用户的消息循环吗?如果是这样,如何避免这种情况?
有什么能阻止我创建两个或多个带有消息循环的线程,每个线程都注册以获得相机更改事件的通知?