Partilhar via


[in, string] e [out, string] Protótipo

O protótipo de função a seguir usa dois parâmetros: um parâmetro [in, string] e um parâmetro [out, string].

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

O primeiro parâmetro é apenas [in]. 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 é exigida novamente pelo cliente, portanto, ela não precisa ser retornada ao cliente.

O segundo parâmetro, que representa a resposta do médico, é apenas [out]. 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 retorna.