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


атрибут defaultvalue

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

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

интерфейса

необязательные

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

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

retval

TYPEFLAGS