atributo out

O atributo [out] identifica 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

function-attribute-list

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 os atributos de uso [cadeia de caracteres], [ignorar], e [context_handle].

type-specifier

Especifica um identificador de tipo ou tipo de base_type, struct, união ou enumeração . Uma especificação de armazenamento opcional pode preceder o especificador de tipo.

pointer-declarator

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

nome da função

Especifica o nome do procedimento remoto.

parameter-attribute-list

Especifica zero ou mais atributos apropriados para um tipo de parâmetro especificado. Atributos de parâmetro com o atributo [out] também podem usar o atributo direcional [out]; os atributos de campo [first_is], [last_is], [length_is], [max_is], [size_is], e [switch_type]; o atributo de ponteiro [ref], [unique], ou [ptr]; e os atributos de uso [context_handle] e [cadeia de caracteres]. O atributo de uso [ignorar] 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 Atributos de matriz e Sized-Pointer, matrizes e 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 deve ser passado de volta do procedimento chamado para o procedimento de chamada.

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

Um atributo relacionado, [in], 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 [in]-only, [out]-only 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 o ponteiro/parâmetros de nível superior deve sempre apontar para o armazenamento válido e, portanto, não pode ser NULL, [fora] não pode ser aplicado a ponteiros [exclusivos] ou [ptr] de nível superior. Parâmetros [exclusivos] ou [ptr] ponteiros devem ser parâmetros [in] ou [in, out].

Exemplos

HRESULT MyFunction([out] short * pcount);

Confira também

Matrizes

Tipos base MIDL

retorno de chamada

const

context_handle

Enum

first_is

Ignorar

Em

last_is

length_is

Local

max_is

ptr

ref

size_is

string

Struct

switch_type

União

Único