Last Updated 2005/01/28
Visual C++ MFC スレッド
スレッドでOLE使用
2005/01/28

ユーザーインターフェイススレッドを作成して,そのスレッドで OLE(ActiveX) を使用する.
VC++4.2 までは スレッドの InitInstance() にて
AfxOleInit();
としなければならない.

ところが,VC++5.0 や VC++6.0 ではスレッドが終了しなくなってしまう.
AfxEndThread() のサンク呼び出しにて止まっているからである.
AfxOleInit() を外すと正常に終了するようになるが,そうすると OLE が使用できなくなる.

回避方法は,AfxOleInit() の変わりに CoInitialize() を使用する.
(終了時には CoUninitialize() を使用)


参照
前後のTips
スレッドでOLE使用

DSS ProgrammingTipsCGI Ver1.02