// Шаблонный класс палитры свойств для локализации
template <class ClassType, class InterfaceType, const CLSID* CLSIDtype, const IID* IIDtype>
class ATL_NO_VTABLE CTraceCOMObj
: public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<ClassType, CLSIDtype>,
public IAcPiCategorizeProperties,
public IOPMPropertyExtensionImpl<ClassType>,
public ISupportErrorInfo,
public IAcadEntityDispatchImpl<ClassType, CLSIDtype, InterfaceType, IIDtype, &LIBID_UnisTraceDBXLib>
#ifdef NEVER
, public IDispatchImpl<IProfileCOMObjEng, &IID, &LIBID_UnisProfileDBXLib>
#endif
{
...
/// всю логику работы с палитрой пишем здесь
...
};
//////////////////////////////////////////////////////////////////////////
// Оглавление двух классов пустышек для разных локализаций
//////////////////////////////////////////////////////////////////////////
// Класс палитры свойств трассы для английского языка
class ATL_NO_VTABLE CTraceCOMObjEng : public CTraceCOMObj<CTraceCOMObjEng, ITraceCOMObjEng, &CLSID_TraceCOMObjEng, &IID_ITraceCOMObjEng>{};
OBJECT_ENTRY_AUTO(__uuidof(TraceCOMObjEng), CTraceCOMObjEng)
// Класс палитры свойств трассы для русского языка
class ATL_NO_VTABLE CTraceCOMObjRus : public CTraceCOMObj<CTraceCOMObjRus, ITraceCOMObjRus, &CLSID_TraceCOMObjRus, &IID_ITraceCOMObjRus>{};
OBJECT_ENTRY_AUTO(__uuidof(TraceCOMObjRus), CTraceCOMObjRus)