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, pass
nil
as the
item-method-name.