Как мне создавать классы в проекте ATL?

Я пишу проект ATL, и мне интересно, как мне здесь создавать классы. Прямо сейчас у меня есть один класс, созданный Add / Class / ATL Simple Object . Я хочу разделить его на более мелкие классы, но метод из этих классов должен использовать CComPtr и иметь CComPtr в качестве аргумента. Я не могу создать «простой» класс C ++, потому что у меня там нет CComPtr .

Следует ли мне создавать классы ATL с помощью Мастера простых объектов ATL , а затем использовать интерфейс этого класса для вызова методов. Как здесь:

CComPtr<ITestAtlClass> tptr;
tptr.CoCreateInstance(CLSID_TestAtlClass);
tptr->test();

И следует ли мне добавлять все общедоступные методы с помощью Class View / ITestAtlClass / Add / Add Method ? А как насчет конструкторов? Должен ли я инициализировать свой класс только по свойствам (и добавлять их с помощью Class View / ITestAtlClass / Add / Add Property )? И передавать каждый com-объект через интерфейс IUnknown?

Кто-нибудь может сказать мне, как это должно быть сделано в проекте ATL. Я буду использовать эти меньшие классы внутри (никто не будет создавать эти классы вне моей DLL), чтобы мой код был более читабельным.

5
задан Mariusz Pawelski 6 December 2010 в 13:43
поделиться