Нашему полку авторов, прибыло. Представляем ProfSD которого вы всегда можете застать на нашем форуме.
Оформление класса в виде COM объекта
Допустим у вас есть некоторое приложение, написанное на C++(VC++ если быть корректным). Как оно у вас появилось не суть важно, может быть это ваша старая разработка, может быть вы решили сначала отладить предметную часть. Важно то что вы горите желанием вынести часть классов в объектные модули и оформить их в виде ActiveX, COM и ATL объектов. Есть несколько типовых проблем связанных с таким переносом.
Знакомо и очень удобно, но в COM правила создания объекта строго определены и ни одна из функции для созданий объектов не позволяет передавать параметры конструктору класса.
Настройку объекта придется вынести в отдельный метод например Init.
// IMyCOM cтандартная обертка наследник от COleDispatchDriver
IMyCOM * d=new IMyCOM;
COleException pErr;
CString SSS="Mylib.MyCOM";
d->CreateDispatch( SSS,&pErr);
d->Init(15,”Матрица”); // Инициализируем
В принципе вы можете создать свою фабрику объектов. Это позволит создавать объекты вот так.