CoCreateInstance具體內部實現

2021-06-26 22:24:31 字數 1658 閱讀 7978

原文出處:

cocreateinstance(....)   

這段話的意思就是先得到類廠物件,再通過類廠建立元件從而得到iunknown指標。繼續深入一步,看看cogetclassobject的內部偽碼: 

[cpp]view plain

copy

print?

cogetclassobject(.....)   

/// dllgetclassobject是幹什麼的,它是用來獲得類廠物件的。只有先得到類廠才能去建立元件. 

/// 下面是dllgetclassobject的偽碼: 

dllgetclassobject(...)   

/// cogetclassobject的流程已經到此為止,現在返回cocreateinstance,看看createinstance的偽碼: 

這部分我們將構造乙個建立com元件的最小框架結構,然後看一看其內部處理流程是怎樣的

[cpp]view plain

copy

print?

iunknown *punk=null;  

iobject *pobject=null;  

coinitialize(null);  

cocreateinstance(clsid_object, clsctx_inproc_server, null, iid_iunknown, (void

**)&punk);  

punk->queryinte***ce(iid_iojbect, (void

**)&pobject);  

punk->release();  

pobject->func();  

pobject->release();  

couninitialize();  

[cpp]view plain

copy

print?

cocreateinstance(....)    

這就是乙個典型的建立com元件的框架,不過我的興趣在cocreateinstance身上,讓我們來看看它內部做了一些什麼事情。以下是它內部實現的乙個偽**:

[cpp]view plain

copy

print?

cogetclassobject(.....)  

dllgetclassobject是幹什麼的,它是用來獲得類廠物件的。只有先得到類廠才能去建立元件.  

下面是dllgetclassobject的偽碼:  

dllgetclassobject(...)  

cogetclassobject的流程已經到此為止,現在返回cocreateinstance,看看createinstance的偽碼:  

cfactory::createinstance(.....)    

這段話的意思就是先得到類廠物件,再通過類廠建立元件從而得到iunknown指標。繼續深入一步,看看cogetclassobject的內部偽碼:

CoCreateInstance具體內部實現

cpp view plain copy print?cocreateinstance cocreateinstance 這段話的意思就是先得到類廠物件,再通過類廠建立元件從而得到iunknown指標。繼續深入一步,看看cogetclassobject的內部偽碼 cpp view plain copy...

CoCreateInstance具體內部實現

cocreateinstance 這段話的意思就是先得到類廠物件,再通過類廠建立元件從而得到iunknown指標。繼續深入一步,看看cogetclassobject的內部偽碼 cogetclassobject dllgetclassobject是幹什麼的,它是用來獲得類廠物件的。只有先得到類廠才能去...

CoCreateInstance具體內部實現

cpp view plain copy print?cocreateinstance cocreateinstance 這段話的意思就是先得到類廠物件,再通過類廠建立元件從而得到iunknown指標。繼續深入一步,看看cogetclassobject的內部偽碼 cpp view plain copy...