У меня есть одна программа потоков, которые начинаются сДолжен ли я позвонить CoInitialize в функции обратного вызова таймера
CoInitializeEx (NULL, COINIT_APARTMENTTHREADED)
я использую COINIT_APARTMENTTHREADED, потому что некоторые функции (напр. URLDownloadToFile) не работает должным образом с COINIT_MULTITHREADED в Windows XP
и теперь я изучаю странное поведение в функции обратного вызова из CreateTimerQueueTimer - COM-объекты не создавались.
Итак, должен ли я выполнять инициализацию COM в функции обратного вызова таймера или я просто что-то пропустил в своем коде?
Обновление: Я только упростить свой код, и я уверен, что я назвал CoInitializeEx до того обратного вызова таймера, но на второй функции обратного вызова таймера, похоже, я не звонил
Вы должны вызвать CoUninitialize перед возвратом в пул потоков. Оставьте нить так, как вы ее нашли. –