Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
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