User Guide Cancel

cfobject: COM object

 

Alert:

COM/DCOM is removed in Adobe ColdFusion (2025 release)

Creates and manipulates a Component Object Model (COM) object. Invokes a registered automation server object type. For information on OLEView, and about COM and DCOM, see the Microsoft OLE Development website: www.microsoft.com.
To use this tag, provide the object's program ID or filename, the methods and properties available through the IDispatch interface, and the arguments and return types of the object's methods. For most COM objects, you can get this information with the OLEView utility.

Note:

On UNIX, the cfobject tag does not support COM objects.

Syntax

<cfobject
class = "program ID"
name = "instance name"
action = "create|connect"
context = "inproc|local|remote"
server = "server name">
type = "com"
<cfobject class = "program ID" name = "instance name" action = "create|connect" context = "inproc|local|remote" server = "server name"> type = "com"
<cfobject 
class = "program ID" 
name = "instance name" 
action = "create|connect" 
context = "inproc|local|remote" 
server = "server name"> 
type = "com"
Note:

You can specify this tag's attributes in an attributeCollection attribute whose value is a structure. Specify the structure name in the attributeCollection attribute and use the tag's attribute names as structure keys.

Using NTLM attributes

Note:

The ntlmDomain is required when authType=NTLM.

When a user is part of a domain, the ntlmDomain attribute is mandatory. When a user is not part of a domain, the ntlmDomain attribute is not mandatory.

History

Adobe ColdFusion (2025 release)

  • Removed COM. You can no longer create an object of type COM.

See also

ReleaseComObjectcfcollectioncfexecute; COM in the Developing ColdFusion Applications

Attributes

Attribute

Req/Opt

Default

Description

class

Required

 

Component ProgID for the object to invoke. When using Java stubs to connect to the COM object, the class must be the ProgID of the COM object.

name

Required

 

String; name for the instantiated component.

action

Optional

create

  • create: instantiates a COM object (typically, a DLL) before invoking methods or properties.
  • connect: connects to a COM object (typically, an EXE) running on server.

context

Optional

 

  • inproc
  • local
  • remote
    In Windows, if not specified, uses Registry setting.

server

Required if context = "Remote"

 

Server name, using Universal Naming Convention (UNC) or Domain Name Serve (DNS) convention, in one of these forms:


  • lanserver
  • lanserver
  • http://www.servername.com
  • www.servername.com
  • 127.0.0.1

type

Optional

 

Object type. The value com specifies COM objects:

Example

<h3>cfobject (COM) Example</h3>
<!--- Create a COM object as an inproc server (DLL). (class = prog-id)--->
<cfobject action = "Create"
type = "COM"
class = Allaire.DocEx1.1
name = "obj">
<!--- Call a method. Methods that expect no arguments should be called by using
empty parentheses. --->
<cfset obj.Init()>
<!--- This is a collection object. It should support, at a minimum:
Property : Count
Method : Item(inarg, outarg)
and a special property called _NewEnum
--->
<cfoutput>
This object has #obj.Count# items.
<br> <HR>
</cfoutput>
<!--- Get the 3rd object in the collection. --->
<cfset emp = obj.Item(3)>
<cfoutput>
The last name in the third item is #emp.lastname#.
<br> <HR>
</cfoutput>
<!---Loop over all the objects in the collection.--->
<p>Looping through all items in the collection:
<br>
<cfloop
collection = #obj#
item = file2>
<cfoutput>Last name: #file2.lastname# <br></cfoutput>
</cfloop>
<h3>cfobject (COM) Example</h3> <!--- Create a COM object as an inproc server (DLL). (class = prog-id)---> <cfobject action = "Create" type = "COM" class = Allaire.DocEx1.1 name = "obj"> <!--- Call a method. Methods that expect no arguments should be called by using empty parentheses. ---> <cfset obj.Init()> <!--- This is a collection object. It should support, at a minimum: Property : Count Method : Item(inarg, outarg) and a special property called _NewEnum ---> <cfoutput> This object has #obj.Count# items. <br> <HR> </cfoutput> <!--- Get the 3rd object in the collection. ---> <cfset emp = obj.Item(3)> <cfoutput> The last name in the third item is #emp.lastname#. <br> <HR> </cfoutput> <!---Loop over all the objects in the collection.---> <p>Looping through all items in the collection: <br> <cfloop collection = #obj# item = file2> <cfoutput>Last name: #file2.lastname# <br></cfoutput> </cfloop>
<h3>cfobject (COM) Example</h3> 
<!--- Create a COM object as an inproc server (DLL). (class = prog-id)---> 
<cfobject action = "Create" 
type = "COM" 
class = Allaire.DocEx1.1 
name = "obj"> 

<!--- Call a method. Methods that expect no arguments should be called by using 
empty parentheses. ---> 
<cfset obj.Init()> 

<!--- This is a collection object. It should support, at a minimum: 
Property : Count 
Method : Item(inarg, outarg) 
and a special property called _NewEnum 
---> 
<cfoutput> 
This object has #obj.Count# items. 
<br> <HR> 
</cfoutput> 

<!--- Get the 3rd object in the collection. ---> 
<cfset emp = obj.Item(3)> 
<cfoutput> 
The last name in the third item is #emp.lastname#. 
<br> <HR> 
</cfoutput> 
<!---Loop over all the objects in the collection.---> 
<p>Looping through all items in the collection: 
<br> 
<cfloop 
collection = #obj# 
item = file2> 
<cfoutput>Last name: #file2.lastname# <br></cfoutput> 
</cfloop>

Get help faster and easier

New user?