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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Где почитать про ATL? По-русски. Нахаляву. (-) http://www.cyberforum.ru/cpp-beginners/thread494019.html
Спасибо.
C++ Работа для программиста по 1С 8.0 Компания по проектированию, монтажу и продажам электрообрудования приглашает программиста по 1С (8.0). З/пл по результатам собеседования + достойный соцпакет. 8-916-633-06-57 http://www.cyberforum.ru/cpp-beginners/thread493989.html
Как залогиниться на сайт программно? C++
Здравствуйте. Такая ситуация: Мне нужно при надатии на кнопку в диалоге прочитать информацию с какого-нибудь сайта(HTML код). Я читаю HTML код построчно и добавляю его в ListBox. Делаю так:...
C++ Существует ли функция, которая позволяет отобразить окно поверх других?
Существует ли функция, которая позволяет отобразить окно поверх других?
C++ Разноцветный текст в ListBox http://www.cyberforum.ru/cpp-beginners/thread493922.html
У меня даже нет версий как это сделать........... Помогите пож..........
C++ Разобраться с ошибкой 74 possible usage of str_cat before definition Пищу так: #include<string.h> ................. char *str_cat; for(int i=0; i<argc; i+=2){ strcpy(str_cat,argv); strcat(str_cat,argv);//Выдаёт Warning |74 possible usage of str_cat before... подробнее

Показать сообщение отдельно
arist
0 / 0 / 0
Регистрация: 14.02.2011
Сообщений: 100

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

02.04.2011, 14:03. Просмотров 1042. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru