#include DWORD NNTPThread::threadHandler(ThreadMessage &someThreadMessage) { switch(someThreadMessage.message()) { case ThreadMessage::TM_CREATE : break; case ThreadMessage::TM_DESTROY : break; case ThreadMessage::TM_USER : if(MsgOpen==someThreadMessage.userDataOne())handleOpen((String*)someThreadMessage.userDataTwo()); break; } return FALSE; } void NNTPThread::handleOpen(String *pServerName) { ThreadMessage openMessage; String serverName(*pServerName); int currentPriority; delete pServerName; currentPriority=::GetThreadPriority(::GetCurrentThread()); ::SetThreadPriority(::GetCurrentThread(),THREAD_PRIORITY_ABOVE_NORMAL); if(callHandler(openMessage,MsgPreOpen))return; NNTPClient::open(serverName); openMessage.userDataOne(isConnected()); ::SetThreadPriority(::GetCurrentThread(),currentPriority); callHandler(openMessage,MsgOpen); callHandler(openMessage,MsgPostOpen); }