what is the difference between (i) and (ii):
(i)
void DoEvents()
{
MSG msg;
while(::PeekMessage(&msg, NULL, NULL, NULL, PM_NOREMOVE))
{
if (!AfxGetApp()->PumpMessage())
return;
}
}
(ii)
void DoEvents()
{
MSG msg;
while (::GetMessage(&msg, NULL, NULL, NULL))
{
if (!PreTranslateMessage(&msg))
{
::TranslateMessage(&msg);
::DispatchMessage(&msg);
}
}
}