鉴于一些现有代码调用 CoCreateInstance
来创建已注册 COM 对象的实例,是否有一种方法可以重定向这些调用以创建不同的实例?
想法是在同一个进程中(出于测试目的),在不改变原始代码或影响任何其他进程的情况下,当它请求系统提供的CLSID_ShellLink
(例如)时,它将创建实现相同接口(interface)的自定义类型(在相同代码库中实现)的实例,而不是它通常创建的“真实”实例。
为了澄清:我正在寻找一个 API 调用,它可以说“嘿 CoCreateInstance
,在查看注册之前首先调用这个本地的东西来创建一个实例”。而且它必须是可以通过编程方式完成的事情,而不是通过操作注册表或配置文件;它需要在代码中切换。
最佳答案
如果您正在创建的对象正在处理中,并且如果您可以在您正在谈论的过程中调用 CoRegisterClassObject,则可以为特定对象注册您自己的类工厂...还取决于调用 CoCreateInstance 时使用的标志.
关于c++ - 将 CoCreateInstance 重定向到假实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56437191/