Я хотел бы предоставить сборку объектов ATL COM объектов CMainClass так, чтобы к ней можно было обращаться с помощью клиента C#, VB или C++.ATL Коллекция нетривиальных объектов
У меня нет проблемы с настройкой самой коллекции, но я не знаю, как разрешить COM-клиентам доступ к классам A, B и C. Должен ли я сделать A, B, C & COM-объекты с объектами, содержащими std :: list <> каждая коллекция ATL сама по себе?
Есть ли более простой способ сделать это?!?!
Спасибо, PaulH
class C
{
public:
// get/set functions...
protected:
std::string str1_;
std::list<std::string> list1_;
};
class A
{
public:
// get/set functions...
protected:
std::list<C> list1_;
};
class B
{
public:
// get/set functions...
protected:
std::string str1_;
std::string str2_;
};
class CMainClass
{
public:
void GetA(A* a) const;
void SetA(const A& a);
void GetB(B* b) const;
void SetB(const B& b);
protected:
A a_;
B b_;
};
Итак, если я неправильно понял эти примеры, похоже, что ответ «да», каждый класс должен быть COM-объектом, а те, в которых члены std :: list <> должны быть коллекциями COM. – PaulH