[in, String ] et [ out, prototype de chaîne ]

Le prototype de fonction suivant utilise deux paramètres : un [ dansun paramètre de chaîne ] et un [ paramètre de chaîne out ] .

void Analyze(
    [in, string]                       *pszInput,
    [out, string, size_is(STRSIZE)]    *pszOutput);

Le premier paramètre est [ dans ] uniquement. Cette chaîne d’entrée est uniquement transmise à partir du client vers le serveur. Le serveur l’utilise comme base pour un traitement ultérieur. La chaîne n’est pas modifiée et n’est pas requise à nouveau par le client, il n’est donc pas nécessaire de la retourner au client.

Le deuxième paramètre, représentant la réponse du médecin, est [ uniquement sortant ] . Cette chaîne de réponse est uniquement transmise du serveur au client. La taille d’allocation est fournie afin que les stubs de serveur puissent allouer de la mémoire à celle-ci. Étant donné que pszOutput est un [ pointeur ref ] , le client doit disposer de suffisamment de mémoire allouée pour la chaîne avant l’appel. La chaîne de réponse est écrite dans cette zone de mémoire lorsque la procédure distante retourne.