Функция OleLoad (ole2.h)
Загружает в память объект, вложенный в указанный объект хранилища.
Синтаксис
HRESULT OleLoad(
[in] LPSTORAGE pStg,
[in] REFIID riid,
[in] LPOLECLIENTSITE pClientSite,
[out] LPVOID *ppvObj
);
Параметры
[in] pStg
Указатель на интерфейс IStorage в объекте хранилища, из которого загружается указанный объект.
[in] riid
Ссылка на идентификатор интерфейса, который вызывающий объект хочет использовать для взаимодействия с объектом после его загрузки.
[in] pClientSite
Указатель на интерфейс IOleClientSite в загружаемом объекте клиентского сайта.
[out] ppvObj
Адрес переменной указателя, получающей указатель интерфейса, запрошенный в riid. После успешного возврата *ppvObj содержит запрошенный указатель интерфейса на вновь загруженный объект.
Возвращаемое значение
Эта функция возвращает S_OK при успешном выполнении. Ниже перечислены другие возможные значения.
Код возврата | Описание |
---|---|
|
Объект не поддерживает указанный интерфейс. |
Кроме того, эта функция может возвращать любые значения ошибок, возвращаемые методом IPersistStorage::Load .
Комментарии
Контейнеры OLE загружают объекты в память путем вызова этой функции. При вызове функции OleLoad приложение-контейнер передает указатель на открытый объект хранилища, в котором хранится вложенный объект. Как правило, загружаемый вложенный объект является дочерним объектом хранилища в корневом объекте хранилища контейнера. Используя сведения OLE, хранящиеся вместе с объектом , обработчик объекта (обычно обработчик по умолчанию) пытается загрузить объект . После завершения функции OleLoad объект считается загруженным, а его приложение объекта не запущено.
Некоторые приложения загружают все собственные данные объекта. Контейнеры часто откладывают загрузку содержащихся объектов до тех пор, пока это не потребуется. Например, пока объект не будет прокручен в поле зрения и не должен быть нарисован, его не нужно загружать.
Функция OleLoad выполняет следующие действия.
- При необходимости выполняет автоматическое преобразование объекта (см. функцию OleDoAutoConvert ).
- Возвращает идентификатор CLSID из открытого объекта хранилища путем вызова метода IStorage::Stat .
- Вызывает функцию CoCreateInstance для создания экземпляра обработчика. Если код обработчика недоступен, используется обработчик по умолчанию (см. функцию OleCreateDefaultHandler ).
- Вызывает метод IOleObject::SetClientSite с параметром pClientSite , чтобы сообщить объекту о своем клиентском сайте.
- Вызывает метод QueryInterface для интерфейса IPersistStorage . В случае успешного выполнения для объекта вызывается метод IPersistStorage::Load .
- Запрашивает и возвращает интерфейс, определенный параметром riid .
Требования
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | ole2.h |
Библиотека | Ole32.lib |
DLL | Ole32.dll |