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]; attributo puntatore [ref], [unique]o [ptr]; e gli attributi di utilizzo [string], [ignore]e [context_handle].

identificatore di tipo

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

puntatore dichiaratore

Specifica zero o più dichiaratori puntatori. Un dichiaratore puntatore è lo stesso del dichiaratore puntatore usato in C; viene costruito dal designatore *, modificatori come la lontano e il qualificatore const.

nome funzione

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]; attributo puntatore [ref], [unique]o [ptr]; e gli attributi di utilizzo [context_handle] e [string]. Impossibile usare l'attributo di utilizzo [ignore] 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 Matrice e Sized-Pointer attributi, matrici e matrici e puntatori. Il dichiaratore di parametri nel dichiaratore di funzioni, 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 procedura chiamata alla procedura chiamante.

L'attributo [out] deve essere un puntatore. I compilatori IDL DCE richiedono la presenza di un puntatore esplicito * come dichiaratore di puntatore nella dichiarazione di 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 non sia definito quando la routine remota viene chiamata e la memoria per l'oggetto viene allocata dal server. Poiché i parametri/puntatori di primo livello devono sempre puntare all'archiviazione valida e pertanto non possono essere NULL, [out] non possono essere applicati ai puntatori [univoci] di primo livello o [ptr]. I parametri [univoci] o [ptr] devono essere parametri [in] o [in] o [in, out].

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

locali

max_is

ptr

Ref

size_is

Stringa

Struct

switch_type

Unione

Unico