Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
arist
0 / 0 / 0
Регистрация: 14.02.2011
Сообщений: 100
#1

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

02.04.2011, 14:03. Просмотров 1077. Ответов 0
Метки нет (Все метки)

Нужно написать 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().
Получается примерно следующее:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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()
//...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.04.2011, 14:03
Здравствуйте! Я подобрал для вас темы с ответами на вопрос COM-сервер на ATL и IClassFactory (C++):

ATL - C++
Здравствуйте, не подскажете если ли туториалы на русском по этой библиотеке? Нужно написать службу

поделитесь ATL - C++
Доброго времени суток! Может у кого завалялась библиотека atl, будьте добры, поделитесь. на форум или файлообменик не принципиально. А...

Литература по ATL/WTL. - C++
Здравствуйте, уважаемые форумчане! Не могли бы вы посоветовать стоящую литературу по библиотекам ATL/WTL, желательно не метровой толщины.

ATL Service и переодическая задача - C++
Необходимо написать сервис для вин, использую для этой цели шаблон в VS2010(С++, АТЛ). Переопределяю события(при старте, паузе...) - всё...

Где искать DllMain в ATL 7.0? - C++
Может кто знает где искать DllMain в ATL 7.0 А то смотрю в глобальных функциях есть а когда пытаешься открыть программа выкидывает тебя...

ATL не ясно как добавить объект - C++
Здорова! Создал проект ATL dll. В книге написано: &quot;После создания COM сервера можно добавлять в него COM классы. Для вызова мастера...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.04.2011, 14:03
Привет! Вот еще темы с ответами:

Не могу разобраться с написанием ActiveX в ATL - C++
Вопрос ко всем знатокам COM и ATL и не только! Создал ActiveX control c с помощью мастера. Добавил Connection Point с помощью...

В ATL нашел код: __interface - как это работает - C++
__interfase - структура не содержащая свойств! в ATL нашел такой вот код, и никак не пойму как это работает struct CStringData; ...

VC++6.0/ATL - ошибка сборки в режиме Release при исп.функций из math.h - C++
В проекте созданным ATL COM AppWizard обязательно без поддержки MFC при использовании функций, объявленных в math.h, например, sqrt(),...

System.UnauthorizedAccessException: Creating an instance of the COM component with CLSID {...} from the IClassFactory failed due to the following erro - C++ COM
COM-клиент пытается удаленно (по лок. сети) запустить COM-сервер: запуск выполняется, но сразу же вылетает ошибка: ...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru