CoGetClassObject

區別1:CoGetClassObject同CoCreatIn stan stan

CoCreateInstance實際上並沒有直接創建COM組件 ,而是創建了一個被稱作是類廠的組件。而所需的組件正是由些類廠創建的。類廠組件的唯一功能就創建其他的組件。創建組件的標準接口是IClassFactory,用CoCreateInstnce創建的組件實際上是通過IClassFactory創建的。
類廠只是創建其它組件的一個簡單組件。
區別1:CoGetClassObject同CoCreatInstance是非常相似的。只一個參數不同,CoCreatInstance將接收一個Iunknown指針,而CoGetClassObject則將接收一個COSERVERINFO指針。
區別2:CoGetClassObject返回的是指向類廠中某個接口的指針(客戶可以用這個指針來創建所需的組件),而CoCreateInstance返回的則是指向組件中某個接口的指針。
為了創建同某個CLSID相應的類廠,需要一個與CoCreateInstance等價的,也可以接收一個CLSID作為參數並把回相應類廠中某個接口指針的函式。這個函式就是COM庫中的CoGetClassObject。
類廠所支持的用於創建組件的標準接口是IClassFactory。大多數組件均可使用IClassFactory接口來創建。
CoGetClassObject聲明:
STDAPI CoGetClassObject(REFCLSID rclsid,
DWORD dwClsContext,
COSERVERINFO * pServerInfo,
REFIID riid,
LPVOID * ppv);

相關詞條

相關搜尋

熱門詞條

聯絡我們