Главная страница
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
6-55243
Fredericco
2002-04-08 14:08
2002.06.17
Я использую Сокеты. Вот вопрос следующий как не дать клиенту соед


4-55353
_TOLTEC
2002-04-15 02:12
2002.06.17
Хендл окна


1-55069
Karlusha
2002-06-05 18:11
2002.06.17
Mouse


14-55266
kontra
2002-05-10 13:04
2002.06.17
Программирование на Delphi


1-55156
MAxiMum
2002-05-29 17:54
2002.06.17
Вывод в стандарте Юникод