All Manuals > COM/Automation User Guide and Reference Manual > 4 Automation Reference Entries

define-automation-collection Macro

Summary

Defines an implementation class for an Automation component that supports the Collection protocol.

Package

com

Signature

define-automation-collection class-name ({superclass-name}*) ({slot-specifier}*) {class-option}*

Arguments
class-name
A symbol naming the class to define.
superclass-name
A symbol naming a superclass to inherit from.
slot-specifier
A slot description as used by defclass.
class-option
An option as used by defclass.
Description

The macro define-automation-collection defines a standard-class named by class-name 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-specifiers are standard defclass slot definitions.

class-options are standard defclass options. In addition the following options are recognized:

(:interface interface-name)

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.

Examples
See also

define-automation-component
standard-automation-collection


COM/Automation User Guide and Reference Manual - 01 Dec 2021 19:38:41