Здравствуйте Irisha, Вы писали:
I>Здравствуйте Аноним, Вы писали:
А>>Здравствуйте Irisha, Вы писали:
I>>>Привет всем! I>>>У меня возникла следующая проблема. У меня есть ATL COM Server и MFC Client. В клиенте есть диалог, на котором и должна “отображаться” работа сервера, на пример, изменяться состояние radio button. Я создаю connection point I>>> [id(2), helpstring("method EvSetState")] HRESULT EvSetState(long iNumber); I>>>В клиенте пишу его реализацию. Вроде все работает нормально, когда я вызываю его из клиента. Но дело в том, что мне необходимо изменять диалог по условиям из сервера. (т.е. у меня есть класс в сервере, в котором проверяются какие- то условия). Так вот из класса реализации Com Object вызывается все прекрасно, происходит перерисовка, а вот из того класса, из которого надо – нет. Я не могу понять в чем проблема. Может кто-то с этим сталкивался? I>>>P.S. надеюсь что понятно обрисовала проблему. J
В принципе, информации достаточно мало... На всякий случай укажу некоторые особенностти (возможно, что-то из них Вы не учли).
Насколько я понял, EvSetState — это и есть connection point. Тогда:
1. Ему следует возвращать void
2. он должен быть описан в dispinterface. например:
dispinterface _ICOMEventEvents
{
properties:
methods:
[id(2), helpstring("method EvSetState")] HRESULT EvSetState(long iNumber);
};
3. Сам dispinterface надо объявить как sourse. Например:
coclass COMApplicationComponent
{
[default] interface ICOMEvent;
[default, source] dispinterface _ICOMEventEvents;
};
4. Все, что отсуда вытекает
5. Может еще Вам поможет объявление ICOMEvent как dual