6.04.2007

CoCreateInstance : CLASSID

STDAPI CoCreateInstance(
REFCLSID rclsid,
LPUNKNOWN pUnkOuter,
DWORD dwClsContext,
REFIID riid,
LPVOID* ppv
);
好像是用來動態create class ,msdn 中說明這個function 就是..
CoGetClassObject(rclsid, dwClsContext, NULL, IID_IClassFactory, &pCF);
hresult = pCF->CreateInstance(pUnkOuter, riid, ppvObj)
pCF->Release();
那為什麼不用一般的 Class 生成方式 ?
是為了Serialize ?
所以argument 1 是 ClassID ?
生成Class ID 所指定的物件,並且把object pointer 放在最後的argument中。
-- 這樣使用者還是 要 include class header 呀,所以是為了隱藏 Class Implement Code ?

ClassID : 都是以 "CLSID_" 為開頭

像 CLSID_ImageFactory 就是 ImageFactory 這個Class的Class ID。

沒有留言: