- ProgID
- A human readable name for an object class, typically as an atom, e.g.
'Excel.Application'
.
- CLSID (Class Identifier)
- A globally unique identifier of a class, typically as
an atom, e.g.
'{00024500-0000-0000-C000-000000000046}'
.
Where it makes sense a ProgID
can be used instead of the
corresponding CLSID
.
- 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.
IDispatch
.
Where it makes sense an IName
can be used instead of the
corresponding IID
.
- Object
- A COM-object (or rather a pointer to an interface).
- ComValue
- A value that can be passed from COM to SICStus. Currently numeric types,
booleans (treated as 1 for
true
, 0 for false
), strings,
and COM objects.
- ComInArg
- A value that can be passed as an in-argument to COM, currently one of:
- atom
- Passed as a string (BSTR)
- numeric
- Passed as the corresponding number
- list
- A list of char codes are treated as a string.
- compound
- Other compound terms are presently illegal but will be used to extend
the permitted types.
It is, at present, not possible to pass an object as an
argument. This restriction will be lifted.
- SimpleCallSpec
- Denotes a single method and its arguments. As an example, to call the
method named
foo
with the arguments 42
and the string
"bar"
the SimpleCallSpec
would be the compound term
foo(42,'bar')
or, as an alternative, foo(42,"bar")
.
The arguments of the compound term are treated as follows:
- ComInArg
- See above
- variable
- The argument is assumed to be an out argument. The variable is bound to
the resulting value when the method returns.
- mutable
- The argument is assumed to be an in,out argument. The value of the
mutable is passed to the method and when the method returns the mutable
is updated with the corresponding return value.
- CallSpec
- 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])
or as
comclient_invoke_method_fun(App, workbooks, WorkBooks),
comclient_invoke_method_proc(WorkBooks, add),
comclient_release(WorkBooks)