[in, string] e [out, string] Protótipo
O protótipo de função a seguir usa dois parâmetros: um parâmetro [em, cadeia de caracteres] e um parâmetro [fora, cadeia de caracteres] .
void Analyze(
[in, string] *pszInput,
[out, string, size_is(STRSIZE)] *pszOutput);
O primeiro parâmetro é [em] apenas. Essa cadeia de caracteres de entrada só é transmitida do cliente para o servidor. O servidor o usa como base para processamento adicional. A cadeia de caracteres não é modificada e não é necessária novamente pelo cliente, portanto, ela não precisa ser retornada ao cliente.
O segundo parâmetro, que representa a resposta do médico, é [] apenas. Essa cadeia de caracteres de resposta só é transmitida do servidor para o cliente. O tamanho da alocação é fornecido para que os stubs do servidor possam alocar memória para ele. Como pszOutput é um ponteiro [ref], o cliente deve ter memória suficiente alocada para a cadeia de caracteres antes da chamada. A cadeia de caracteres de resposta é gravada nessa área de memória quando o procedimento remoto é retornado.