Структура FUNCDESC (oaidl.h)

Описывает функцию.

Синтаксис

typedef struct tagFUNCDESC {
  MEMBERID   memid;
  SCODE      *lprgscode;
  ELEMDESC   *lprgelemdescParam;
  FUNCKIND   funckind;
  INVOKEKIND invkind;
  CALLCONV   callconv;
  SHORT      cParams;
  SHORT      cParamsOpt;
  SHORT      oVft;
  SHORT      cScodes;
  ELEMDESC   elemdescFunc;
  WORD       wFuncFlags;
} FUNCDESC, *LPFUNCDESC;

Члены

memid

Идентификатор члена функции.

lprgscode

Код состояния.

lprgelemdescParam

Описание элемента.

funckind

Указывает тип функции (виртуальная, статическая или диспетчерская).

invkind

Тип вызова. Указывает, является ли эта функция свойством, и если да, то какой тип.

callconv

Соглашение о вызовах.

cParams

Общее количество параметров.

cParamsOpt

Количество необязательных параметров.

oVft

Для FUNC_VIRTUAL задает смещение в ФАЙЛЕ ПАРАМЕТРОВ.

cScodes

Количество возможных возвращаемых значений.

elemdescFunc

Возвращаемый тип функции.

wFuncFlags

Флаги функции. См . раздел FUNCFLAGS.

Комментарии

Поле cParams указывает общее количество обязательных и необязательных параметров.

В поле cParamsOpt указывается форма необязательных параметров, принимаемых функцией, следующим образом:

  • Значение 0 указывает, что необязательные аргументы не поддерживаются.
  • Значение –1 указывает, что последний параметр метода является указателем на безопасный массив вариантов. Любое число аргументов типа variant, превышающее cParams –1, должно быть упаковано вызывающим элементом в безопасный массив и передано в качестве окончательного параметра. Этот массив необязательных параметров должен быть освобожден вызывающим после возврата элемента управления из вызова.
  • Любое другое число указывает, что последние n параметров функции являются вариантами и не должны указываться вызывающим объектом явным образом. Оставшиеся параметры должны быть заполнены компилятором или интерпретатором как варианты типа VT_ERROR со значением DISP_E_PARAMNOTFOUND.

Требования

Требование Значение
Заголовок oaidl.h