call-dispatch-method spec arg * => values
spec ::= ( dispinterface-ptr dispinterface-name method-name )
The interface pointer and a specification of the method to be called.
A form which is evaluated to yield a COM
i-dispatch
interface pointer.
A symbol which names the Automation interface. It is not evaluated.
A symbol which names the method. It is not evaluated.
Arguments to the method (see Data conversion when calling Automation methods for details).
Values from the method (see Data conversion when calling Automation methods for details).
The
call-dispatch-method
macro is used to invoke an Automation method from Lisp. The
dispinterface-ptr
should be a COM interface pointer for the
i-dispatch
interface. The appropriate Automation method, chosen using
dispinterface-name
and
method-name
, is invoked after evaluating each
arg
. The
arg
s must be values that are suitable for the method and of types compatible with Automation. The values returned are as specified by the method signature. See Data conversion when calling Automation methods for more details. If there is no Automation method with the given
method-name
, then a property getter with the same name is called if it exists, otherwise an error is signaled. The
setf
form of
call-dispatch-method
can be used to call property setter methods.
For example, in order to invoke the
ReFormat
method of a
MyDocument
interface pointer
(call-dispatch-method (doc my-document re-format))