Возвращает заданное описание типа.
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);