Это необходимо сделать на уровне DLL с помощью Authenticode API. Стандартный API называется WinVerifyTrust () , и там есть примеры, документированные здесь. Есть еще одна статья KB с номером 323809 , в которой приведен пример того, как извлечь другие детали из информации authenticode, прикрепленной к вашей DLL.
Конечно, эти API ожидают, что им будет передан путь к самой DLL, тогда как в сценарии COM-плагина вы обычно не затрагиваете это напрямую, а вместо этого полагаетесь на регистрацию, чтобы найти правильный двоичный файл. Вы можете либо свернуть сценарий загрузки вручную (т.е. загрузить DLL с помощью LoadLibrary () и вызвать DllGetClassObject () самостоятельно), либо просто потребовать от пользователей вашего API придерживаться дополнительных правил, таких как размещение DLL в определенное место независимо от регистрации.
Или, как предложил Роб Уокер, самостоятельно найдите регистрацию CLSID в реестре и используйте ее как способ найти нужную DLL для проверки.