Страница 5 из 111 LoadTypeLib Загружает и регистрирует библиотеку типа. 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. |