2010-08-15 110 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++包含頭文件