## OLE Bank-Client

This project contains an example program that demonstrates the use of custom COM interfaces in Functional Developer. It is the client part of the OLE Bank Client/Server example. It uses the Functional Developer COM library to access the Windows COM functionality. It uses the DUIM library for its user interface.

The COM library is documented in the Functional Developer "OLE, COM, ActiveX and DBMS" reference manual.

### Building and Testing the Application

Before you can run this example, you must first build and register the bank server, as described in the server README file.

Then to build the client, open the bank-client project and press the "Build" buttons on the respective Project Windows.

Now, start the client by selecting "Project>Start" or pressing the "Start/Resume" button in the tool bar on the Project Window. The client will first start the server, which will connect to the database and then show its GUI (a status window titled "Bank Server"). Once the server is running, the client will present its GUI (a window titled "Bank Client") and await your commands.

Now you can issue commands from the Bank Client window, such as "Open New Account..." from the "Bank" menu. You can issue commands which modify the selected account from the "Account" menu.

In the server, you can check the "Active Log" box to monitor requests from the client.

### Program Internals

The client application is composed of the following parts:

client-library.dylan
  library and module definitions.
client.dylan
  client COM interfaces access routines
client-frame.dylan
  client GUI
server-main.dylan
  client initialization and main entry point.
project bank-interface
  A subproject containing the definitions of all the COM interfaces used in this example. Since the server is written in Dylan, we simply use the same library the server used to define the protocol. (If the server hadn't been written in Dylan, we would use a Dylan library automatically generated by the New Project wizard's "Interface to COM Type Library" support.)