C++ Windows7中的计时器

C++ Windows7中的计时器,c++,windows,visual-c++,windows-7,timer,C++,Windows,Visual C++,Windows 7,Timer,我需要一个在Windows7中的计时器,它在时间间隔过去时调用一个函数,并且不会阻止它打开的威胁。换句话说,我不能使用delay() 我一直在尝试使用IMFTimer生成包含以下代码的回调: IMFTimer *playbackEndTimer; HRESULT hr = CoCreateInstance(__uuidof(IMFTimer), NULL, CLSCTX_ALL, IID_PPV_ARGS(&playbackEndTimer)); CoCreateInstance返回

我需要一个在Windows7中的计时器,它在时间间隔过去时调用一个函数,并且不会阻止它打开的威胁。换句话说,我不能使用
delay()

我一直在尝试使用
IMFTimer
生成包含以下代码的回调:

IMFTimer *playbackEndTimer;

HRESULT hr = CoCreateInstance(__uuidof(IMFTimer), NULL, CLSCTX_ALL, IID_PPV_ARGS(&playbackEndTimer));
CoCreateInstance
返回“未注册的类”。看起来我还需要使用
IMFAsyncCallback
作为回调,但我还无法从文档中找到如何实现这一点


有更好的办法吗?有人能给我指出一些有用的源代码吗?

好的,这是一个有点愚蠢的问题。我应该使用旧的SetTimer(),而不尝试使用IMFTimer::SetTimer()。问题已解决。

您可能需要查看。如果您已经有一个带有消息循环的窗口,那么将其集成到现有代码中并不困难。谢谢,Sean。我已经找到了。它在DLL中工作,不是在窗口中,但这意味着我需要一个函数指针。嗯,
IMFTimer
是一个接口,而不是一个类。有什么区别?如何设置接口?