Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

54 lines
1.7 KiB

/*==========================================================================
*
* Copyright (C) 2002 Microsoft Corporation. All Rights Reserved.
*
* File: dvtimer.h
* Content: Defintion of DvTimer class.
* This class is a replacement for the original Timer class (by rodtoll) which used multimedia timers
* This replaces the multimedia timers with the dplay8 threadpool timers, whilst maintaining
* a similar interface to the original Timer class
*
* History:
* Date By Reason
* ==== == ======
* 05-06-02 simonpow Created
*
***************************************************************************/
#ifndef __DVTIMER_H__
#define __DVTIMER_H__
//number of msec we sleep whilst spinning in our cancel timer loop
static const DWORD DvTimer_SleepPeriodInCancelSpin=5;
//prototype for the callback user of timer can specify
typedef void (*DvTimerCallback)(void * pvUserData);
class DvTimer
{
public:
//default c'tor. Establishes timer in uncreated state
DvTimer(void);
//default d'tor. If timer has been created this will cancel it and not return until it has
~DvTimer(void);
//create timer to fire every 'dwPeriod' msec, calling 'pfnCallback' with 'pvUserData'
//when it does. Returns TRUE for sucess
BOOL Create (DWORD dwPeriod, void * pvUserData, DvTimerCallback pfnCallback);
protected:
static void WINAPI ThreadpoolTimerCallbackStatic(void * const pvContext,
void * const pvTimerData, const UINT uiTimerUnique);
DvTimerCallback m_pfnUserCallback;
void * m_pvUserData;
DWORD m_dwPeriod;
void * m_pvTimerData;
volatile UINT m_uiTimerUnique;
IDirectPlay8ThreadPoolWork * m_pThreadPool;
};
#endif // #ifndef __DVTIMER_H__