defaultvalue(value)
Enables specification of a default value for a typed optional parameter.
Parameters
-
value
-
The default value.
Allowed on
Parameter.
Remarks
The expression value resolves to a constant that can be described in a variant. The ODL already allows some expression forms, as when a constant is declared in a module. The same expressions are supported without modification.
The following example shows some legal parameter descriptions:
interface IFoo
{
void Ex1([defaultvalue(44)] LONG i);
void Ex2([defaultvalue(44)] SHORT i);
void Ex3([defaultvalue("Hello")] BSTR i);
}
The following rules apply:
It is invalid to specify a default value for a parameter whose type is a safe array. It is invalid to specify a default value for any type that cannot go in a variant, including structures and arrays.
Parameters can be mixed. Optional parameters and default value parameters must follow mandatory parameters.
The default value can be any constant that is represented by a VARIANT data type.
Example
interface QueryDef
{
// Type is now known to be a LONG type (good for browser in VBA and
// for a C/C++ programmer) and also has a default value of
// dbOpenTable (constant).
HRESULT OpenRecordset( [in, defaultvalue(dbOpenTable)]
LONG Type,
[out,retval]
Recordset **pprst);}
Related topics