out (attributo)

L'attributo [out] identifica i parametri del puntatore restituiti dalla routine chiamata alla routine chiamante (dal server al client).

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

Parametri

function-attribute-list

Specifica zero o più attributi che si applicano alla funzione. Gli attributi di funzione validi sono [callback], [local]; l'attributo puntatore [ref], [unique]o [ptr]; e gli attributi di utilizzo [string], [ignore], e [context_handle].

type-specifier

Specifica un base_type, uno struct, un'unione o un tipo di enumerazione o un identificatore di tipo. Una specifica di archiviazione facoltativa può precedere l'identificatore di tipo.

puntatore-dichiaratore

Specifica zero o più dichiaratori del puntatore. Un dichiaratore di puntatore è lo stesso del dichiaratore del puntatore usato in C; viene costruito da * designator, modificatori come per lontano e qualificatore const.

function-name

Specifica il nome della routine remota.

parameter-attribute-list

Specifica zero o più attributi appropriati per un tipo di parametro specificato. Gli attributi dei parametri con l'attributo [out] possono anche accettare l'attributo direzionale [out]; gli attributi del campo [first_is], [last_is], [length_is], [max_is], [size_is], e [switch_type]; l'attributo puntatore [ref], [unique]o [ptr]; e gli attributi di utilizzo [context_handle] e [string]. L'attributo di utilizzo [ignore] non può essere usato come attributo di parametro. Separare più attributi con virgole.

Dichiaratore

Specifica i dichiaratori standard, ad esempio identificatori, dichiaratori di puntatore e dichiaratori di matrice. Per altre informazioni, vedere Array e Sized-Pointer Attributi, matrici e matricie puntatori. Il dichiaratore di parametro nel dichiaratore di funzione, ad esempio il nome del parametro, è facoltativo.

Commenti

L'attributo [out] indica che un parametro che funge da puntatore e i relativi dati associati in memoria devono essere passati dalla routine chiamata alla routine chiamante.

L'attributo [out] deve essere un puntatore. I compilatori IDL DCE richiedono la presenza di un elemento esplicito * come dichiaratore di puntatore nella dichiarazione del parametro. Microsoft IDL offre un'estensione che elimina questo requisito e consente una matrice o un tipo di puntatore definito in precedenza.

Un attributo correlato, [in], indica che il parametro viene passato dalla routine chiamante alla routine chiamata. Gli attributi [in] e [out] specificano la direzione in cui vengono passati i parametri. Un parametro può essere definito come [in]-only, [out]-only o [in, out].

Si presuppone che un parametro [out]-only sia indefinito quando viene chiamata la routine remota e la memoria per l'oggetto viene allocata dal server. Poiché il puntatore/i parametri di primo livello deve sempre puntare all'archiviazione valida e pertanto non può essere NULL, [out] non può essere applicato ai puntatori [unique] o [ptr] di primo livello. I parametri [unique] o [ptr] devono essere [in] o [in, out] parametri.

Esempi

HRESULT MyFunction([out] short * pcount);

Vedere anche

Matrici

Tipi di base MIDL

callback

const

context_handle

Enum

first_is

Ignorare

Pollici

last_is

length_is

Locale

max_is

Ptr

Ref

size_is

string

Struct

switch_type

Unione

Unico