控件接口中的可选方法

实现接口并不一定表示实现该接口的所有方法,便可以执行除根据需要返回E_NOTIMPL 或 S_OK 之外更多的操作。 下表提供为接口提供支持的意义主题中列出的控件可以实现的接口方法。 如果支持接口,则必须完全实现此处未列出的任何方法。

IOleControl 注释
GetControlInfoOnMnemonic
对于具有助记符的控件是必需的。
IOleControl::OnAmbientPropertyChange
对于使用环境属性的控件是必需的。
IOleControl::FreezeEvents
请参阅事件冻结
IOleObject
SetMoniker
如果未使用 OLEMISC_CANTLINKINSIDE 标记控件,则为必需
GetMoniker
如果未使用 OLEMISC_CANTLINKINSIDE 标记控件,则为必需
InitFromData
可选
GetClipboardData
可选
SetExtent
仅对于 DVASPECT_CONTENT 是必需的
GetExtent
仅对于 DVASPECT_CONTENT 是必需的
SetColorScheme
可选
DoVerb
请参阅说明 1
IOleInPlaceObject
ContextSensitiveHelp
可选
ReactivateAndUndo
可选
IOleInPlaceActiveObject
ContextSensitiveHelp
可选
IViewObject2
冻结
可选
Unfreeze
可选
GetColorSet
可选
IPersistStream、IPersistStreamInit、IPersistMemory
GetSizeMax
查看注释 2
  1. 对于 OLEIVERB_PROPERTIES 和 OLEIVERB_PRIMARY 谓词,具有属性页的控件必须支持 IOleObject::DoVerb。 对于 OLEIVERB_INPLACEACTIVATE 谓词,可处于活动状态的控件必须支持 DoVerb。 对于 OLEIVERB_UIACTIVATE 谓词,可处于 UI 活动状态的控件还必须支持 DoVerb
  2. 如果控件支持 IPersistStreamIPersistStreamInit,并且可以返回准确的值,则应这样做。

Controls