//---------------------------------------------------------------------------
#ifndef AnimTimerH
#define AnimTimerH

//
// AnimTimer
// (c) 2001 David Blume. All rights reserved.
// dblume@pinnaclesys.com
//
// Derived from ScrPlus and AnimTimer (c) 1996-2000 Lucian Wischik.
//
// DISCLAIMER: This sourcecode is provided "as is," without warranty of any kind,
// expressed or implied.  In no event shall the author be held liable for any 
// direct, indirect, incidental, special or  consequential damages arising out
// of the use of or inability to use this software.
// 
// You may freely use this source in your own projects.  I'd appreciate it
// if you let me know if you do use it, and if you make any fixes or improvements.
//

namespace AnimTimer
{

//
// SetTimer()
//
// Once this is invoked, hWnd will start receiving WM_TIMER messages
// with ID nIDEvent at uElapse milliseconds.  Use of the TIMERPROC
// is unsupported.
//
// You can only set one timer per window. (Easily fixed with a priority queue.)
//
// Returns: Non-zero upon success.
//
UINT SetTimer(HWND hWnd, UINT nIDEvent, UINT uElapse, TIMERPROC lpNULL = NULL);

//
// KillTimer()
//
// This must be called before your window is released.
// SetTimer attached a property to the window that needs to be released first.
// This probably cannot be called from within the OnTimer() call.
//
// Returns: true upon success.
//
BOOL KillTimer(HWND hWnd, UINT uIDEvent);

};

#endif