2010-08-15 83 views
1

我对CoCreateInstnace()方法如何找到并创建包含在COM DLL中的CoClass实例有疑问。关于CoCreateInstance()方法实现的问题

Accroding到MSDN

CoCreateInstance函数提供 了方便快捷通过连接到 与 指定CLSID关联的类对象时,创建 未初始化的实例,并释放 类对象。因此,它 封装以下 功能:

CoGetClassObject(rclsid, dwClsContext, NULL, IID_IClassFactory, &pCF); 
hresult = pCF->CreateInstance(pUnkOuter, riid, ppvObj) 
pCF->Release(); 

所以我想如果这是正是 CoCreateInstnace是如何实现的?或者它只是一个逻辑等效?如果它的真实实现不是这样的话,我完全不知道CoCreateInstnace如何找到合适的CoClass实例,并且仅仅在Windows注册表中注册一个CLSID和一些DLL位置信息。

感谢您的回复。

+0

它还有更多功能,但需要一本书。 *确切地说*哪一部分看起来像黑魔法? – 2010-08-15 13:18:23

回答

0

请通过在Visual Studio IDE中使用调试版本的MSVCRT库进行调试来检查它。或者,您可以扫描VC++包含头文件