Позволяет компилятору-клиенту выполнять компоновку с типами, переменными, константами и глобальными функциями.
HRESULT GetTypeComp ( ITypeComp FAR* FAR*ppTComp );
Параметр:
ррТСотр
Указывает на указатель на экземпляр ITypeComp для данной ITypeLib. Компилятор-клиент может использовать методы ITypeComp для компоновки с типами из ITypeLib, а также с определенными в этой библиотеке глобальными функциями, переменными и константами.
Коды возврата:
Из возвращенного HRESULT получают один из следующих кодов возврата:
Код возврата | Значение |
---|---|
S_OK | Успех. |
E_OUTOFMEMORY | He хватает памяти. |
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. Это обеспечивает доступ компиляторов к членам модулей, перечислений и компонентных классов, несмотря на то, что при компоновке нельзя задавать квалифицированное имя.