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


Класс IPersistStorageImpl

Этот класс реализует интерфейс IPersistStorage .

Внимание

Этот класс и его члены нельзя использовать в приложениях, выполняемых в среде выполнения Windows.

Синтаксис

template <class T>
class ATL_NO_VTABLE IPersistStorageImpl : public IPersistStorage

Параметры

T
Класс, производный от IPersistStorageImpl.

Участники

Открытые методы

Имя Описание
IPersistStorageImpl::GetClassID Извлекает CLSID объекта.
IPersistStorageImpl::HandsOffStorage Указывает объекту освободить все объекты хранилища и ввести режим HandsOff. Реализация ATL возвращает S_OK.
IPersistStorageImpl::InitNew Инициализирует новое хранилище.
IPersistStorageImpl::IsDirty Проверяет, изменились ли данные объекта с момента последнего сохранения.
IPersistStorageImpl::Load Загружает свойства объекта из указанного хранилища.
IPersistStorageImpl::Save Сохраняет свойства объекта в указанном хранилище.
IPersistStorageImpl::SaveCompleted Уведомляет объект о том, что он может вернуться в обычный режим для записи в объект хранилища. Реализация ATL возвращает S_OK.

Замечания

IPersistStorageImplреализует интерфейс IPersistStorage, который позволяет клиенту запрашивать загрузку объекта и сохранять постоянные данные с помощью хранилища.

Реализация этого класса требует, чтобы класс T был IPersistStreamInit доступен через QueryInterfaceинтерфейс. Как правило, это означает, что класс T должен быть производным от IPersistStreamInitImpl, предоставлять запись для IPersistStreamInit карты COM и использовать карту свойств для описания постоянных данных класса.

Руководство по созданию проекта ATL в статьях ATL

Иерархия наследования

IPersistStorage

IPersistStorageImpl

Требования

Заголовок: atlcom.h

IPersistStorageImpl::GetClassID

Извлекает CLSID объекта.

STDMETHOD(GetClassID)(CLSID* pClassID);

Замечания

См . раздел IPersist::GetClassID в пакете SDK для Windows.

IPersistStorageImpl::HandsOffStorage

Указывает объекту освободить все объекты хранилища и ввести режим HandsOff.

STDMETHOD(HandsOffStorage)(void);

Возвращаемое значение

Возвращает S_OK.

Замечания

См. раздел IPersistStorage::HandsOffStorage в пакете SDK для Windows.

IPersistStorageImpl::InitNew

Инициализирует новое хранилище.

STDMETHOD(InitNew)(IStorage*);

Замечания

Реализация ATL делегирует интерфейсУ IPersistStreamInit .

См . раздел IPersistStorage:InitNew в пакете SDK для Windows.

IPersistStorageImpl::IsDirty

Проверяет, изменились ли данные объекта с момента последнего сохранения.

STDMETHOD(IsDirty)(void);

Замечания

Реализация ATL делегирует интерфейсУ IPersistStreamInit .

См . раздел IPersistStorage:IsDirty в пакете SDK для Windows.

IPersistStorageImpl::Load

Загружает свойства объекта из указанного хранилища.

STDMETHOD(Load)(IStorage* pStorage);

Замечания

Реализация ATL делегирует интерфейсУ IPersistStreamInit . Load использует поток с именем "Содержимое" для получения данных объекта. Метод Save изначально создает этот поток.

См. раздел IPersistStorage:Load в пакете SDK для Windows.

IPersistStorageImpl::Save

Сохраняет свойства объекта в указанном хранилище.

STDMETHOD(Save)(IStorage* pStorage, BOOL fSameAsLoad);

Замечания

Реализация ATL делегирует интерфейсУ IPersistStreamInit . При Save первом вызове он создает поток с именем "Содержимое" в указанном хранилище. Затем этот поток используется в последующих вызовах Save и вызовах load.

См. раздел IPersistStorage:Save in the Windows SDK.

IPersistStorageImpl::SaveCompleted

Уведомляет объект о том, что он может вернуться в обычный режим для записи в объект хранилища.

STDMETHOD(SaveCompleted)(IStorage*);

Возвращаемое значение

Возвращает S_OK.

Замечания

См. раздел IPersistStorage:SaveCompleted в пакете SDK для Windows.

См. также

Хранилища и потоки
Класс IPersistStreamInitImpl
Класс IPersistPropertyBagImpl
Общие сведения о классе