Typedef, Enum, Union, and Struct Attributes

The following attributes apply to the typedef, struct, and enum C++ keywords.

typedef

Attribute

Description

case

Used with the switch_type attribute in a union.

custom

Lets you define your own attribute.

export

Causes a data structure to be placed in the .idl file.

first_is

Specifies the index of the first array element to be transmitted.

helpcontext

Specifies a context ID that lets the user view information about this element in the Help file.

helpfile

Sets the name of the Help file for a type library.

helpstring

Specifies a character string that is used to describe the element to which it applies.

library_block

Places a construct inside the .idl file's library block.

ptr

Designates a pointer as a full pointer.

public

Ensures that a typedef will go into the type library even if it is not referenced from within the .idl file.

ref

Identifies a reference pointer.

switch_is

Specifies the expression or identifier acting as the union discriminant that selects the union member.

switch_type

Identifies the type of the variable used as the union discriminant.

unique

Specifies a unique pointer.

wire_marshal

Specifies a data type that will be used for transmission instead of an application-specific data type.

enum

Attribute

Description

custom

Lets you define your own attribute.

export

Causes a data structure to be placed in the .idl file.

uuid

Specifies the unique ID for a class or interface.

v1_enum

Directs that the specified enumerated type be transmitted as a 32-bit entity, rather than the 16-bit default.

union

Attribute

Description

custom

Lets you define your own attribute.

export

Causes a data structure to be placed in the .idl file.

first_is

Specifies the index of the first array element to be transmitted.

last_is

Specifies the index of the last array element to be transmitted.

length_is

Specifies the number of array elements to be transmitted.

max_is

Designates the maximum value for a valid array index.

size_is

Specifies the size of memory allocated for sized pointers, sized pointers to sized pointers, and single- or multidimensional arrays.

unique

Specifies a unique pointer.

uuid

Specifies the unique ID for a class or interface.

Nonencapsulated union

Attribute

Description

ms_union

Controls the network data representation alignment of nonencapsulated unions.

no_injected_text

Prevents the compiler from injecting code as a result of attribute use.

struct

Attribute

Description

aggregatable

Indicates that the class supports aggregation.

aggregates

Indicates that a control aggregates the target class.

appobject

Identifies the coclass as an application object, which is associated with a full .exe application, and indicates that the functions and properties of the coclass are globally available in this type library.

coclass

Creates an ActiveX control.

com_interface_entry

Adds an interface entry to a COM map.

control

Specifies that the user-defined type is a control.

custom

Lets you define your own attribute.

db_column

Binds a specified column to the rowset.

db_command

Creates an OLE DB command.

db_param

Associates the specified member variable with an input or output parameter and delimits the variable.

db_source

Creates a connection to a data source.

db_table

Opens an OLE DB table.

default

Indicates that the custom or dispinterface defined within a coclass represents the default programmability interface.

defaultvtable

Defines an interface as the default vtable interface for a control.

event_receiver

Creates an event receiver.

event_source

Creates an event source.

export

Causes a data structure to be placed in the .idl file.

first_is

Specifies the index of the first array element to be transmitted.

hidden

Indicates that the item exists but should not be displayed in a user-oriented browser.

implements_category

Specifies implemented component categories for the class.

last_is

Specifies the index of the last array element to be transmitted.

length_is

Specifies the number of array elements to be transmitted.

max_is

Designates the maximum value for a valid array index.

perf_object

Adds Performance monitor object support to a class.

perfmon

Adds performance monitor support to a class.

requires_category

Specifies the required component categories of the target class.

size_is

Specifies the size of memory allocated for sized pointers, sized pointers to sized pointers, and single- or multidimensional arrays.

source

On a class, specifies the COM object's source interfaces for connection points. On a property or method, indicates that the member returns an object or VARIANT that is a source of events.

threading

Specifies the threading model for a COM object.

unique

Specifies a unique pointer.

uuid

Specifies the unique ID for a class or interface.

version

Identifies a particular version among multiple versions of a class.

vi_progid

Specifies a version-independent form of the ProgID.

See Also

Concepts

Attributes by Usage