Интерфейс 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 |