In parameters are parameters that a receiving function cannot modify, either because of a language restriction or because the function definition defines it as such.
In parameters include:
The return value of a function is an out parameter. Other parameters might be out parameters as well, depending on how you specify the function. Non-constant references and pointers are typical values for out parameters.
In-out parameters are parameters that are used as both in and out parameters. The receiving function uses the value and changes it on return. Any parameter type that can be an out parameter can also be an in-out parameter.