COM Map Macros

These macros define COM interface maps.

BEGIN_COM_MAP

Marks the beginning of the COM interface map entries.

COM_INTERFACE_ENTRY

Enters interfaces into the COM interface map.

COM_INTERFACE_ENTRY2

Use this macro to disambiguate two branches of inheritance.

COM_INTERFACE_ENTRY_IID

Use this macro to enter the interface into the COM map and specify its IID.

COM_INTERFACE_ENTRY2_IID

Same as COM_INTERFACE_ENTRY2, except you can specify a different IID.

COM_INTERFACE_ENTRY_AGGREGATE

When the interface identified by iid is queried for, COM_INTERFACE_ENTRY_AGGREGATE forwards to punk.

COM_INTERFACE_ENTRY_AGGREGATE_BLIND

Same as COM_INTERFACE_ENTRY_AGGREGATE, except that querying for any IID results in forwarding the query to punk.

COM_INTERFACE_ENTRY_AUTOAGGREGATE

Same as COM_INTERFACE_ENTRY_AGGREGATE, except if punk is NULL, it automatically creates the aggregate described by the clsid.

COM_INTERFACE_ENTRY_AUTOAGGREGATE_BLIND

Same as COM_INTERFACE_ENTRY_AUTOAGGREGATE, except that querying for any IID results in forwarding the query to punk, and if punk is NULL, automatically creating the aggregate described by the clsid.

COM_INTERFACE_ENTRY_BREAK

Causes your program to call DebugBreak when the specified interface is queried for.

COM_INTERFACE_ENTRY_CACHED_TEAR_OFF

Saves the interface-specific data for every instance.

COM_INTERFACE_ENTRY_TEAR_OFF

Exposes your tear-off interfaces.

COM_INTERFACE_ENTRY_CHAIN

Processes the COM map of the base class when the processing reaches this entry in the COM map.

COM_INTERFACE_ENTRY_FUNC

A general mechanism for hooking into ATL's QueryInterface logic.

COM_INTERFACE_ENTRY_FUNC_BLIND

Same as COM_INTERFACE_ENTRY_FUNC, except that querying for any IID results in a call to func.

COM_INTERFACE_ENTRY_NOINTERFACE

Returns E_NOINTERFACE and terminates COM map processing when the specified interface is queried for.

END_COM_MAP

Marks the end of the COM interface map entries.

See Also

Other Resources

ATL Macros

COM Map Global Functions