Форум программистов, компьютерный форум CyberForum.ru

COM-сервер на ATL и IClassFactory - C++

Войти
Регистрация
Восстановить пароль
 
arist
0 / 0 / 0
Регистрация: 14.02.2011
Сообщений: 100
02.04.2011, 14:03     COM-сервер на ATL и IClassFactory #1
Нужно написать COM-сервер с помощью ATL.
Он должен реализовать интерфейсы IPersistFolder, IShellFolder, IClassFactory и т.д.
Первые два из Windows Shell с ними вроде всё в порядке,
а вот как реализуется IClassFactory?
Делая как написано в MSDN, IClassFactory, при просмотре через OLE/COM Object Viewer, не появляется.
Я понимаю MSDN так:
Нужно создать объект через Add Class Wizard, например, ATL Simple Object.
Он уже порождён от CComCoClass, а это и есть реализация IClassFactory.
Ну и ещё в объявлении моего класса добавляем макрос DECLARE_CLASSFACTORY().
Получается примерно следующее:
class ATL_NO_VTABLE CAristArchMain :
public CComObjectRootEx<CComSingleThreadModel>, //насколько я понимаю это IUnknown
public CComCoClass<CAristArchMain, &CLSID_AristArchMain>, //а это IClassFactory
public IAristArchMain,
public IPersistFolder //добавил руками
{
public:
//...
DECLARE_CLASSFACTORY() //добавил руками
//...
BEGIN_COM_MAP(CAristArchMain)
COM_INTERFACE_ENTRY(IAristArchMain)
COM_INTERFACE_ENTRY(IPersist) //тоже руками (от него порождён IPersistFolder)
COM_INTERFACE_ENTRY(IPersistFolder) //тоже руками
END_COM_MAP()
//...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.04.2011, 14:03     COM-сервер на ATL и IClassFactory
Посмотрите здесь:

C++ Клиент-сервер
C++ Клиент - сервер
C++ VC++6.0/ATL - ошибка сборки в режиме Release при исп.функций из math.h
Не могу разобраться с написанием ActiveX в ATL C++
C++ Где искать DllMain в ATL 7.0?
Сервер-клиент C++
ATL C++
ATL Service и переодическая задача C++
C++ В ATL нашел код: __interface - как это работает
C++ Клиент-сервер
C++ ATL не ясно как добавить объект
COM сервер C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 13:43. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru