Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Single Post  Topic: Drag-n-Drop ИЗ окна, работающего в другом потоке 
Author Message
MVV



PostPosted: Sat Mar 26, 2011 18:26    Post subject: Reply with quote

Н-да, все оказалось так просто - тупо вызывать OleInitialize из каждого потока, в котором нужно использовать dnd, игнорируя все сказания об однопоточности модели OLE. И всё нормально работает безо всяких извращений.

Попутно возникла и была решена другая проблема - вызов OleUninitialize во время завершения приложения может завесить его или вызвать кучу других ошибок - поэтому нужно избегать вызовов OleUninitialize, когда один из потоков выполняет код функции DllMain (например, такая ситуация возникает, если основной поток закрывается и экстренно приказывает фоновым завершить работу). Собственно, об этом написано в MSDN, хотя и не так подробно.
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
View user's profile Send private message ICQ Number


Powered by phpBB © 2001, 2005 phpBB Group