Как реализовать исходящий интерфейс на объекте приемника (C ++) - PullRequest
0 голосов
/ 18 января 2009

У меня есть предопределенный TLB-файл с реализациями метода-оболочки IS8SimulationEvents, например:

inline HRESULT IS8SimulationEvents::S8SimulationReset ( ) {
    HRESULT _result = 0;
    _com_dispatch_method(this, 0x1, DISPATCH_METHOD, VT_ERROR, (void*)&_result, NULL);
    return _result;
}

Используя Oleview, я вижу интерфейс IConnectionPointContainer , присоединенный к COM-объекту.

Вопрос:

  • Как реализовать исходящий интерфейс для объекта приемника, чтобы клиент получал уведомление о событии от объекта COM

Без

  • АТЛ
  • MFC

1 Ответ

2 голосов
/ 18 января 2009

В этой статье объясняется, как реализовать точки подключения источников / приемников в простом C http://www.codeproject.com/KB/COM/com_in_c5.aspx

Вероятно, целая серия статей Джеффа Глатта "COM in plain C" более чем рекомендована, если вы хотите понять COM на низком уровне.

PD: Lambdasoft Comet - это фреймворк, который реализует оболочки COM, которые не используют ATL / MFC, он устарел, но если вы хотите чего-то простого, стоит взглянуть https://bitbucket.org/sofusmortensen/comet/ или http://www.lambdasoft.dk/comet/.

...