




 
Defines an implementation class for an Automation component that supports the Collection protocol.
define-automation-collection 
class-name
 (
superclass-name*
)
                             (
slot-specifier*
) 
class-option*
A symbol naming the class to define.
A symbol naming a superclass to inherit from.
A slot description as used by 
defclass
.
An option as used by 
defclass
.
The macro 
define-automation-collection
 defines a 
standard-class
 which is used to implement an Automation component that supports the Collection protocol. Normal 
defclass
 inheritance rules apply for slots and Lisp methods.
Each 
superclass-name
 argument specifies a direct superclass of the new class, which can be any 
standard-class
 provided that 
standard-automation-collection
 is included somewhere in the overall class precedence list. This standard class provides a framework for the collection class.
slot-specifier
s are standard 
defclass
 slot definitions.
class-option
s are standard 
defclass
 options. In addition the following options are recognized:
This option is required. The component will implement the 
interface-name
, which must be an Automation Collection interface, containing (at least) the standard properties 
Count
 and 
_NewEnum
. The macro will define an implementation of these methods using information from the instance of the class to count and iterate.
(:item-method item-method-name *)
When specified, a COM method named 
item-method-name
 will be defined that will look up items using the 
item-lookup-function
 from the instance.
If not specified, the method will be called 
Item
. For Collections which do not have an item method, call 
nil
 as the 
item-method-name.