#pragma once typedef struct SpTimer SpTimer; typedef struct SpTimerList SpTimerList; struct IReleasable; class SpEntity; SpTimer *SpTimerCreate(SpTimerList *pList, DWORD dwTimerID, DWORD dwInterval, ITimerListener *pListener); void SpTimerDestroy(SpTimer *pTimer); void SpTimerSetUserData(SpTimer *pTimer, IReleasable *pUserData); void SpTimerGetUserData(SpTimer *pTimer, CSmartPointer &pUserData); ErrorCodeEnum SpTimerStart(SpTimer *pTimer); void SpTimerStop(SpTimer *pTimer); void SpTimerSetInterval(SpTimer *pTimer, DWORD dwInterval); DWORD SpTimerGetInterval(SpTimer *pTimer); SpTimerList *SpTimerListCreate(SpEntity *pEntity); void SpTimerListDestroy(SpTimerList *); SpTimer *SpTimerListFind(SpTimerList *pList, DWORD dwTimerID); void SpTimerListAdd(SpTimerList *pList, SpTimer *pTimer); void SpTimerListRemove(SpTimerList *pList, SpTimer *pTimer); void SpTimerListLock(SpTimerList *pList); void SpTimerListUnlock(SpTimerList *pList); void SpTimerListStopAll(SpTimerList *pList);