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


Интерфейс IOleUndoUnit (ocidl.h)

Служит интерфейсом main в блоке отмены. Блок отмены инкапсулирует сведения, необходимые для отмены или повторного выполнения одного действия.

Когда состояние объекта изменяется и ему необходимо создать единицу отмены, сначала необходимо знать, какие родительские единицы открыты. Для определения этого вызывается метод IOleUndoManager::GetOpenParentState . Если вызов возвращает S_FALSE, то нет включенного родительского элемента. Если вызов возвращает S_OK но флаг UAS_NOPARENTENABLE установлен, открытый родительский элемент является отключенным родительским элементом. В любом из этих случаев объект вызывает IOleUndoManager::D iscardFrom(NULL) в диспетчере отмены и пропускает создание блока отмены.

Если метод возвращает S_OK, но установлен флаг UAS_BLOCKED, то открытый родительский элемент является блокирующим родительским элементом. Объекту не нужно создавать единицу отмены, так как она будет немедленно удалена. Если возвращаемое значение равно S_OK и ни для того, ни другого битового флага не задано, объект создает единицу отмены и вызывает IOleUndoManager::Add в диспетчере отмены.

Объект должен сохранить указатель на диспетчер отмены.

Наследование

Интерфейс IOleUndoUnit наследуется от интерфейса IUnknown . IOleUndoUnit также имеет следующие типы членов:

Методы

Интерфейс IOleUndoUnit содержит следующие методы.

 
IOleUndoUnit::D o

Указывает блоку отмены выполнить свое действие. Обратите внимание, что если он содержит дочерние единицы отмены, он также должен вызывать их методы Do.
IOleUndoUnit::GetDescription

Получает описание единицы отмены, которую можно использовать в пользовательском интерфейсе отмены или повтора.
IOleUndoUnit::GetUnitType

Извлекает идентификатор CLSID и идентификатор типа для единицы отмены.
IOleUndoUnit::OnNextAdd

Уведомляет последний модуль отмены в коллекции о том, что была добавлена новая единица.

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header ocidl.h

См. также раздел

IOleParentUndoUnit

IOleUndoManager