out (attribut)
L' [ attribut out ] identifie les paramètres de pointeur 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, un ou plusieurs attributs qui s’appliquent à la fonction. Les attributs de fonction valides sont [ callback ] , [ local, ] l’attribut de pointeur [ ref ] , [ unique ] ou [ ptr ] ; et les attributs d’utilisation [ chaîne ] , [ Ignorer ] et [ _ handle de contexte ] .
-
spécificateur de type
-
Spécifie un type de base _, un struct, une Unionou un type enum ou un identificateur de type. Une spécification de stockage facultative peut précéder le type-specifier.
-
pointeur-déclarateur
-
Spécifie zéro ou plusieurs déclarateurs de pointeur. Un déclarateur de pointeur est le même que le déclarateur de pointeur utilisé dans C ; elle est construite à partir de l' * indicateur, de modificateurs tels que Far et de l’identificateur const.
-
nom de fonction
-
Spécifie le nom de la procédure distante.
-
Parameter-attribute-List
-
Spécifie zéro, un 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 [ ] . les attributs de champ [ _ sont ] , [ Last _ is, ] [ Length _ is ] , [ Max _ is, ] [ size _ is ] et [ _ type de commutateur ] ; le pointeur attribute [ ref ] , [ unique ] ou [ ptr ] ; et les attributs d’utilisation [ _ handle de contexte ] et [ String ] . L’attribut d’utilisation [ ignore ] ne peut pas être utilisé en tant qu’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 tableau et Sized-Pointer attributs, tableaux, tableaux et pointeurs. 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 un pointeur et ses données associées en mémoire doit être repassé de la procédure appelée à la procédure d’appel.
L' [ attribut out ] doit être un pointeur. Les compilateurs IDL DCE nécessitent la présence d’un Explicit * comme déclarateur de pointeur dans la déclaration du 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é, [ dans ] , 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 en tant que [ en ] seule, en [ sortie seule ] ou [ en sortie ] .
Un [ paramètre en sortie ] seule 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 les curseurs/paramètres de niveau supérieur doivent toujours pointer vers un stockage valide, et ne peuvent donc pas avoir la valeur null, [ out ] ne peut pas être appliqué aux [ ] pointeurs uniques ou [ ptr de niveau supérieur ] . Les paramètres qui sont [ uniques ] ou les [ ] pointeurs PTR doivent être [ dans ] ou [ dans, paramètres de sortie ] .
Exemples
HRESULT MyFunction([out] short * pcount);