カプセル化されたタイマクラス
854 ワード
class CTimerQuene{
public:
typedef void(* FUNCTIONPOINTER)();// FUNCTIONPOINTER
HANDLE hTimeQueue;//
HANDLE hTimer;//
public:
CTimerQuene(){
hTimeQueue=NULL;
hTimer=NULL;
}
virtual ~CTimerQuene(){
KillTimerQuene();
}
void KillTimerQuene(){
//
DeleteTimerQueue(hTimeQueue);
}
BOOL CreateTimer(FUNCTIONPOINTER func,DWORD period=1){
//
hTimeQueue=CreateTimerQueue();
// , true, false
return CreateTimerQueueTimer(&hTimer,hTimeQueue,(WAITORTIMERCALLBACK)TimeRoutine,func,1,period,0);
}
static void CALLBACK TimeRoutine(PVOID lpParam,BOOLEAN TimeOrWaitFired){
//
FUNCTIONPOINTER func=(FUNCTIONPOINTER)(lpParam);
func();
}
};
クラスにカプセル化すると少し違いますが、コールバック関数はstaticタイプに設定する必要があります.そうしないと、エラーが発生します.