Поделиться через


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 принимает следующий порядок параметров (слева направо):

  1. Обязательные параметры (параметры, которые не имеют атрибутов [defaultvalue] или [optional] ).
  2. необязательные параметры с атрибутом [defaultvalue] или без нее;
  3. параметры с атрибутом [необязательный] и без атрибута [defaultvalue] ,
  4. Параметр [lcid] , если таковой есть,
  5. Параметр [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

См. также раздел

dispinterface

Создание библиотеки типов с помощью MIDL

Интерфейс

Lcid

Дополнительные

Пример ODL-файла

Синтаксис ODL-файла

retval

TYPEFLAGS