Client Requirements

Vtable-bound clients are clients that can talk to an interface directly. They include Visual Basic client programs in which you Dim a variable as an interface type (or as a class—VB interprets this as a request to use the default interface), Visual C++ clients, Delphi clients, and VBA clients (such as Word and Excel scripts). Scripting clients are clients that do not use interfaces directly. They include ASP scripts, client-side VBScript or JScript, Windows Script Host scripts, and so on. The requirements for these two types of clients are different. The former group has more stringent requirements than the latter.

Scripting Clients

Let’s begin with the easy group—the scripting clients. Scripting client code looks like the following:

Dim Checking
Set Checking = Server.CreateObject("BankServer.Checking")
Call Checking.MakeDeposit(500)

But it may also look like the following:

<object id="Acct" classid=clsid:C5D33E92-591E-4D3B-B796-1918DA093531></object>
<SCRIPT Language=VBScript>
Call Acct.MakeDeposit(500)

If you examine the first example, you will notice some things that need to stay the same in the next version of the component for the code to continue to work unchanged. One thing that must stay the same is the ProgID, BankServer.Checking. Remember that the ProgID comes from the project name plus the class name. The second dependency is the name of the function MakeDeposit. How about the parameter types? The only datatype that scripting clients let you ...

Get COM+ Programming with Visual Basic now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.