defaultvalue (attributo)
L'attributo [defaultvalue] consente di specificare un valore predefinito per un parametro facoltativo tipizzato.
interface interface-name
{
return-type function-name(
mandatory-param-list,
[[attribute-list,] defaultvalue(value)] param-type param-name
[ , optional-param-list]);
}
-
nome dell'interfaccia
-
Specifica il nome dell'interfaccia.
-
tipo restituito
-
Specifica il tipo restituito della funzione.
-
nome funzione
-
Specifica il nome della funzione a cui verrà applicato l'attributo [defaultvalue].
-
obbligatorio-param-list
-
Specifica in o più parametri obbligatori.
-
attribute-list
-
Specifica un elenco di uno o più attributi, separati da virgole, che si applicano al parametro.
-
param-type
-
Indica il tipo del parametro facoltativo.
-
param-name
-
Specifica il nome del parametro facoltativo.
-
facoltativo-param-list
-
Specifica zero o più parametri aggiuntivi, ognuno dei quali deve avere un valore predefinito.
Il valore predefinito specificato per il parametro può essere una costante o un'espressione che si risolve in una costante, che può essere rappresentata da un valore VARIANT. In particolare, non è possibile applicare l'attributo [defaultvalue] a un parametro che è una struttura, una matrice o un tipo SAFEARRAY .
Il compilatore MIDL accetta l'ordinamento dei parametri seguente (da sinistra a destra):
- Parametri obbligatori (parametri che non hanno gli attributi [defaultvalue] o [facoltativo]),
- parametri facoltativi con o senza l'attributo [defaultvalue]
- parametri con l'attributo [facoltativo] e senza l'attributo [defaultvalue] ,
- [lcid] parametro, se disponibile,
- [retval] parametro
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