DOCUMENT:Q155083 27-JUL-2000 [foxpro] TITLE :INFO: Benefits and Uses of Automation in Visual FoxPro Servers PRODUCT :Microsoft FoxPro PROD/VER:WINDOWS:5.0 OPER/SYS: KEYWORDS:kb3rdparty kbinterop kbAutomation kbvfp500 ====================================================================== ------------------------------------------------------------------------------- The information in this article applies to: - Microsoft Visual FoxPro for Windows, version 5.0 ------------------------------------------------------------------------------- SUMMARY ======= Visual FoxPro for Windows version 5.0 introduces the capability of making a Visual FoxPro application an Automation Server. It also contains a program named "Automation Manager" and another named "RemAuto Connection Manager." This article discusses the purpose of these facilities, but does not contain "how to" information. MORE INFORMATION ================ The capability of Visual FoxPro for Windows version 5.0 to make a Visual FoxPro application an Automation Server leads to such questions as "What are the benefits in creating an Automation Server?" and "What can users do with the application that they couldn't do before?" Another question prompted by this new capability is "What are those two menu options in the Visual FoxPro 5.0 program group named "Automation Manager" and "RemAuto Connection Manager?" Benefits and Uses of Automation Server -------------------------------------- The primary advantage of having Automation Servers is that any application that is an ActiveX (previously called OLE) Controller (client) can create an instance of a Visual FoxPro server application and access its properties and methods. Therefore, applications such as Microsoft Excel, Microsoft Access, or an application written in Visual Basic or Visual C++ can issue a CreateObject() that specifies a Visual FoxPro Automation Server. That server may be Visual FoxPro, with its generous, powerful set of properties and methods, or it may be a Visual FoxPro application that has additional methods and properties originated by the application developer. The server may be instructed to extract and process data that is then retrieved by the client, Microsoft Excel for instance, under client control. Alternatively, the client may be another Visual FoxPro application that assigns a task to an Automation Server with the instruction "call me back when you've finished." Then the client goes on to do other work while the server works asynchronously and independently. Visual FoxPro applications can be either .EXE or .DLL servers. Developers can choose to create a DLL (in-process) server to run in the same process space as the client itself. Or they can choose to create an EXE that runs as a separate process, either on the client's machine or remotely. NOTE: Only EXEs can be used for remote automation. An advantage to both the developer and the user is that these servers can be stored and executed on remote machines without the client being aware of the fact that the application is remote. If the client issues CreateObject(), automation proxies provide the application interfaces between machines and the Registry provides the data that allows Microsoft ActiveX to link the client and the server automatically. The Automation Manager ---------------------- The new Automation Manager is required for doing remote automation. It serves as the stub used on the server-side of a remote machine to marshal and handle the remote procedure calls (RPCs). In addition, it also provides proxy services on Automation Callbacks made to the client. In this case, the Automation Manager must also be installed on the client system. A callback occurs when the client passes an object to the server and the server invokes a method or sets a property on it. Specifically, the client application defines a class and instantiates an object from that class. It then passes that object's reference to the server. For instance, the object has a method called "jobdone." Jobdone tests a property named "done" to see if it is true and, if it is, turns the background of a textbox to magenta and plays a .WAV file to alert the operator. This all happens on the client machine. The server receives the object reference from the client and then proceeds to execute the SQL Select, monitor the COM port, or whatever. When the server has completed its job, it sets the "done" property of the client's callback object to .T. and calls the callback object's "jobdone" method. The client application is free to run its own application without waiting for the server, until the server provides the callback. RemAuto Connection Manager -------------------------- The RemAuto (Remote Automation) Connection Manager allows you to setup a connection to the remote automation server. It works by displaying all local servers and allows you to redirect a server to a remote one that you specify with a network address, protocol, and permissions. Visual FoxPro 5.0 also has a tool called CLIREG32.EXE that allows you to register a remote automation server without the server being physically located on the current (client) machine. The CLIREG32.EXE learns about the remote server and registers the access to it from information passed to the client system in a .VBR file and a .TLB file that are created when the server application is generated through Visual FoxPro 5.0's Project Manager. In the Visual FoxPro for Windows 5.0 directory folder there is a "Samples\Servers" folder containing a local server application (Gopher) and a remote automation example named PoolMgr. The project for each should be rebuilt. The Gopher application should be built as a DLL, while the PoolMgr application should be built as an EXE. Additional query words: OLE Automation ====================================================================== Keywords : kb3rdparty kbinterop kbAutomation kbvfp500 Technology : kbVFPsearch kbAudDeveloper kbVFP500 Version : WINDOWS:5.0 Issue type : kbinfo ============================================================================= THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY. Copyright Microsoft Corporation 2000.