0

で始まるシングルスレッドプログラムがあります

CoInitializeEx(NULL, COINIT_APARTMENTTHREADED)

Windows XP の COINIT_MULTITHREADED では一部の関数 (URLDownloadToFile など) が正しく動作しなかったため、COINIT_APARTMENTTHREADED を使用します。

そして今、CreateTimerQueueTimer からのコールバック関数の奇妙な動作を調査しています - COM オブジェクトが作成されませんでした。

それで、タイマー コールバック関数で COM の初期化を行う必要がありますか、それともコードで何かを逃しただけですか?

更新:コードを単純化しただけで、タイマー コールバックの前に CoInitializeEx を呼び出したことは確かですが、2 番目のタイマー コールバックでは呼び出していないように見えます

4

1 に答える 1