WINCORE.CPPに「C++オブジェクトを他のスレッドに渡すのは危険だ」とあるので、
ワーカースレッド作るときに CHogeWnd (:CWnd)の thisポインタを渡す代わりに、
this->m_hWnd を渡してやって、ワーカースレッド側で
 CHogeWnd* m_pHogeWnd = (CHogeWnd*)CWnd::FromHandle(hWnd)
とやって CHogeWndオブジェクトへのポインタを取得します。

ワーカスレッド内では「ずーっと」このポインタで CHogeWndのメンバを呼び出し
たりしています。これってもしかして危険? NG大将?

というのも、CHogeWndのメンバ変数に m_pHogeWnd->m_xxx とアクセスすると、
おかしな値になっているんです。テンポラリオブジェクトとか、パーマネント
オブジェクトとかその辺の絡みですか?