Здравствуйте, большое спасибо за ответ.
//1) Интерфейс создаётся и используется в одном и том же потоке?
Интерфейс и создается и используется в одном потоке.
Сегодня выяснила, что когда интерфейс создавать в основном потоке, то похоже происходит взаимоблокировка потоков и приложение виснет, если же создвавать интефейс в отдельном параллельном потоке, то все нормально, единственно, не знаю, как можно их нормально синхронизировать так, чтобы дополнительный поток сначала проинициализировал переменные, а потом уже выполнялся основной(DllMain), Event и критические секции не помогли

. Пришлось поступить не очень красиво, создать некую переменную-флаг и возвести ее когда в дополнительном потоке массив будет заполнен, тогда в основном потоке можно работать с этим массивом.
Может Вы посоветуете что-нибудь другое?