Share via


Typedef, Enum, Union, and Struct Attributes

 

The latest version of this topic can be found at 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.
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

Attributes by Usage