A human readable name for an object class, typically as an atom,
A globally unique identifier of a class, typically as an atom,
Where it makes sense a ProgID can be used instead of the corresponding CLSID.
A globally unique identifier of an
interface. Currently only the
'IDispatch' interface is used so you
do not have to care about this.
The human readable name of an interface, e.g.
Where it makes sense an IName can be used instead of the corresponding IID.
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 one of:
Passed as a string (BSTR)
Passed as the corresponding number
A code list is treated as a string.
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:
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), comclient_invoke_method_proc(WorkBooks, add), comclient_release(WorkBooks)