Attributes are keywords that specify characteristics of the data in the remote procedure calls and characteristics of the interface. Most attributes appear within square brackets in the IDL and ACF files. The following table briefly describes categories of MIDL attributes that can appear in the IDL file:
Attribute category | Attributes | Description |
---|---|---|
Array attributes | max_is, size_is, first_is, last_is, length_is | Apply to the first dimension of an array. |
Directional attributes | in, out | Describe the direction in which the parameter is transmitted on the network; either or both in and out can be applied. |
Field attributes | switch_is, array attributes, pointer attributes, string, ignore |
Apply to struct or union members. |
Function attributes | callback, call_as, idempotent, local, maybe, optimize, pointer attributes, usage attributes |
Apply to the return type and characteristics of the function. |
Interface attributes | uuid, object, local, version, pointer_default, endpoint | Apply to the interface as a whole. |
Parameter attributes | Directional attributes, array attributes, pointer attributes, switch_is, string, context_handle | Describe the network-transmission characteristics of function parameters. |
Pointer attributes | ref, unique, iid_is, ptr | Describe characteristics of the pointer and its data. |
Type attributes | handle, ms_union, v1_enum, transmit_as, switch_type, represent_as pointer attributes, field attributes |
Apply to a type definition. |
Usage attributes | string, ignore, context_handle | Describe how the data object is used. |