День добрый!!
пытаюсь написать OPC сервер на C#, только вот пока не очень получается..
не могу разобраться с ConnectionPoints.
у клиента есть метод
private void AdviseIOPCDataCallback()
{
Type sinktype = typeof( IOPCDataCallback );
Guid sinkguid = sinktype.GUID;
cpointcontainer.FindConnectionPoint( ref sinkguid, out callbackcpoint );
if( callbackcpoint == null )
return;
callbackcpoint.Advise( this, out callbackcookie );
}
он дергает метод сервера FindConnectionPoint.
Вопрос: как должен быть реализован этот метод на сервере, чтобы возвращать ConnectionPoint?
Сейчас у сервера есть метод, который был сгенерирован автоматически (из интерфейса):
public void FindConnectionPoint(ref Guid riid, out UCOMIConnectionPoint ppCP)
{
ppCP = null;
}
подскажите, как можно достать нужный ConnectionPoint в этом методе. и вообще, по верному пути ли я иду.
заранее благодарен.
Здравствуйте, alf_8, Вы писали:
_>День добрый!!
_>пытаюсь написать OPC сервер на C#, только вот пока не очень получается..
_>не могу разобраться с ConnectionPoints.
_>у клиента есть метод
_>_>private void AdviseIOPCDataCallback()
_>{
_> Type sinktype = typeof( IOPCDataCallback );
_> Guid sinkguid = sinktype.GUID;
_> cpointcontainer.FindConnectionPoint( ref sinkguid, out callbackcpoint );
_> if( callbackcpoint == null )
_> return;
_> callbackcpoint.Advise( this, out callbackcookie );
_> }
_>
_>он дергает метод сервера FindConnectionPoint.
он не дергает а подписывается на событие сервера
_>Вопрос: как должен быть реализован этот метод на сервере, чтобы возвращать ConnectionPoint?
CONNECTION_POINT_MAP + поддерживать интерфейс IConnectionPointContainer + Fire_MyEvent
_>Сейчас у сервера есть метод, который был сгенерирован автоматически (из интерфейса):
_>подскажите, как можно достать нужный ConnectionPoint в этом методе. и вообще, по верному пути ли я иду.
учи матчасть для начала
_>заранее благодарен.
_>>он дергает метод сервера FindConnectionPoint.
А>он не дергает а подписывается на событие сервера
_>>Вопрос: как должен быть реализован этот метод на сервере, чтобы возвращать ConnectionPoint?
А>CONNECTION_POINT_MAP + поддерживать интерфейс IConnectionPointContainer + Fire_MyEvent
_>>Сейчас у сервера есть метод, который был сгенерирован автоматически (из интерфейса):
_>>подскажите, как можно достать нужный ConnectionPoint в этом методе. и вообще, по верному пути ли я иду.
А>учи матчасть для начала
_>>заранее благодарен.
А>
точнее немного другой вопрос: как сделать CONNECTION_POINT_MAP + поддерживать интерфейс IConnectionPointContainer + Fire_MyEvent на C#?
больше всего интересует CONNECTION_POINT_MAP..
не могли бы вы скинуть какой-нибудь простенький пример, отражающий суть.
Здравствуйте, alf_8, Вы писали:
_>точнее немного другой вопрос: как сделать CONNECTION_POINT_MAP + поддерживать интерфейс IConnectionPointContainer + Fire_MyEvent на C#?
_>больше всего интересует CONNECTION_POINT_MAP..
Так делается в ATL 8.0 С++, а насчет C# не знаю — может быть .NET Remoting тебе поможет