Шаг 65 - 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_OUTOFMEMORYHe хватает памяти.
E_INVALIDARGОдин или несколько аргументов неверны.
TYPE_E_IOERRORФункция не может выполнить запись в файл.
TYPE_E_INVDATAREADНеверные данные.
TYPE_E_UNSUPFORMATБиблиотека типа имеет старый формат.
TYPE_E_REGISTRYACCESSОшибка при обращении к системной регистрационной базе данных.
TYPE_E_INVALIDSTATEHe удается открыть библиотеку типа.

Комментарии:
Для дуальных интерфейсов 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);

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 13.03.2003