Реферат: OLE VFP
Если OLE-контроллер и OLE-сервер расположены на разных компьютерах, для обеспечения связи между ними необходимо использовать дополнительный компонент, который называется Automation Manager (файл AUTMGR32.EXE). Этот компонент должен быть установлен на обоих компьютерах.
OLE-контроллер продолжает использовать объект Proxy, но в этом случае его функционирование обеспечивается файлом AUTPRX32.DLL. На компьютере с внешним OLE-сервером Automation Manager управляет как объектом Stub для получения пакетов данных от OLE-контроллера, так и объектом Proxy для имитации наличия OLE-контроллера на этом компьютере. Таким образом для OLE-cepвера создаются все условия, чтобы он не ощущал «одиночества» от отсутствия OLE-контроллера на том же самом компьютере,
Сервер OLE Visual FoxPro 5.0 поддерживает обратные связи. Вы можете использовать метод на сервере, который будет получать ссылку на объект от OLE-контроллера как один из параметров. Эта возможность позволяет устанавливать асинхронную связь с сервером, если эта связь не может быть установлена немедленно по причине выполнения сервером какого-то длительного процесса.
В этом случае на сервере, который будет, например, называться Processor (в Регистр Windows — MyServer.Processor) должен быть описан класс:
DEFINE CLASS Processor AS Custom OLEPUBLIC
oObjRef = ""
PROCEDURE SetupRef (oRef)
This.oObjRef = oRef
ENDPROC
PROCEDURE DoCallBack
This.oObjRef.Notify ()
ENDPROC
ENDDEFINE
В клиентском приложении запишем:
oObjl = CREATEOBJECT ("Job")
o0bj2 - CREATEOBJECT ("MyServer .Processor")
o0bj2 . SetUpRef ( oObjl)
DEFINE CLASS Job AS Custom
PROCEDURE Notify
= MESSAGEBOX ("Задание выполнено!")
ENDPROC
ENDDEFINE
Как только на сервере вызывается метод DoCallBack, следует выполнение метода Notify объекта клиентского приложения.
Если связь с OLE-сервером происходит по компьютерной сети то на компьютере клиентского приложения должен быть установлю Automation Manager.
Первоначально Automation Manager и Remote Automation Manager были разработаны для Visual Basic 4.0 и в дальнейшем использованы в Visual FoxPro 5.0 для расширения функциональности в области разработки крупных проектов при коллективной работе с данными.
Automation Manager
Automation Manager работает в фоновом режиме, т. к. его основное предназначение заключается в управлении процессом OLE Automation в сети путем внешних процедурных вызовов. Как отмечалось выше, эти вызовы формируются за счет взаимодействия между объектами OLE Proxy и OLE Stub. Без них вы не сможете создать внешний OLE-сервер.
Automation Manager устанавливается на сервере и распределяет вызовы от объекта Proxy рабочей станции к соответствующему объекту Stub сервера. Возвращаемые значения Automation Manager направляет OLE-контроллеру через объект Stub. За Счет этого ни OLE-контроллер, ни OLE-сервер не чувствуют, что расположены на разных компьютерах.
В большинстве случаев достаточно установки Automation Manager на сервере. Однако, если приложение предусматривает наличие «обратной связи» от OLE-сервера, необходима установка Automation Manager и на клиентский компьютер. Обычно запуск Automation Manager происходит автоматически, как только система обнаруживает в этом необходимость. Если этого не произошло, одна из наиболее возможных причин — повреждение или неправильная запись в Регистре Windows.