Imported Parameter Conversion
Every parameter can optionally have an In, Out, or In/Out attribute. These settings describe the direction that data is intended to flow between objects, however, they have no bearing on the level of indirection used by the parameters. The interop marshaling service uses these attributes to determine how each parameter should be marshaled between managed and unmanaged code. For a detailed description of the parameter marshaling, see Interop Marshaling.