atributo out

O [ ] atributo out identifica os parâmetros de ponteiro que são retornados do procedimento chamado para o procedimento de chamada (do servidor para o cliente).

[ [function-attribute-list] ] type-specifier [pointer-declarator] function-name(
    [ out [ , parameter-attribute-list ] ] type-specifier [declarator]
    , ...
);

Parâmetros

lista de atributos de função

Especifica zero ou mais atributos que se aplicam à função. Os atributos de função válidos são [ retorno de chamada ] , [ local ] ; o atributo de ponteiro [ ref ] , [ Unique ] ou [ PTR ] ; e a cadeia de caracteres de atributos de uso [ ] , [ ignorar ] e [ _ identificador de contexto ] .

especificador de tipo

Especifica um tipo de base _, struct, Unionou tipo de Enumeração ou identificador de tipo. Uma especificação de armazenamento opcional pode preceder o especificador de tipo.

Declarador de ponteiro

Especifica zero ou mais declaradores de ponteiro. Um Declarador de ponteiro é o mesmo que o Declarador de ponteiro usado em C; Ele é construído a partir do * designador, modificadores, como distante e o qualificador const.

nome da função

Especifica o nome do procedimento remoto.

lista de atributos de parâmetro

Especifica zero ou mais atributos apropriados para um tipo de parâmetro especificado. Atributos de parâmetro com o [ atributo out ] também podem pegar o atributo direcional [ out ] ; os atributos Field [ First _ são ] , [ Last _ is ] , [ length _ is ] , [ Max _ is ] , [ Size _ is ] e [ switch _ Type ] ; o atributo ponteiro [ ref ] , [ Unique ] ou [ PTR ] ; e o [ _ identificador de contexto e a cadeia de ] [ caracteres ] de atributos de uso. O atributo de uso [ ignore ] não pode ser usado como um atributo de parâmetro. Separe vários atributos com vírgulas.

Declarador

Especifica os declaradores padrão, como identificadores, declaradores de ponteiro e declaradores de matriz. Para obter mais informações, consulte matriz e Sized-Pointer atributos, matrizese matrizes e ponteiros. O Declarador de parâmetro no Declarador de função, como o nome do parâmetro, é opcional.

Comentários

O [ ] atributo out indica que um parâmetro que atua como um ponteiro e seus dados associados na memória são passados de volta do procedimento chamado para o procedimento de chamada.

O [ atributo out ] deve ser um ponteiro. Os compiladores de IDL do DCE exigem a presença de um * Declarador de ponteiro explícito na declaração de parâmetro. O Microsoft IDL oferece uma extensão que descarta esse requisito e permite uma matriz ou um tipo de ponteiro definido anteriormente.

Um atributo relacionado, [ no ] , indica que o parâmetro é passado do procedimento de chamada para o procedimento chamado. Os [ ] atributos in e [ out ] especificam a direção na qual os parâmetros são passados. Um parâmetro pode ser definido como [ somente entrada, ] [ somente out ] ou [ in, out ] .

Um [ ] parâmetro out-only é considerado indefinido quando o procedimento remoto é chamado e a memória do objeto é alocada pelo servidor. Como os parâmetros/ponteiros de nível superior sempre devem apontar para um armazenamento válido e, portanto, não podem ser nulos, [ ] não podem ser aplicados a ponteiros de nível superior [ ] ou [ PTR ] . Parâmetros que são [ ] ponteiros exclusivos ou [ PTR ] devem estar [ no ] ou [ nos parâmetros de saída ] .

Exemplos

HRESULT MyFunction([out] short * pcount);

Confira também

Storage

Tipos base de MIDL

retorno de chamada

const

identificador de contexto _

enumera

primeiro _ é

ignorar

no

último _ é

comprimento _ é

local

máximo _ é

ptr

ref

o tamanho _ é

string

struct

tipo de comutador _

unida

diferente