Учитывая некоторый существующий код, который вызывает CoCreateInstance
для создания экземпляров зарегистрированных COM-объектов, есть ли способ перенаправить эти вызовы для создания другого экземпляра вместо этого?
Идея заключается в том, что внутри одного и того же процесса (для целей тестирования) и без изменения исходного кода или влияния на другие процессы, когда он запрашивает предоставленную системой CLSID_ShellLink
(например), он создаст экземпляр пользовательского типа (реализованный в той же базе кода), который реализуеттот же интерфейс, а не «реальный» экземпляр, который он обычно создает.
Для пояснения: я ищу вызов API, который можно сделать, чтобы сказать «эй CoCreateInstance
, вызовите эту локальную вещь длясначала создайте экземпляр, прежде чем смотреть на регистрации ».И это должно быть что-то, что можно сделать программно, а не манипулируя реестром или файлом конфигурации;он должен быть переключаемым в коде.