Escribo un proyecto ATL y me pregunto cómo debería crear clases aquí. Ahora tengo una clase creada por Add/Class/ATL Simple Object. Quiero dividirlo en clases más pequeñas pero el método de esta clase debe usar CComPtr
y tener CComPtr
como argumento. No puedo crear clases C++ 'simples' porque no tengo CComPtr
allí.¿Cómo debo crear clases en el proyecto ATL?
Debo crear clases ATL por ATL Simple Object Wizard y luego uso la interfaz para esta clase para llamar a los métodos. Como aquí:
CComPtr<ITestAtlClass> tptr;
tptr.CoCreateInstance(CLSID_TestAtlClass);
tptr->test();
Y debo añadir todos los métodos públicos por Vista de clases/ITestAtlClass/Add/Agregar método? ¿Qué hay de los constructores? ¿Debo inicializar mi clase solo por propiedades (y agregarlas por Class View/ITestAtlClass/Add/Add Property)? ¿Y pasar cada objeto com por la interfaz IUnknown?
¿Alguien puede decirme cómo se debe hacer en el proyecto ATL. Usaré estas clases más pequeñas internamente (nadie creará estas clases fuera de mi DLL) solo para hacer que mi código sea más legible.
Solo crea clases ATL para las interfaces que deberían estar visibles fuera de la DLL. –
@ Hans Passant Pero no puedo crear clases C++ simples que usen CComPtr por ejemplo. ¿Cómo usarlo? –