Я строю SINK объект (EXEServer2), который получает Fire от
(EXEServer).
Делаю все согласно статье ("Как подключиться к событиям COM-объекта на С++" Автор: В.Чистяков)
Для описания
public IDispEventImpl<0,CExeServer,&DIID__IExternalStateEvents,
&LIBID_EXESERVER2Lib,1,0>
требуются DIID,....
Возникла проблема с подключением tlb файла.
Строка
#import "EXEServer2.tlb" no_namespace, named_guids, no_implementation,raw_interfaces_only, raw_dispinterfaces,raw_native_types
вызывает странную ошибку
fatal error C1001: INTERNAL COMPILER ERROR
(compiler file 'msc1.cpp', line 1794)
Please choose the Technical Support command on the Visual C++
Help menu, or open the Technical Support help file for more information
Все советы, которые предлагает MSDN для ее исправления не помогли.
Пробовал подключать обычный .h и _i.c, но постоянно ошибка с повторным объявлением переменных.
В конце, вроде, подключил, так компилятор ругнулся, что
invalid address of static variable 'DIID__IExternalStateEvents'
что-то я вообще ничего не понимаю по умолчанию в IDispEventImpl это
значение вообще равно &IID_NULL.
У меня EXEServer имеет 3 Firа я лювлю EXEServer2 только 2-ой.Соответственно
описываю функцию и определяю синк карту только для второго.
Подскажите пожалуйста, как подключить как быть?
p.s. Попробывал 1 интерфейс 1 Fire. Все работает. Неужели дело в этом?