Метод IPersistStorage::Load (objidl.h)
Загружает объект из существующего хранилища.
Синтаксис
HRESULT Load(
[in] IStorage *pStg
);
Параметры
[in] pStg
Указатель IStorage на существующее хранилище, из которого должен быть загружен объект.
Возвращаемое значение
Этот метод может возвращать следующие значения.
Код возврата | Описание |
---|---|
|
Метод завершился успешно. |
|
Объект уже инициализирован предыдущим вызовом метода IPersistStorage::Load или метода IPersistStorage::InitNew . |
|
Объект не был загружен из-за нехватки памяти. |
|
Объект не был загружен по какой-либо причине, кроме нехватки памяти. |
Комментарии
Этот метод инициализирует объект из существующего хранилища. Объект помещается в загруженное состояние, если этот метод вызывается приложением-контейнером. При вызове обработчиком по умолчанию этот метод переводит объект в состояние выполнения.
Обработчик по умолчанию или сам объект может удерживать указатель IStorage во время загрузки или выполнения объекта.
Примечания к вызывающим абонентам
Вместо прямого вызова IPersistStorage::Load обычно вызывается вспомогающая функция OleLoad , которая выполняет следующие действия:- Создайте неинициализированный экземпляр класса объекта.
- Запросите новый экземпляр для интерфейса IPersistStorage .
- Вызовите Load , чтобы инициализировать объект из существующего хранилища.
Контейнер должен кэшировать указатель IPersistStorage для использования в последующих операциях с объектом .
Примечания для разработчиков
Чтобы загрузить объект, реализация должна выполнить следующие действия:- Откройте потоки объекта в объекте хранилища и считайте необходимые данные во внутренние структуры данных объекта.
- Снимите флаг грязное объекта.
- Вызовите метод AddRef и кэшируйте переданный в хранилище указатель.
- Не закрывайте и кэшируйте указатели на все потоки или хранилища, которые объекту потребуется сохранить в этом хранилище.
- Выполните любую другую инициализацию по умолчанию, необходимую для объекта .
Реализация этого метода должна возвращать код ошибки CO_E_ALREADYINITIALIZED, если она получает вызов метода IPersistStorage::InitNew или метода IPersistStorage::Load после его инициализации.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | objidl.h |