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