A function of four arguments.
A generalized boolean, default value false.
The coclass to use, or
A Lisp object.
A list of "source" interface names, or
args is an array containing the arguments to the method ("event"). This varies according to the method. For out or in-out arguments, it is possible to return a value by setting the corresponding value in the array.
If coclass is
nil, it uses the first coclass in the type library that has the type of interface as a default interface, or if there is no such coclass, the first coclass that has this interface. In most of the cases this is the desired coclass.
If coclass is non-nil, it specifies which coclass to use. It can be a ProgID (for example
"Word.Application") or a coclass name or a coclass GUID. If the
i-dispatch interface was created with create-instance, then the argument to create-instance is the correct coclass to use.
If source-names is non-nil, then it is a list of "source" interface names to use, and all and coclass are ignored. If source-names is nil, then
set-i-dispatch-event-handler calls get-i-dispatch-source-names to calculate the "source" interface names.
sinks is a list of objects representing the connections that
set-i-dispatch-event-handler made. When the events are no longer needed, they can be released by disconnect-standard-sink.
set-i-dispatch-event-handlercan be called more than once on the same
i-dispatch, and this generates new connections each time. Therefore, if it is called more than once such that it uses the same source names, events will arrive more than once.
set-i-dispatch-event-handlerrepeatedly, then it is most efficient to call get-i-dispatch-source-names once and pass the result source-names to
LispWorks COM/Automation User Guide and Reference Manual - 14 Feb 2015