Загружает и регистрирует библиотеку типа.
HRESULT LoadTypeLib ( OLECHAR FAR* szFile, ITypeLib FAR* FAR*pptlib );
Параметры
szFile
Имя файла, из которого функция должна
попытаться загрузить библиотеку типа.
pptlib
Принимает указатель
на загруженную библиотеку.
Коды возврата
Из возвращенного HRESULT получают один из следующих
кодов возврата:
Код возврата | Значение |
S_OK | Успех. |
E_OUTOFMEMORY | He хватает памяти. |
E_INVALIDARG | Один или несколько аргументов неверны. |
TYPE_E_IOERROR | Функция не может выполнить запись в файл. |
TYPE_E_INVALIDSTATE | He удается открыть библиотеку типа. |
TYPE_E_INVDATAREAD | Функция не может читать из файла. |
TYPE_E_UNSUPFORMAT | Библиотека типа имеет старый формат. |
DISP_E_UNKNOWNLCID | Идентификатор местности (LCID) в DLL OLE не найден. |
TYPE_E_CANTLOADLIBRARY | Идентификатор местности (LCID) в DLL OLE не найден. |
Другие | Могут возвращаться любые ошибки FACILITY_STORAGE. |
Комментарии
Функция LoadTypeLib загружает библиотеку типа
(обычно созданную с помощью MkTypLib), которая хранится в указанном
файле. Если szFile задает только имя файла без пути, то функция выполняет
поиск файла, а дальше поступает следующим образом:
Если файл представляет
собой автономную библиотеку типа, реализованную с помощью Typelib.dll, то
библиотека загружается непосредственно.
Если файл — это DLL или
исполняемый файл, то он загружается. По умолчанию библиотека типа извлекается из
первого ресурса с типом TypeLib. Для загрузки ресурса с другим номером
добавьте к szFile целочисленный индекс. Например:
LoadTypeLib("C:\MONTANA\EXE\MFA.EXE\3", pptlib);
Данный оператор загружает ресурс 3 из файла Mfa.exe.
Если файл не
относится ни к одному из перечисленных выше типов, его имя преобразуется в
моникер (объект, представляющий собой ссылку), после чего выполняется разрешение
моникера. Это позволяет LoadTypeLib выполнять загрузку внешних
(foreign) библиотек типа, например, тех, что находятся в памяти. Внешние
библиотеки не могут располагаться в DLL или исполняемом файле. Подробнее
о моникерах см. OLE Programmer's Reference в Win32 SDK
Если библиотека
уже загружена, то LoadTypeLib увеличивает ее счетчик ссылок и возвращает
указатель на загруженную библиотеку.
Для поддержания обратной совместимости
LoadTypeLib будет регистрировать библиотеку типа, если в параметре
szFile не задан путь. Если путь задан, то функция не будет ее
регистрировать. Для регистрации библиотеки рекомендуется использовать
RegisterTypeLib.