Страница 65 из 111 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); |