Essential COM

, , . CLSID, , . , , . CLSID, ( , CLSID_Chimp2), , , CLSID :

// new client - I * = 0; hr = CoCreateInstance(CLSID_Chimp2, 0, CLSCTX_ALL, IID_Ape, (void**)&pApe);

CLSID , Chimp. CLSID:

// old client - I * = 0; hr = CoCreateInstance(CLSID_Chimp, 0, CLSCTX_ALL, IID_Ape, (void**)&pApe);

, Chimp CLSID . , , . , . .

CLSID, (class emulation). , CLSID , CLSID, . , CLSID, . , , API- :

HRESULT CoTreatAsClass([in] REFCLSID rclsidOld, [in] REFCLSID rclsidNew);

himp2 Chimp, , Chimp Chimp2:

// cause Chimp activation calls to activate Chimp2 // Chimp Chimp2 HRESULT hr = CoTreatAsClass(CLSID_Chimp, CLSID_Chimp2);

API- (registry key)

[HKCR\CLSID\{CLSID_Chimp}\TreatAs]1 @={CLSID_Chimp2}

CoTreatAsClass c CLSID_NULL TreatAs:

// cause Chimp activation calls to activate Chimps // Chimp // Chimps HRESULT hr = CoTreatAsClass(CLSID_Chimp, CLSID_NULL);

, . , API- CoGetTreatAsClass:

HRESULT CoGetTreatAsClass ([in] REFCLSID rclsidOld, [out] REFCLSID *pclsidNew);

, CLSID S_OK. , CLSID S_FALSE. , .


1 , CLSID_Chimp CLSID_Chimp2 GUID, 32 .

Категории