Поиск:

Ответ в темуСоздание новой темы Создание опроса
> обработка событий 
V
    Опции темы
RastaDja
Дата 8.7.2011, 13:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



   Доброго времени суток!
   Проблема: есть COM объект, idl которого выглядит так (данные из OLE viewer):
Код

//...
    [
      uuid(2220345E-009F-4B87-A333-A8234D61785A),
      version(1.0)
    ]
    coclass Device{
        [default] interface _Device;
        [default, source] dispinterface __Device;
    };
//...
    [
      uuid(A45156FB-011B-4FF5-9AE4-C345AC45CC24),
      version(1.0),
      hidden,
      nonextensible
    ]
    dispinterface __Device {
        properties:
        methods:
            [id(0x00000001)]
            void ReadCompleated();
    };
//...

   Теперь в своем проекте (это ATL COM dll), я создал экземпляр класса Device.
   Подскажите: как обработать события ReadCompleated класса Device?
   Спасибо.

Это сообщение отредактировал(а) RastaDja - 8.7.2011, 13:50


--------------------
The more closely you look at one thing, the less closely can you see something else.
PM MAIL   Вверх
RastaDja
Дата 8.7.2011, 15:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



   сделал такие действия:
   1. прикрутил IDispEventImpl
Код

class ATL_NO_VTABLE CDeviceObj :
    public IDispEventImpl<0, CDeviceObj , &__uuidof(__Device), &LIBID_DeviceObjLib, 1, 0>,
        //...
{
       //...
       BEGIN_SINK_MAP(CDeviceObj)
              SINK_ENTRY_EX(0, __uuidof(__Device), 0x00000001, _ReadCompleated)
       END_SINK_MAP()
       
       void __stdcall _ReadCompleated(){
        int f = 0;
       }
       //...
}

    2. вот так вот привязался к событию (эта привязка в одном из методов)
Код

       HRESULT hr = _IDispEventLocator<0, &__uuidof(__Device)>::DispEventAdvise( pCurDevice, &__uuidof(__Device) );

    3. ставлю прерывание в _ReadCompleated ф-ию, - нет ничего.

    Если кто ошибки заметил, или я не так делаю как надо? - подскажите.


--------------------
The more closely you look at one thing, the less closely can you see something else.
PM MAIL   Вверх
RastaDja
Дата 11.7.2011, 11:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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





--------------------
The more closely you look at one thing, the less closely can you see something else.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: COM/DCOM/ActiveX/ATL/CORBA | Следующая тема »


 




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


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

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