这段代码大概什么意思?

    for( ;; ){
        DWORD   dwStatus = WaitForSingleObject( clThread.m_pclThread->m_hThread, dwTimeOut );//等待单个对象

        if( dwStatus == WAIT_OBJECT_0 ){
            break;
        }
        else if( dwStatus == WAIT_TIMEOUT ){
            DWORD   dwTick = ::GetTickCount();//计次?
            MSG     stMsg;
            while( ::PeekMessage( &stMsg, NULL, 0, 0, PM_REMOVE ) ){//消息从队列里除掉
                ::TranslateMessage( &stMsg );
                ::DispatchMessage( &stMsg );
                if( dwTimeOut <= (::GetTickCount() - dwTick) )      break;//如果所用时间小于等待时间,返回
            }
        }

上面的注释是我瞎写的,大概翻一下就行,我理解是不是防止窗口死机做的循环?

::GetTickCount(); 用处是高精度计时
WaitForSingleObject 是用来做现成同步

while( ::PeekMessage( &stMsg, NULL, 0, 0, PM_REMOVE ) )
{
...
}

这个是消息循环。你的代码中应该有个wndproc的方法处理消息。