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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Где почитать про ATL? По-русски. Нахаляву. (-) http://www.cyberforum.ru/cpp-beginners/thread494019.html
Спасибо.
Visual C++ Помогите MFC-ый класс перенести в DLL Переношу код из Windows- прилож. (MFC) в DLL. В приложении использован графический объект - CRgn Заинклюдил файл afxwin.h -(без него ошибка :error C2065: 'CRgn' : undeclared identifier), при компиляции-ошибка 'приложение MFC не может #include <windows.h>' Что делать? не переписывать из-за этого объект CRgn? http://www.cyberforum.ru/cpp-beginners/thread494012.html
Работа для программиста по 1С 8.0 C++
Компания по проектированию, монтажу и продажам электрообрудования приглашает программиста по 1С (8.0). З/пл по результатам собеседования + достойный соцпакет. 8-916-633-06-57
Как залогиниться на сайт программно? C++
Здравствуйте. Такая ситуация: Мне нужно при надатии на кнопку в диалоге прочитать информацию с какого-нибудь сайта(HTML код). Я читаю HTML код построчно и добавляю его в ListBox. Делаю так: void CMyDlg::OnButton1() { CInternetSession* pInternetSession; pInternetSession=new CInternetSession;
C++ Существует ли функция, которая позволяет отобразить окно поверх других? http://www.cyberforum.ru/cpp-beginners/thread493960.html
Существует ли функция, которая позволяет отобразить окно поверх других?
C++ Разноцветный текст в ListBox У меня даже нет версий как это сделать........... Помогите пож.......... подробнее

Показать сообщение отдельно
arist
0 / 0 / 0
Регистрация: 14.02.2011
Сообщений: 100
02.04.2011, 14:03     COM-сервер на ATL и IClassFactory
Нужно написать 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()
//...
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 18:52. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru