- A human readable name for an object class, typically as an atom,
- CLSID (Class Identifier)
- A globally unique identifier of a class, typically as an atom,
Where it makes sense a ProgID can be used instead of the
- IID (Interface Identifier)
- A globally unique identifier of an
interface. Currently only the
'IDispatch' interface is used so you
do not have to care about this.
- IName (Interface Name)
- The human readable name of an interface, e.g.
Where it makes sense an IName can be used instead of the
- A COM-object (or rather a pointer to an interface).
- A value that can be passed from COM to SICStus Prolog. Currently numeric types,
booleans (treated as 1 for
true, 0 for
and COM objects.
- A value that can be passed as an input argument to COM, currently
- Passed as a string (BSTR)
- Passed as the corresponding number
- A code-list is treated as a string.
- COM object
- A compound term referring to a COM object.
- Other compound terms are presently illegal but will be used to extend
the permitted types.
- Denotes a single method and its arguments. As an example, to call
the method named
foo with the arguments
42 and the
"bar" the SimpleCallSpec would be the compound
foo(42,'bar') or, as an alternative,
The arguments of the compound term are treated as follows:
- See above
- The argument is assumed to be output. The variable is bound to
the resulting value when the method returns.
- The argument is assumed to be input/output. The value of the
mutable is passed to the method and when the method returns the
mutable is updated with the corresponding return value.
- Either a SimpleCallSpec or a list of CallSpecs. If it is a
list then all but the last SimpleCallSpec are assumed to denote
method calls that return a COM-object. So for instance the VB statement
app.workbooks.add can be expressed either as:
comclient_invoke_method_proc(App, [workbooks, add])
comclient_invoke_method_fun(App, workbooks, WorkBooks),
Send feedback on this subject.