out (attribut)

L’attribut [out] identifie les paramètres de pointeur qui sont retournés de la procédure appelée à la procédure appelante (du serveur au client).

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

Paramètres

function-attribute-list

Spécifie zéro ou plusieurs attributs qui s’appliquent à la fonction. Les attributs de fonction valides sont [callback], [local]; l’attribut pointeur [ref], [unique] ou [ptr]; et les attributs d’utilisation [string], [ignore] et [context_handle].

type-specifier

Spécifie un type ou un identificateur de type base_type, struct, union ou enum . Une spécification de stockage facultative peut précéder le spécificateur de type.

pointeur-déclarateur

Spécifie zéro ou plusieurs déclarateurs de pointeur. Un déclarateur de pointeur est identique au déclarateur de pointeur utilisé dans C ; il est construit à partir du désignateur *, des modificateurs tels que far, et du qualificateur const.

function-name

Spécifie le nom de la procédure distante.

parameter-attribute-list

Spécifie zéro ou plusieurs attributs appropriés pour un type de paramètre spécifié. Les attributs de paramètre avec l’attribut [out] peuvent également prendre l’attribut directionnel [out] ; les attributs de champ [first_is], [last_is], [length_is], [max_is], [size_is] et [switch_type]; l’attribut pointeur [ref], [unique] ou [ptr]; et les attributs d’utilisation [context_handle] et [string]. L’attribut d’utilisation [ignore] ne peut pas être utilisé comme attribut de paramètre. Séparez plusieurs attributs par des virgules.

declarator

Spécifie les déclarateurs standard, tels que les identificateurs, les déclarateurs de pointeurs et les déclarateurs de tableau. Pour plus d’informations, consultez Array and Sized-Pointer Attributes, arrays, and Arrays and Pointers. Le déclarateur de paramètre dans le déclarateur de fonction, tel que le nom du paramètre, est facultatif.

Notes

L’attribut [out] indique qu’un paramètre qui agit comme pointeur et ses données associées en mémoire doivent être repassé de la procédure appelée à la procédure appelante.

L’attribut [out] doit être un pointeur. Les compilateurs IDL DCE nécessitent la présence d’un * explicite comme déclarateur de pointeur dans la déclaration de paramètre. Microsoft IDL offre une extension qui supprime cette exigence et autorise un tableau ou un type de pointeur défini précédemment.

Un attribut associé, [in], indique que le paramètre est passé de la procédure appelante à la procédure appelée. Les attributs [in] et [out] spécifient la direction dans laquelle les paramètres sont passés. Un paramètre peut être défini comme [in]-only, [out]-only ou [in, out].

Un paramètre [out]-only est supposé être non défini lorsque la procédure distante est appelée et que la mémoire de l’objet est allouée par le serveur. Étant donné que le pointeur/les paramètres de niveau supérieur doivent toujours pointer vers un stockage valide et ne peuvent donc pas être NULL, [out] ne peut pas être appliqué aux pointeurs de niveau supérieur [unique] ou [ptr]. Les paramètres qui sont des pointeurs [unique] ou [ptr] doivent être des paramètres [in] ou [in, out].

Exemples

HRESULT MyFunction([out] short * pcount);

Voir aussi

Tableaux

MIDL Base Types

rappel

const

context_handle

Enum

first_is

Ignorer

Dans

last_is

length_is

Local

max_is

Ptr

Ref

size_is

String

Struct

switch_type

Union

Unique