進程內COM組件的創建過程

1. 客戶程序首先調用CoCreatInstance,CoCreateInstanceEx,或者CoGetClassObject,實際上前兩個函數都是經過包裝過的輔助函數,其內部都是通過調用CoGetClassObject實現的。

2. CoGetClassObject函數中根據CLSID參數,查找註冊表,找到組件所在的DLL文件。

3. CoGetClassObject調用DLL中的DllGetClassObject導出函數。

4. DllGetClassObject函數根據CLSID參數,創建對應的類廠,獲取IClassFactory指針。

5. DllGetClassObject調用IClassFactory::CreateInstance()函數創建組件對象。

6. 通過類型轉換,獲取IID參數所指的接口指針。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章