A symbol bound to each item in the collection in turn.
A form which is evaluated to yield a COM i-dispatch
interface pointer that implements the collection protocol.
A form to be evaluated.
The do-collection-items
macro executes each form in turn, with item bound to each item of the collection.
Note that for collections whose items are interface pointers, the forms must arrange for each pointer to be released when no longer needed. The collection should be a COM interface pointer for an i-dispatch
interface that implements the Collection protocol. The items are converted to Lisp as specified in Data conversion when calling Automation methods.
For example, to iterate over the Table
objects from the Tables
collection of a MyDocument
interface pointer
(with-temp-interface (tables)
(call-dispatch-get-property
(doc my-document tables))
(do-collection-items (table tables)
(inspect-the-table table)
(release table)))
LispWorks COM/Automation User Guide and Reference Manual - 23 Mar 2017