Поделиться через


Функция 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 при успешном выполнении. Ниже перечислены другие возможные значения.

Код возврата Описание
E_NOINTERFACE
Объект не поддерживает указанный интерфейс.
 

Кроме того, эта функция может возвращать любые значения ошибок, возвращаемые методом 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