库代码中的Windows消息

库代码中的Windows消息,windows,winapi,message-queue,Windows,Winapi,Message Queue,我正在将一个库移植到Windows。在函数中,我需要在WM_DEVICECHANGE消息到达时进行阻止 有哪些选项可用于执行此操作?由于我的代码驻留在库中,我几乎没有关于当前设置的信息,因此如果它是控制台应用程序、常规GUI应用程序、我的代码是否在派生线程中运行等等。因此,等待特定消息到达的最佳方式是什么?该消息可能是使用BroadcastSystemMessage发送的。您可以创建一个隐藏的顶级窗口,其窗口进程可能会收到此消息。我不确定;但这是我首先要尝试的。阻止和接收Windows消息是互不

我正在将一个库移植到Windows。在函数中,我需要在WM_DEVICECHANGE消息到达时进行阻止


有哪些选项可用于执行此操作?由于我的代码驻留在库中,我几乎没有关于当前设置的信息,因此如果它是控制台应用程序、常规GUI应用程序、我的代码是否在派生线程中运行等等。因此,等待特定消息到达的最佳方式是什么?

该消息可能是使用BroadcastSystemMessage发送的。您可以创建一个隐藏的顶级窗口,其窗口进程可能会收到此消息。我不确定;但这是我首先要尝试的。

阻止和接收Windows消息是互不兼容的。您可以通过泵送消息循环来获取消息。因为你不能依赖这个应用程序,所以你需要自己去做

您需要创建一个线程。在该线程中创建一个隐藏窗口,然后运行标准消息循环。该窗口的窗口过程可以看到WM_DEVICECHANGE消息。它可以做任何它需要做的事情,不受在单独线程中运行的限制。就像设置一个事件来表示函数应该停止阻塞一样