Seems like both COM_INTERFACE_ENTRY_IID and COM_INTERFACE_ENTRY2_IID are for the case when the class is derived from two or more classes each derived from a common interface. Like this:
class CMyClass : public IPersistFile, public IPersistStream {
};
(both IPersistStream and IPersistFile derive from IPersist).
Looks like I'm free to include either
COM_INTERFACE_ENTRY_IID( __uuidof( IPersist ), IPersistFile )
or
COM_INTERFACE_ENTRY2_IID( __uuidof( IPersist ), IPersist, IPersistFile )
into the COM map of my class and it will work allright.
Is there any difference between the two?