Страница 64 из 111 ITypeLib::GetTypeComp Позволяет компилятору-клиенту выполнять компоновку с типами, переменными, константами и глобальными функциями. 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. Это обеспечивает доступ компиляторов к членам модулей, перечислений и компонентных классов, несмотря на то, что при компоновке нельзя задавать квалифицированное имя. |