【发布时间】:2011-03-30 01:25:22
【问题描述】:
我有一个关于 CoCreateInstnace() 方法如何定位和创建包含在 COM DLL 中的 CoClass 实例的问题。
根据MSDN:
CoCreateInstance 函数提供 通过连接到一个方便的快捷方式 与关联的类对象 指定的 CLSID,创建一个 未初始化的实例,并释放 类对象。因此,它 封装了以下内容 功能:
CoGetClassObject(rclsid, dwClsContext, NULL, IID_IClassFactory, &pCF);
hresult = pCF->CreateInstance(pUnkOuter, riid, ppvObj)
pCF->Release();
所以我想知道这是否完全 CoCreateInstnace 是如何实现的?或者它只是一个逻辑等价物?如果它的实际实现不是这样,我完全不知道 CoCreateInstnace 是如何找到并创建一个仅在 Windows 注册表中注册的 CLSID 和一些 DLL 位置信息的正确 CoClass 的实例。
感谢您的回复。
【问题讨论】:
-
它做得更多,但这需要一本书。 究竟你觉得哪一部分像黑魔法?