控件接口中的可选方法
实现接口并不一定表示实现该接口的所有方法,便可以执行除根据需要返回E_NOTIMPL 或 S_OK 之外更多的操作。 下表提供为接口提供支持的意义主题中列出的控件可以实现的接口方法。 如果支持接口,则必须完全实现此处未列出的任何方法。
IOleControl | 注释 |
---|---|
GetControlInfo、OnMnemonic |
对于具有助记符的控件是必需的。 |
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 |
- 对于 OLEIVERB_PROPERTIES 和 OLEIVERB_PRIMARY 谓词,具有属性页的控件必须支持 IOleObject::DoVerb。 对于 OLEIVERB_INPLACEACTIVATE 谓词,可处于活动状态的控件必须支持 DoVerb。 对于 OLEIVERB_UIACTIVATE 谓词,可处于 UI 活动状态的控件还必须支持 DoVerb。
- 如果控件支持 IPersistStream 或 IPersistStreamInit,并且可以返回准确的值,则应这样做。