[in, string] and [out, string] Prototype
The following function prototype uses two parameters: an [in, string] parameter and an [out, string] parameter.
void Analyze(
[in, string] *pszInput,
[out, string, size_is(STRSIZE)] *pszOutput);
The first parameter is [in] only. This input string is only transmitted from the client to the server. The server uses it as the basis for further processing. The string is not modified and is not required again by the client, so it does not have to be returned to the client.
The second parameter, representing the doctor's response, is [out] only. This response string is only transmitted from the server to the client. The allocation size is provided so that the server stubs can allocate memory for it. Since pszOutput is a [ref] pointer, the client must have sufficient memory allocated for the string before the call. The response string is written into this area of memory when the remote procedure returns.