Необязательные методы в интерфейсах управления

Реализация интерфейса не обязательно означает реализацию всех методов этого интерфейса, чтобы сделать что-либо больше, чем возвращать E_NOTIMPL или S_OK соответствующим образом. В следующей таблице определены методы интерфейсов, перечисленных в разделе "Поддержка интерфейса" , который может реализовать элемент управления таким образом. Любой метод, не указанный здесь, должен быть полностью реализован, если интерфейс поддерживается.

IOleControl Комментарии
GetControlInfo, OnMnemonic
Обязательный для элементов управления с mnemonics.
IOleControl::OnAmbientPropertyChange
Обязательный для элементов управления, использующих внешние свойства.
IOleControl::FreezeEvents
См. раздел "Замораживание событий"
IOleObject
SetMoniker
Обязательно, если элемент управления не помечен OLEMISC_CANTLINKINSIDE
GetMoniker
Обязательно, если элемент управления не помечен OLEMISC_CANTLINKINSIDE
InitFromData
Необязательно
GetClipboardData
Необязательно
SetExtent
Обязательно только для DVASPECT_CONTENT
GetExtent
Обязательно только для DVASPECT_CONTENT
SetColorScheme
Необязательно
DoVerb
См. примечание 1
IOleInPlaceObject
ContextSensitiveHelp
Необязательно
Повторная активацияAndUndo
Необязательно
IOleInPlaceActiveObject
ContextSensitiveHelp
Необязательно
IViewObject2
Заморозить
Необязательно
Разморозить
Необязательно
GetColorSet
Необязательно
IPersistStream, IPersistStreamInit, IPersistMemory
GetSizeMax
См. примечание 2
  1. Элемент управления со страницами свойств должен поддерживать IOleObject::D oVerb для команд OLEIVERB_PROPERTIES и OLEIVERB_PRIMARY. Элемент управления, который может быть активным, должен поддерживать DoVerb для команды OLEIVERB_INPLACEACTIVATE. Элемент управления, который может быть активным в пользовательском интерфейсе, также должен поддерживать DoVerb для команды OLEIVERB_UIACTIVATE.
  2. Если элемент управления поддерживает IPersistStream или IPersistStreamInit и может возвращать точное значение, то он должен сделать это.

Элементы управления