Adobe ColdFusion 8

Creating and using COM objects

You must use the cfobject tag or the CreateObject function to create an instance of the COM object (component) in ColdFusion before your application pages can invoke any methods or assign any properties in the component.

For example, the following code uses the cfobject tag to create the Windows CDO (Collaborative Data Objects) for NTS NewMail object to send mail:

<cfobject type="COM"
        action="Create"
        name="Mailer"
        class="CDONTS.NewMail">

The following line shows how to use the corresponding CreateObject function in CFScript:

Mailer = CreateObject("COM", "CDONTS.NewMail");

The examples in later sections in this chapter use this object.

Note: CDO is installed by default on all Windows NT and 2000 operating systems that have installed the Microsoft SMTP server. In Windows NT Server environments, the SMTP server is part of the Option Pack 4 setup. In Windows 2000 Server and Workstation environments, it is bundled with the operating system. For more information on CDO for NTS, see http://msdn.microsoft.com/library/default.asp?URL=/library/psdk/cdo/_olemsg_overview_of_cdo.htm.

The CDO for NTS NewMail component includes a number of methods and properties to perform a wide range of mail-handling tasks. (In the OLE/COM Object Viewer, methods and properties might be grouped together, so you could find it difficult to distinguish between them at first.)

The CDO for NTS NewMail object includes the following properties:

Body [ String ]
Cc[ String ]
From[ String ]
Importance[ Long ]
Subject[ String ]
To[ String ]

You use these properties to define elements of your mail message. The CDO for NTS NewMail object also includes a send method which has a number of optional arguments to send messages.

Connecting to COM objects

The action attribute of the cfobject tag provides the following two ways to connect to COM objects:

Create method: (cfobject action="Create") Takes a COM object, typically a DLL, and instantiates it prior to invoking methods and assigning properties.

Connect method: (cfobject action="Connect") Links to an object, typically an executable, that is already running on the server.

You can use the optional cfobject context attribute to specify the object context. If you do not specify a context, ColdFusion uses the setting in the Registry. The following table describes the context attribute values:

Attribute value

Description

InProc

An in-process server object (typically a DLL) that is running in the same process space as the calling process, such as ColdFusion.

local

An out-of-process server object (typically an EXE file) that is running outside the ColdFusion process space but running locally on the same server.

remote

An out-of-process server object (typically an EXE file) that is running remotely on the network. If you specify remote, you must also use the server attribute to identify where the object resides.