, , . 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 .