defaultvalue - атрибут
Атрибут [defaultvalue] позволяет указать значение по умолчанию для типизированного необязательного параметра.
interface interface-name
{
return-type function-name(
mandatory-param-list,
[[attribute-list,] defaultvalue(value)] param-type param-name
[ , optional-param-list]);
}
Параметры
-
имя интерфейса
-
Указывает имя интерфейса.
-
тип возвращаемого значения
-
Указывает тип возвращаемого значения функции.
-
имя функции
-
Указывает имя функции, к которой будет применяться атрибут [defaultvalue] .
-
mandatory-param-list
-
Указывает на или несколько обязательных параметров.
-
список атрибутов
-
Указывает список из одного или нескольких атрибутов, разделенных запятыми, которые применяются к параметру .
-
param-type
-
Указывает тип необязательного параметра.
-
param-name
-
Указывает имя необязательного параметра.
-
optional-param-list
-
Указывает ноль или более дополнительных параметров, каждый из которых должен иметь значение по умолчанию.
Комментарии
Значением по умолчанию, указанным для параметра, может быть любая константа или выражение, разрешающееся в константу, которое может быть представлено с помощью VARIANT. В частности, нельзя применить атрибут [defaultvalue] к параметру, который является структурой, массивом или типом SAFEARRAY .
Компилятор MIDL принимает следующий порядок параметров (слева направо):
- Обязательные параметры (параметры, которые не имеют атрибутов [defaultvalue] или [optional] ).
- необязательные параметры с атрибутом [defaultvalue] или без нее;
- параметры с атрибутом [необязательный] и без атрибута [defaultvalue] ,
- Параметр [lcid] , если таковой есть,
- Параметр [retval]
Примеры
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
См. также раздел