annoter l’attribut
L’attribut [annotate] vous permet de spécifier une chaîne d’annotation SAL pour la méthode, le paramètre ou le champ de structure spécifié.
[ annotation(“stringâ€0, [, function-attribute-list] ] function-declarator ;
[ [function-attribute-list] ] type-specifier [pointer-declarator] function-name(
[ annotation(“stringâ€) [ , parameter-attribute-list ] ] type-specifier [declarator]
, ...);
-
string
-
Chaîne d’annotation SAL spécifiée.
-
function-attribute-list
-
Spécifie zéro ou plusieurs attributs qui s’appliquent à la fonction. Les attributs de fonction valides incluent [callback]; attributs de pointeur [ref], [unique] ou [ptr]; et les attributs d’utilisation [string], [ignore] et [context_handle]. Plusieurs attributs doivent être séparés par des virgules.
-
déclarateur de fonction
-
Spécifie le spécificateur de type, le nom de la fonction et la liste de paramètres de la fonction.
-
spécificateur de type
-
Spécifie un base_type, [struct], union ou [enum] type ou identificateur de type. Une spécification de stockage facultative peut précéder le spécificateur de type.
-
déclarateur de pointeur
-
Spécifie zéro ou plusieurs déclarateurs de pointeur. Un déclarateur de pointeur est le même qu’un déclarateur de pointeur utilisé en C ; il est construit à partir de l’indicateur *, modificateurs tels que le qualificateur et le qualificateur [const].
-
nom de fonction
-
Spécifie le nom de la procédure distante.
-
parameter-attribute-list
-
Spécifie zéro ou plusieurs attributs appropriés pour le type de paramètre. Les attributs de paramètre avec l’attribut [in] peuvent également prendre l’attribut directionnel [out]; les attributs de champ [first_is], [last_is], [length_is], [max_is], [size_is] et [switch_type]; attributs de 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. Plusieurs attributs doivent être séparés par des virgules.
-
declarator
-
Spécifie les déclarateurs C standard, tels que les identificateurs, les déclarateurs de pointeur et les déclarateurs de tableau. Pour plus d’informations, consultez Array et Sized-Pointer Attributes, [arrays] et Arrays and Pointers. Le déclarateur de paramètre dans le déclarateur de fonction, tel que le nom du paramètre, est facultatif.
L’attribut [annotate] permet de remplacer les annotations SAL générées par MIDL ou de les ajouter à des endroits où MIDL ne génère pas explicitement d’annotation. Si /sal n’est pas spécifié sur la ligne de commande, cet attribut est ignoré.