defaultvalue (attribut)
L’attribut [defaultvalue] vous permet de spécifier une valeur par défaut pour un paramètre facultatif typé.
interface interface-name
{
return-type function-name(
mandatory-param-list,
[[attribute-list,] defaultvalue(value)] param-type param-name
[ , optional-param-list]);
}
Paramètres
-
nom_interface
-
Spécifie le nom de l’interface.
-
type de retour
-
Spécifie le type de retour de la fonction.
-
nom de la fonction
-
Spécifie le nom de la fonction à laquelle l’attribut [defaultvalue] sera appliqué.
-
mandatory-param-list
-
Spécifie sur ou plusieurs paramètres requis.
-
attribute-list
-
Spécifie une liste d’un ou plusieurs attributs, séparés par des virgules, qui s’appliquent au paramètre.
-
param-type
-
Indique le type du paramètre facultatif.
-
param-name
-
Spécifie le nom du paramètre facultatif.
-
optional-param-list
-
Spécifie zéro ou plusieurs paramètres supplémentaires, chacun d’entre eux devant avoir une valeur par défaut.
Notes
La valeur par défaut que vous spécifiez pour le paramètre peut être n’importe quelle constante, ou une expression qui se résout en constante, qui peut être représentée par un VARIANT. Plus précisément, vous ne pouvez pas appliquer l’attribut [defaultvalue] à un paramètre qui est une structure, un tableau ou un type SAFEARRAY .
Le compilateur MIDL accepte le classement des paramètres suivant (de gauche à droite) :
- Paramètres obligatoires (paramètres qui n’ont pas les attributs [valeur par défaut] ou [facultatif] ),
- paramètres facultatifs avec ou sans l’attribut [defaultvalue],
- avec l’attribut [facultatif] et sans l’attribut [defaultvalue],
- [lcid] paramètre, le cas échéant,
- Paramètre [retval]
Exemples
interface IFace : IUnknown
{
HRESULT Ex1([defaultvalue(44)] LONG i);
HRESULT Ex2([defaultvalue(44)] SHORT i);
...
};
interface QueryDef : IUnknown
{
HRESULT OpenRecordset( [in, defaultvalue(DBOPENTABLE)]
LONG Type,
[out,retval] Recordset **pprst);
}
// Type is now known to be a LONG type (good for browser in VBA and
// good for a C/C++ programmer) and has a default value of
// DBOPENTABLE
Voir aussi