适用于Windows控制台应用程序的Sensor API的SetEventSink()

时间:2018-12-12 16:30:09

标签: c++ winapi callback com windows-10

我目前正在使用异步回调通过Window的Sensor API获取运动数据。现在,我想通过Windows 10控制台应用程序(不是Windows应用程序)测试功能。为简化起见,我目前遇到的问题与How to cause my C++ program to wait for sensor events for ever and not terminate完全相同,其中

while(true) { hr = sensor->SetEventSink(pMyEvents); }触发事件,我得到了一致的数据,但正确的用法应该只是

hr = sensor->SetEventSink(pMyEvents);,它将异步触发事件。

我还使用CoInitializeEx(NULL, COINIT_MULTITHREADED);在COM中允许多线程。

在上述SO链接的注释中,两个用户提到“您正在忘记Windows消息事件循环。”我不想为该程序提供图形界面,更重要的是,我不明白为什么“没有消息循环COM不能工作”。这似乎仅适用于Windows应用程序项目。有人可以详细说明一下,以及如何正确使用SetEventSink(ISensorEvent)来继续接收常规控制台应用程序的数据吗?

我已经确认其他代码(例如,用于初始化/解码数据的代码)通过使用同步方法-GetData()

0 个答案:

没有答案