Класс IPersistStorageImpl
Этот класс реализует интерфейс IPersist служба хранилища.
Важно!
Этот класс и его члены нельзя использовать в приложениях, выполняемых в среде выполнения Windows.
Синтаксис
template <class T>
class ATL_NO_VTABLE IPersistStorageImpl : public IPersistStorage
Параметры
T
Класс, производный от IPersistStorageImpl
.
Участники
Открытые методы
Имя | Описание |
---|---|
IPersist служба хранилища Impl::GetClassID | Извлекает CLSID объекта. |
IPersist служба хранилища Impl::HandsOff служба хранилища | Указывает объекту освободить все объекты хранилища и ввести режим HandsOff. Реализация ATL возвращает S_OK. |
IPersist служба хранилища Impl::InitNew | Инициализирует новое хранилище. |
IPersist служба хранилища Impl::IsDirty | Проверяет, изменились ли данные объекта с момента последнего сохранения. |
IPersist служба хранилища Impl::Load | Загружает свойства объекта из указанного хранилища. |
IPersist служба хранилища Impl::Save | Сохраняет свойства объекта в указанном хранилище. |
IPersist служба хранилища Impl::SaveCompleted | Уведомляет объект о том, что он может вернуться в обычный режим для записи в объект хранилища. Реализация ATL возвращает S_OK. |
Замечания
IPersistStorageImpl
реализует интерфейс IPersist служба хранилища, который позволяет клиенту запрашивать загрузку объекта и сохранять постоянные данные с помощью хранилища.
Реализация этого класса требует, чтобы класс T
был IPersistStreamInit
доступен через QueryInterface
интерфейс. Как правило, это означает, что класс T
должен быть производным от IPersistStreamInitImpl, предоставлять запись для IPersistStreamInit
карты COM и использовать карту свойств для описания постоянных данных класса.
Руководство по созданию проекта ATL в статьяхATL
Иерархия наследования
IPersistStorage
IPersistStorageImpl
Требования
Заголовок: atlcom.h
IPersist служба хранилища Impl::GetClassID
Извлекает CLSID объекта.
STDMETHOD(GetClassID)(CLSID* pClassID);
Замечания
См . раздел IPersist::GetClassID в пакете SDK для Windows.
IPersist служба хранилища Impl::HandsOff служба хранилища
Указывает объекту освободить все объекты хранилища и ввести режим HandsOff.
STDMETHOD(HandsOffStorage)(void);
Возвращаемое значение
Возвращает S_OK.
Замечания
См. раздел IPersist служба хранилища::HandsOff служба хранилища в пакете SDK для Windows.
IPersist служба хранилища Impl::InitNew
Инициализирует новое хранилище.
STDMETHOD(InitNew)(IStorage*);
Замечания
Реализация ATL делегирует интерфейсУ IPersistStreamInit .
См. раздел IPersist служба хранилища:InitNew в пакете SDK для Windows.
IPersist служба хранилища Impl::IsDirty
Проверяет, изменились ли данные объекта с момента последнего сохранения.
STDMETHOD(IsDirty)(void);
Замечания
Реализация ATL делегирует интерфейсУ IPersistStreamInit .
См. раздел IPersist служба хранилища:IsDirty в пакете SDK для Windows.
IPersist служба хранилища Impl::Load
Загружает свойства объекта из указанного хранилища.
STDMETHOD(Load)(IStorage* pStorage);
Замечания
Реализация ATL делегирует интерфейсУ IPersistStreamInit . Load
использует поток с именем "Содержимое" для получения данных объекта. Метод Save изначально создает этот поток.
См. раздел IPersist служба хранилища:Load в пакете SDK для Windows.
IPersist служба хранилища Impl::Save
Сохраняет свойства объекта в указанном хранилище.
STDMETHOD(Save)(IStorage* pStorage, BOOL fSameAsLoad);
Замечания
Реализация ATL делегирует интерфейсУ IPersistStreamInit . При Save
первом вызове он создает поток с именем "Содержимое" в указанном хранилище. Затем этот поток используется в последующих вызовах Save
и вызовах load.
См. раздел IPersist служба хранилища:Save in the Windows SDK.
IPersist служба хранилища Impl::SaveCompleted
Уведомляет объект о том, что он может вернуться в обычный режим для записи в объект хранилища.
STDMETHOD(SaveCompleted)(IStorage*);
Возвращаемое значение
Возвращает S_OK.
Замечания
См. раздел IPersist служба хранилища:SaveCompleted в пакете SDK для Windows.
См. также
служба хранилища и Потоки
Класс IPersistStreamInitImpl
Класс IPersistPropertyBagImpl
Общие сведения о классе
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по