Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.06.17;
Скачать: CL | DM;

Вниз

Вызов интерфейса из DcomConnection   Найти похожие ветки 

 
wed   (2002-04-01 15:00) [0]

Как, если это возможно, вызвать метод интерфейса при наличии подключения DCOMConnection
Спасибо.


 
Digitman ©   (2002-04-01 17:02) [1]

var
MyAppServer: IMyAppServer;
...

MyAppServer:= IMyAppServer(IDispatch(DCOMConnection.AppServer));
MyAppServer.MyMethod;


 
wed   (2002-04-09 14:01) [2]

При таком варианте выдает ACCESS Viol...
Соединение устанавливается при
dcomconnection1.GetServer.QueryInterface(IID_IMyAppServer,MyAppServer);
Почему для SocketConnection при любом варианте MyAppServer=nil
Для DCOM же всегда передается некоторый адрес
Возможен ли вызов через сокеты ???
Спасибо


 
Digitman ©   (2002-04-09 14:29) [3]

приношу извинения
правильно будет так :

var
MyAppServer: IMyAppServerDisp;
...

MyAppServer:= IMyAppServerDisp(IDispatch(DCOMConnection.AppServer));

или

MyAppServer:= IDispatch(DCOMConnection.AppServer) as IMyAppServerDisp;

MyAppServer.MyMethod;

где

IMyAppServerDisp = dispinterface
.. декларация диспинтерфейса
end;

Сокеты (TSocketConnection) здесь ни при чем (хотя возможны наравне с DCOM : какой компонент выбрать - дело вкуса и особенности серверной стороны). Это лишь транспортный уровень для трансляции интерфейсных вызовов MIDAS
Все без исключения MIDAS-ориентированные компоненты базируются на TDispatchConnection, где, собственно говоря, и определены св-во AppServer и метод GetServer.

Главное отличие между AppServer и GetServer закл-ся в том, что AppServer (в "голом виде", без приведения типа) предназначен для использования позднего связывания (dual interface), а GetServer - раннего (v-table interface).

AppServer = Null (и, соответственно, GetServer = nil) только в одном случае - это случай, когда TXXXConnection.Active = False. Иными словами - коннект не установлен. При попытке установления коннекта AppServer/GetServer либо примут непустые значения либо произойдет исключение из за невозможности получить доступ к серверу (на том или ином этапе установления программно-логического соединения, этапов не менее чем два : установка соединения на уровне сетевого транспорта и установка соединения с загружаемым объектом, реализующим собственно интерфейсы IMyAppServer/IMyAppServerDisp)



Страницы: 1 вся ветка

Текущий архив: 2002.06.17;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.015 c
3-55028
Esipenko
2002-05-23 11:58
2002.06.17
Шифрование таблиц


14-55292
evgeg
2002-05-10 19:27
2002.06.17
---|Ветка была без названия|---


6-55259
Timon
2002-04-05 13:08
2002.06.17
TCP пакет


3-55044
nedden
2002-05-22 13:01
2002.06.17
Программное создание ClientDataSet


1-55181
QWest
2002-05-30 15:07
2002.06.17
Здравствуйте мастера......