Шаг 64 - ITypeLib::GetTypeComp

Позволяет компилятору-клиенту выполнять компоновку с типами, переменными, константами и глобальными функциями.

HRESULT GetTypeComp
( 
	ITypeComp FAR* FAR*ppTComp
);

Параметр:
ррТСотр
Указывает на указатель на экземпляр ITypeComp для данной ITypeLib. Компилятор-клиент может использовать методы ITypeComp для компоновки с типами из ITypeLib, а также с определенными в этой библиотеке глобальными функциями, переменными и константами.

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

Код возвратаЗначение
S_OKУспех.
E_OUTOFMEMORYHe хватает памяти.
E_INVALIDARGОдин или несколько аргументов неверны.
TYPE_E_IOERRORФункция не может выполнить запись в файл.
TYPE_E_INVDATAREADФункция не может читать из файла.
TYPE_E_UNSUPFORMATБиблиотека типа имеет старый формат.
TYPE_E_INVALIDSTATEНе удается открыть библиотеку типа.
TYPE E WRONGTYPEKINDНесовпадение типов.

Комментарии:
Функция Bind возвращенного TypeComp выполняет компоновку с глобальными функциями, переменными, константами, значениями перечислимых типов и членами коклассов. Кроме того, функция Bind осуществляет компоновку с именами типов TKIND_MODULE, TKIND_ENUM и TKIND_COCLASS. Эти имена скрывают любые глобальные имена, определяемые информацией о типе. Компоновку с членами типов TKIND_ENUM, TKIND_MODULE и TKIND_COCLASS, помеченных как объекты Application, ITуреСоmр может выполнять непосредственно, без указания имени модуля.
ITypeComp::Bind и ITypeComp::BindType обрабатывают только неквалифицированные имена. ITypeLib::GetTypeComp возвращает указатель на интерфейс ITypeComp, который используется затем для компоновки с глобальными элементами библиотеки. Имена некоторых типов (TKIND_ENUM, TKIND_MODULE и TKIND_COCLASS) используют общее пространство имен с переменными, функциями, константами и элементами перечислений.
Если для недвусмысленного указания элемента его имя требует квалификации, то, чтобы выполнить компоновку с данным элементом для каждого квалификатора, следует последовательно вызывать GetTypeComp. Это обеспечивает доступ компиляторов к членам модулей, перечислений и компонентных классов, несмотря на то, что при компоновке нельзя задавать квалифицированное имя.


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