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 de l’interface
-
Spécifie le nom de l’interface.
-
type de retour
-
Spécifie le type de retour de la fonction.
-
nom de fonction
-
Spécifie le nom de la fonction à laquelle l’attribut [ DefaultValue ] sera appliqué.
-
obligatoire-param-List
-
Spécifie un ou plusieurs paramètres obligatoires.
-
liste d’attributs
-
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.
-
nom du paramètre
-
Spécifie le nom du paramètre facultatif.
-
Liste facultative-param
-
Spécifie zéro, un 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 correspond à une 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 l’ordonnancement des paramètres suivant (de gauche à droite) :
- Paramètres obligatoires (paramètres qui n’ont pas les attributs [ DefaultValue ] ou [ facultatifs ] )
- paramètres facultatifs avec ou sans l’attribut [ DefaultValue ] ,
- paramètres avec l’attribut [ facultatif ] et sans l’attribut [ DefaultValue ] ,
- [ paramètre LCID ] , le cas échéant,
- [retVal ] paramètre
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