Здравствуйте, Slava Antonov, Вы писали:
SA>Hello fdn, you wrote:
SA>Мне думается что они dll грузят в отдельном потоке.
SA>А виснет мне думается потому, раз они огранизуют цикл выборки сообщений прямо в DllMain, то LoadLibrary ждет, пока она не завершит свою работу.
К сожалению не всё так просто. Как я писал выше, чтобы получить HWND окна они в dll вызывают GetActiveWindow(VOID);. Она вернёт HWND активного окна той нити из которой будте вызвана. Т.е. если создать dll из отдельной нити, то HWND будет равно 0, и мы опять получаем MessageBox с ошибкой

.
В DllMain они точно создают свою нить, и виснит всё в WaitForSingleObject. Но как тогда они загружают dll в своей программе???