out (attributo)

L' [ attributo out ] identifica i parametri del puntatore restituiti dalla routine chiamata alla procedura 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 Pointer [ ref ] , [ Unique ] o [ ptr ] e gli attributi Usage [ String ] , [ Ignore ] e [ Context _ handle ] .

identificatore di tipo

Specifica un _ tipo di base, uno struct, un' unioneo un tipo enum o un identificatore di tipo. Una specifica di archiviazione facoltativa può precedere Type-specifier.

puntatore-dichiaratore

Specifica zero o più dichiaratori di puntatore. Un dichiaratore di puntatore è uguale al dichiaratore del puntatore utilizzato in C; viene costruita dall' * indicatore, i modificatori, ad esempio lontano, e il qualificatore const.

Nome funzione

Specifica il nome della procedura remota.

Parameter-Attribute-List

Specifica zero o più attributi appropriati per un tipo di parametro specificato. Gli attributi di parametro con l' [ attributo out ] possono anche prendere l'attributo Directional [ out ] . gli attributi di campo [ First _ sono ] , [ Last _ is ] , [ length _ is ] , [ Max _ is ] , [ size _ is ] e [ Switch _ Type, ] l'attributo Pointer [ ref ] , [ Unique ] o [ ptr ] e l' [ _ handle ] e la [ stringadel contesto degli attributi Usage ] . L'attributo Usage [ Ignore ] non può essere utilizzato come attributo di parametro. Separare più attributi con virgole.

dichiaratore

Specifica i dichiaratori standard, ad esempio identificatori, dichiaratori di puntatore e dichiaratori di matrici. Per altre informazioni, vedere matrici e Sized-Pointer attributi, matricie matrici e 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 dati associati in memoria devono essere passati di nuovo dalla procedura chiamata alla procedura chiamante.

L' [ attributo out ] deve essere un puntatore. I compilatori IDL DCE richiedono la presenza di un * dichiaratore esplicito come 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 solo [ in, solo in uscita o in uscita ] [ ] [ ] .

[ ] Si presuppone che un parametro out-only non sia definito quando viene chiamata la procedura remota e che la memoria per l'oggetto venga allocata dal server. Poiché il puntatore/parametri di primo livello deve sempre puntare a una risorsa di archiviazione valida e pertanto non può essere null, [ out ] non può essere applicato ai [ puntatori univoci ] o [ ptr di primo livello ] . I parametri che corrispondono [ ] a puntatori univoci o [ ptr ] devono essere [ in ] o [ in, out ] Parameters.

Esempi

HRESULT MyFunction([out] short * pcount);

Vedere anche

matrici

Tipi di base MIDL

callback

const

handle di contesto _

enum

il primo _ è

ignorare

in

ultimo _ è

lunghezza _

locale

Max _ è

ptr

ref

dimensioni _

string

struct

tipo di opzione _

Unione

unico