選擇性方法

OLE 元件可以實作介面,而不實作介面中每個方法的所有語意,而是視需要傳回E_NOTIMPL或S_OK。 下表描述 ActiveX 控制項容器不需要實作 (的方法,也就是控制項容器可以傳回E_NOTIMPL) 。

下表描述選擇性方法;請注意,方法必須仍然存在,但可以直接傳回E_NOTIMPL,而不是實作實際的語意。 請注意,下列未列出的強制介面中的任何方法都必須視為必要方法,而且可能不會傳回E_NOTIMPL。

IOleClientSite

方法 註解
SaveObject
需要持續性才能成功支援。
GetMoniker
只有在容器支援連結至本身表單或檔內的控制項時,才必要。

IOleInPlaceSite

方法 註解
CoNtextSensitiveHelp
選擇性
Scroll
可能會傳回沒有動作的S_FALSE。
DiscardUndoState
可以傳回沒有動作的S_OK。
DeactivateAndUndo
停用是必要的;復原是選擇性的。

IOleControlSite

方法 註解
GetExtendedControl
支援擴充控制項之容器的必要專案。
ShowPropertyFrame
除了控制項所提供的屬性頁之外,容器還需要包含自己的屬性頁來處理擴充控制項屬性。
TranslateAccelerator
可能會傳回沒有動作的S_FALSE。
LockInPlaceActive
選擇性

環境屬性 (IDispatch)

方法 註解
GetTypeInfoCount
支援非標準環境屬性的容器是必要的。
GetTypeInfo
支援非標準環境屬性的容器是必要的。
GetIDsOfNames
支援非標準環境屬性的容器是必要的。

IDispatch (事件接收)

方法 註解
GetTypeInfoCount
控制項知道自己的類型資訊,因此不需要呼叫此資訊。
GetTypeInfo
控制項知道自己的類型資訊,因此不需要呼叫此資訊。
GetIDsOfNames
控制項知道自己的類型資訊,因此不需要呼叫此資訊。

IOleInPlaceFrame

方法 註解
CoNtextSensitiveHelp
GetBorder
具有工具列 UI 的容器 (,這是選擇性)
RequestBorderSpace
具有工具列 UI 的容器 (,這是選擇性)
SetBorderSpace
具有工具列 UI 的容器 (,這是選擇性)
InsertMenus
具有功能表 UI (的容器是必要的,這是選擇性的)
SetMenu
具有功能表 UI (的容器是必要的,這是選擇性的)
RemoveMenus
具有功能表 UI (的容器是必要的,這是選擇性的)
SetStatusText
僅適用于具有狀態行的容器
EnableModeless
選擇性
TranslateAccelerator
選擇性

IOleContainer

方法 註解
ParseDisplayName
只有在支援連結至控制項或其他容器內嵌時,才支援,因為這是 Moniker 系結的必要專案。
LockContainer
針對 ParseDisplayName
EnumObjects
透過具有 IEnumUnknown的列舉值傳回所有 ActiveX 控制項,但不一定所有物件都 (,因為不保證所有物件都是 ActiveX 控制項;有些可能是一般 Windows 控制項) 。

容器