Поиск:

Ответ в темуСоздание новой темы Создание опроса
> IDispatchEx 
:(
    Опции темы
pR13S7
Дата 20.6.2006, 09:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 3.3.2006

Репутация: нет
Всего: нет



Нужно реализовать IDispatchEx интерфейс без использования ATL. C COM до этого не работал. Как я понял нужно заменить стандартный интерфейс COM, в MSDN про него пару слов только сказано, не ясна логика функционирования интерфейса. Может кто знает что к чему ии хотябы даст ссылку где почитать про это дело. 
PM MAIL   Вверх
Dart
Дата 29.6.2006, 10:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 103
Регистрация: 26.6.2006
Где: Саратов, РФ

Репутация: нет
Всего: 2



Почитать-то в MSDN - там это достаточно хорошо написано, хоть и без литра не разберешься.
Суть такова
Создаешь на основе CCmdTarget свой класс и добавляешь в него свои интерфейсы, пишешь все ручками:
Код

class CDisp : public CCmdTarget
{
    BEGIN_INTERFACE_PART(DispatchEx, IDispatchEx)
        STDMETHOD(Method1)(/*здесь возможны параметры, которые будут передаваться в интерфейс*/);
        STDMETHOD(Method2)();
    END_INTERFACE_PART(DispatchEx)
    BEGIN_INTERFACE_PART(DispatchEx1, IDispatchEx)
        STDMETHOD(Method1)();
    END_INTERFACE_PART(DispatchEx1)

    DECLARE_INTERFACE_MAP()
}

В реализации:
Код

BEGIN_INTERFACE_MAP(CDisp, CCmdTarget)
    INTERFACE_PART(CDisp, IID_IDispatchEx, DispatchEx)
    INTERFACE_PART(CDisp, IID_IDispatchEx1, DispatchEx1)
END_INTERFACE_MAP()

STDMETHODIMP CDisp::DispatchEx::Method1(/*те самые параметры*/)
{
    return S_OK;
}

IID естественно свой надо определить
А использование
Код

    CComPtr<IDispatchEx> spDispEx;
    HRESULT hr = pUnk->QueryInterface(&spDispEx);
    hr = spDispEx->Method1();

Ну и по образу и подобию 
--------------------
ЦитатаЛюблю смотреть, как другие работают
 Дж. К. ДжеромСайт: www.ecosigma.ruПочта: [email protected] 
PM MAIL WWW ICQ   Вверх
Alladin
Дата 2.7.2006, 15:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 2.7.2006

Репутация: нет
Всего: нет



PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: COM/DCOM/ActiveX/ATL/CORBA | Следующая тема »


 




[ Время генерации скрипта: 0.0589 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.