MVV
|
Posted: Sat Mar 26, 2011 18:26 Post subject: |
|
|
Н-да, все оказалось так просто - тупо вызывать OleInitialize из каждого потока, в котором нужно использовать dnd, игнорируя все сказания об однопоточности модели OLE. И всё нормально работает безо всяких извращений.
Попутно возникла и была решена другая проблема - вызов OleUninitialize во время завершения приложения может завесить его или вызвать кучу других ошибок - поэтому нужно избегать вызовов OleUninitialize, когда один из потоков выполняет код функции DllMain (например, такая ситуация возникает, если основной поток закрывается и экстренно приказывает фоновым завершить работу). Собственно, об этом написано в MSDN, хотя и не так подробно. _________________ TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel… |
|