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


Метод ICreateTypeInfo::AddFuncDesc (oaidl.h)

Добавляет описание функции в описание типа.

Синтаксис

HRESULT AddFuncDesc(
  [in] UINT     index,
  [in] FUNCDESC *pFuncDesc
);

Параметры

[in] index

Индекс нового FUNCDESC в сведениях о типе.

[in] pFuncDesc

Структура FUNCDESC, описывающая функцию. Поле bstrIDLInfo в FUNCDESC должно иметь значение NULL.

Возвращаемое значение

Этот метод может возвращать одно из этих значений.

Код возврата Описание
S_OK
Успешно.
E_INVALIDARG
Один или несколько аргументов недопустимы.
E_OUTOFMEMORY
Недостаточно памяти для завершения операции.
E_ACCESSDENIED
Не удается выполнить запись в место назначения.
STG_E_INSUFFICIENTMEMORY
Недостаточно памяти для завершения операции.
TYPE_E_WRONGTYPEKIND
Несоответствие типов.

Комментарии

Индекс задает порядок функций в сведениях о типе. Первая функция имеет нулевой индекс. Если указан индекс, превышающий число функций в сведениях о типе, возвращается ошибка. Вызов этой функции не передает владение структурой FUNCDESC в ICreateTypeInfo. Таким образом, вызывающий объект должен по-прежнему отменять выделение структуры FUNCDESC.

Передаваемое поле таблицы виртуальных функций (КРЫЛ) (oVft) FUNCDESC игнорируется, если typeKIND TKIND_MODULE или если oVft имеет значение -1 или 0. Этот атрибут задается при вызове ICreateTypeInfo::LayOut . Значение oVft используется, если TYPEKIND TKIND_DISPATCH и двойной интерфейс или typeKIND TKIND_INTERFACE. Если используется oVft, он должен быть кратным размеру (VOID *) на компьютере, в противном случае функция завершается ошибкой и E_INVALIDARG возвращается в качестве HRESULT.

Функция AddFuncDesc использует поля переданного идентификатора члена (memid) в каждом FUNCDESC для классов с TYPEKIND = TKIND_DISPATCH или TKIND_INTERFACE. Если для идентификаторов элементов задано значение MEMBERID_NIL, AddFuncDesc назначает идентификаторы элементов функциям. В противном случае поля идентификатора элемента в каждом FUNCDESC игнорируются.

Все поля HREFTYPE в структуре FUNCDESC должны быть созданы тем же экземпляром ITypeInfo , для которого вызывается AddFuncDesc .

Функции метода доступа get и put для одного свойства должны иметь один и тот же идентификатор диспетчеризации (DISPID).

Требования

Требование Значение
Целевая платформа Windows
Header oaidl.h

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

ICreateTypeInfo