Проверьте файл Portable Executable (PE) на наличие подписи COM
Мне нужно программно проверить произвольные Dlls, чтобы увидеть, являются ли они inproc COM-серверами. Другими словами, могут ли они быть зарегистрированы в текущей системе с помощью regsvr32 / DllRegisterServer.
Если не считать предложений Энди по этому вопросу, есть ли способ выяснить необходимое без необходимости:
- Загрузите библиотеку и проверьте экспорт DllRegisterServer/DllUnregisterServer.
- Попытка регистрации с помощью regsvr32 при обнаружении исключений?
В формате PE должно быть что-то, что указывает на необходимость. Я предполагаю, что regsvr32 уже делает это внутри. Был бы признателен за любой вклад.
1 ответ
Решение
Нет. Единственное, что делает DLL COM-объектом, это то, что он экспортирует DllGetClassObject
, Единственное, что делает его регистрируемым, это то, что он экспортирует DllRegisterServer
,