20 CMsg(UINT u, DWORD dw, __inout_opt LPVOID lp, __in_opt
CAMEvent *pEvnt)
34 static DWORD WINAPI DefaultThreadProc(__inout LPVOID lpParam);
54 m_ThreadQueue(
NAME(
"MsgThread list"), 5)
61 void virtual GetThreadMsg(__out
CMsg *msg);
70 if (m_hThread !=
NULL) {
71 WaitForSingleObject(m_hThread, INFINITE);
72 return GetExitCodeThread(m_hThread, lpdwExitCode);
78 return ::ResumeThread(m_hThread);
82 return ::SuspendThread(m_hThread);
86 return ::GetThreadPriority(m_hThread);
90 return ::SetThreadPriority(m_hThread, nPriority);
103 __in_opt LPVOID lpMsgParam, __in_opt
CAMEvent *pEvent =
NULL) {
105 CMsg* pMsg =
new CMsg(uMsg, dwMsgFlags, lpMsgParam, pEvent);
107 if (m_lWaiting != 0) {
108 ReleaseSemaphore(m_hSem, m_lWaiting, 0);
117 virtual LRESULT ThreadMessageProc(
118 UINT uMsg, DWORD dwFlags, __inout_opt LPVOID lpParam, __in_opt
CAMEvent *pEvent) = 0;