Метод ICreateTypeInfo::AddFuncDesc (oaidl.h)
Добавляет описание функции в описание типа.
Синтаксис
HRESULT AddFuncDesc(
[in] UINT index,
[in] FUNCDESC *pFuncDesc
);
Параметры
[in] index
Индекс нового FUNCDESC в сведениях о типе.
[in] pFuncDesc
Структура FUNCDESC, описывающая функцию. Поле bstrIDLInfo в FUNCDESC должно иметь значение NULL.
Возвращаемое значение
Этот метод может возвращать одно из этих значений.
Код возврата | Описание |
---|---|
|
Успешно. |
|
Один или несколько аргументов недопустимы. |
|
Недостаточно памяти для завершения операции. |
|
Не удается выполнить запись в место назначения. |
|
Недостаточно памяти для завершения операции. |
|
Несоответствие типов. |
Комментарии
Индекс задает порядок функций в сведениях о типе. Первая функция имеет нулевой индекс. Если указан индекс, превышающий число функций в сведениях о типе, возвращается ошибка. Вызов этой функции не передает владение структурой 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 |