[in, string] e [out, string] Prototype
Il prototipo di funzione seguente usa due parametri: un parametro [in, string] e un parametro [out, string].
void Analyze(
[in, string] *pszInput,
[out, string, size_is(STRSIZE)] *pszOutput);
Il primo parametro è solo [in]. Questa stringa di input viene trasmessa solo dal client al server. Il server lo usa come base per un'ulteriore elaborazione. La stringa non viene modificata e non è richiesta nuovamente dal client, pertanto non deve essere restituita al client.
Il secondo parametro, che rappresenta la risposta del medico, è solo [out]. Questa stringa di risposta viene trasmessa solo dal server al client. Le dimensioni di allocazione vengono fornite in modo che gli stub del server possano allocarne la memoria. Poiché pszOutput è un puntatore [ref], il client deve avere memoria sufficiente allocata per la stringa prima della chiamata. La stringa di risposta viene scritta in questa area di memoria quando viene restituita la routine remota.