Type-Conversion and Marshaling ACF Attributes

Use these attributes to control how your data is transmitted over the wire:

Attribute Usage
encode
decode
Instruct MIDL to expose the type or procedure serialization (pickling) routines it generates for the stubs. Your client application can call those routines to marshal data by value.
represent_as Use to specify how a data type will be represented on the wire, when the exact nature of a client's data type is unimportant to the server (because it only needs the data itself and not the actual structure), or the actual client type is unknown to MIDL at compile time. For example, if your client application uses a linked list of floating-point numbers, you could specify that the wire-representation of that list be an array of type float.
user_marshal Lets you control how data is transmitted over the wire by implementing your own marshaling routines. This attribute is useful if you have a data type that is unknown to MIDL or if you are passing information between big-endian and little-endian platforms.

The DCE marshaling attributes in_line and out_of_line are not implemented in Microsoft RPC. The MIDL compiler automatically marshals complex data types out-of-line.