【发布时间】:2012-12-02 01:49:18
【问题描述】:
我需要一个 Windows 7 中的计时器,它在时间间隔过后调用一个函数并且不会阻止它所面临的威胁。也就是说,我不能使用delay()。
我一直在尝试使用IMFTimer 使用以下代码生成回调:
IMFTimer *playbackEndTimer;
HRESULT hr = CoCreateInstance(__uuidof(IMFTimer), NULL, CLSCTX_ALL, IID_PPV_ARGS(&playbackEndTimer));
CoCreateInstance 返回“类未注册”。看起来我还需要使用 IMFAsyncCallback 作为回调,但我无法从文档中弄清楚如何做到这一点。
有没有更好的方法?有人可以指出一些工作源代码吗?
【问题讨论】:
-
您可能想看看
SetTimer()。如果您已经有一个带有消息循环的窗口,那么集成到您现有的代码中并不难。 -
谢谢,肖恩。我已经发现了。它在 DLL 中工作,而不是在窗口中,但这只是意味着我需要一个函数指针。
-
嗯,
IMFTimer是一个接口,而不是一个 coclass。 -
有什么区别?如何设置界面?
标签: c++ windows visual-c++ windows-7 timer