用于托管进程内服务器的自定义COM类工厂
我正在寻找以MkParseDisplayName/BindToObject
方式为托管类库实现自定义COM激活逻辑。
这样,从VB创建对象可能如下所示:
obj = GetObject("clsid:12341234-1234-1234-1234-123412341234:!UniqueObjectId")
这对于一个进程外服务器(使用CoRegisterClassObject
)来说不是问题。 但是,对于进程内服务器,我需要更改DllGetClassObject
的实现,这通常由mscoree.dll
提供。 这有可能吗?
我看到的唯一其他选项是创建一个C#单例对象作为类工厂并在其上实现IParseDisplayName 。 从理论上讲,这样的单例也可以使用CoRegisterClassObject(CLSCTX_INPROC_SERVER)
注册自定义的IClassFactory
类对象,但CoRegisterClassObject(CLSCTX_INPROC_SERVER)
,单例本身都需要首先实例化。