defaultvalue (atributo)
El atributo [defaultvalue] permite especificar un valor predeterminado para un parámetro opcional con tipo.
interface interface-name
{
return-type function-name(
mandatory-param-list,
[[attribute-list,] defaultvalue(value)] param-type param-name
[ , optional-param-list]);
}
-
interface-name
-
Especifica el nombre de la interfaz.
-
return-type
-
Especifica el tipo de valor devuelto de la función.
-
function-name
-
Especifica el nombre de la función a la que se aplicará el atributo [defaultvalue].
-
mandatory-param-list
-
Especifica en o más parámetros necesarios.
-
attribute-list
-
Especifica una lista de uno o varios atributos, separados por comas, que se aplican al parámetro .
-
param-type
-
Indica el tipo del parámetro opcional.
-
param-name
-
Especifica el nombre del parámetro opcional.
-
optional-param-list
-
Especifica cero o más parámetros adicionales, cada uno de los cuales debe tener un valor predeterminado.
El valor predeterminado que especifique para el parámetro puede ser cualquier constante, o bien una expresión que se resuelva en una constante, que se puede representar mediante un variant. En concreto, no se puede aplicar el atributo [defaultvalue] a un parámetro que sea una estructura, una matriz o un tipo SAFEARRAY .
El compilador MIDL acepta el siguiente orden de parámetros (de izquierda a derecha):
- Parámetros obligatorios (parámetros que no tienen los atributos [defaultvalue] o [opcional] ),
- parámetros opcionales con o sin el atributo [defaultvalue],
- parámetros con el atributo [opcional] y sin el atributo [defaultvalue],
- [lcid] parámetro, si existe,
- [retval] parámetro
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