defaultvalue-Attribut
Mit dem [defaultvalue] -Attribut können Sie einen Standardwert für einen typisierten optionalen Parameter angeben.
interface interface-name
{
return-type function-name(
mandatory-param-list,
[[attribute-list,] defaultvalue(value)] param-type param-name
[ , optional-param-list]);
}
-
Schnittstellenname
-
Gibt den Namen der Schnittstelle an.
-
Rückgabetyp
-
Gibt den Rückgabetyp der Funktion an.
-
Funktionsname
-
Gibt den Namen der Funktion an, auf die das Attribut [defaultvalue] angewendet wird.
-
mandatory-param-list
-
Gibt für oder mehr erforderliche Parameter an.
-
attribut-list
-
Gibt eine Liste mit mindestens einem Attribut an, getrennt durch Kommas, die für den Parameter gelten.
-
param-type
-
Gibt den Typ des optionalen Parameters an.
-
param-name
-
Gibt den Namen des optionalen Parameters an.
-
optional-param-list
-
Gibt null oder mehr zusätzliche Parameter an, von denen jeder einen Standardwert aufweisen muss.
Der Standardwert, den Sie für den Parameter angeben, kann eine beliebige Konstante oder ein Ausdruck sein, der in eine Konstante aufgelöst wird und durch einen VARIANT-Wert dargestellt werden kann. Insbesondere können Sie das Attribut [defaultvalue] nicht auf einen Parameter anwenden, der eine Struktur, ein Array oder ein SAFEARRAY-Typ ist.
Der MIDL-Compiler akzeptiert die folgende Parameterreihenfolge (von links nach rechts):
- Erforderliche Parameter (Parameter, die nicht über die Attribute [defaultvalue] oder [optional] verfügen ),
- optionale Parameter mit oder ohne das [defaultvalue]- Attribut,
- Parameter mit dem Attribut [optional] und ohne das Attribut [defaultvalue]
- [lcid] -Parameter, falls vorhanden,
- [retval] -Parameter
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