Я пишу плагин для какой-то системы, однако есть некоторые некорректно работающие приложения, которые вызывают мой плагин во время инициализации dll (либо из DllMain, либо из InitInstance, которая является оболочкой для DllMain).
Мне было интересно, есть ли способ узнать, выполняется ли код в DllMain или нет. Я не хочу терпеть неудачу изящно, не вызывая взаимоблокировку (код, который выполняет мой плагин, включает загрузку dll, создание потока и ожидание события, которое вызывает взаимоблокировки при выполнении в DllMain).
Мне известно о том, что CreateThread не будет выполняться до тех пор, пока не завершится DllMain, однако я не могу выполнить инициализацию из другого потока, так как это связано с COM.