Справочник по технологии COM
Страница 65. ITypeLib::GetTypelnfo


 

ITypeLib::GetTypelnfo

Возвращает заданное описание типа.

HRESULT GetTypeInfo
(
unsigned int index,
ITypelnfo FAR* FAR* ppTInfo
);

Параметры:
index
Индекс интерфейса ITypeInfo, который нужно возвратить.
ppTInfo
В случае успеха по этому адресу возвращается указатель на интерфейс ITypeInfo.

Коды возврата:
Из возвращенного HRESULT получают один из следующих кодов возврата:

Код возврата Значение
S_OK Успех.
TYPE_E_ELEMENTNOTFOUND Значение параметра Index выходит за пределы диапазона от 0 до GetTypeInfoCount - 1.
E_OUTOFMEMORY He хватает памяти.
E_INVALIDARG Один или несколько аргументов неверны.
TYPE_E_IOERROR Функция не может выполнить запись в файл.
TYPE_E_INVDATAREAD Неверные данные.
TYPE_E_UNSUPFORMAT Библиотека типа имеет старый формат.
TYPE_E_REGISTRYACCESS Ошибка при обращении к системной регистрационной базе данных.
TYPE_E_INVALIDSTATE He удается открыть библиотеку типа.

Комментарии:
Для дуальных интерфейсов ITypeLib::GetTypeInfo возвращает только информацию о типе TKIND_DISPATCH. Чтобы получить информацию о типе TKIND_INTERFACE, можно вызвать ITypeInfo::GetRefTypeOnmplType для информации о типе TKIND_DISPATCH, передав значение index, равное -1. Затем полученный описатель информации о типе передается ITypeInfo::GetRefTypeInfo.

Пример:
Ниже приведен пример получения информации о типе TKIND_INTERFACE для дуального интерфейса.

ptlib->GetTypeInfo((unsigned int) dwlndex, &ptypeinfoDisp); 
ptypeinfoDisp->GetRefTypeOfImplType(-1, &phreftype);
ptypeinfoDisp->GetRefTypeInfo(phreftype, &ptypeinfolnt);

 
Следующая статья »