共用方式為


必要的介面 (COM)

下表列出 ActiveX 控制件容器介面,並表示哪些介面是選擇性的,哪些是強制性的,而且必須由控件容器實作。

介面 是必要的嗎? 註解
IOleClientSite
Yes
IAdviseSink
No
只有當容器需要 (a) 資料變更通知時(具有 IDataObject 的控件)、(b) 檢視變更通知(未使用中且具有 IViewObjectIViewObject2 的控件),以及 (c) 做為標準內嵌物件的控件的其他通知。
IOleInPlaceSite
Yes
IOleControlSite
Yes
IOleInPlaceFrame
Yes
IOleContainer
Yes
請參閱附注 1
環境屬性的 IDispatch
Yes
請參閱附注 2 和 控件的環境屬性
控制事件集
Yes
請參閱附注 2
ISimpleFrameSite
No
ISimpleFrameSite 和支援巢狀簡單框架是選擇性的。
IPropertyNotifySink
No
只有當控件變更屬性本身或 (b) 想要控制 [requestedit] 屬性變更和其他這類數據系結功能時,才需要更新 (a) 擁有自己的屬性編輯 UI 的容器。
IErrorInfo
Yes
如果容器支援雙重介面,則為必要。 請參閱附注 2。
IClassFactory2
No
強烈建議支援。
  1. IOleContainer 是在保存容器網站的檔或窗體對象上實作的(或適當的類比)。 控制項會使用 IOleContainer 瀏覽至相同檔或表單中的其他控制項。
  2. 對雙重介面的支持並非必要,但強烈建議使用。 撰寫 ActiveX 控制件容器以利用雙重介面,可透過提供雙重介面支援的控制項提供更佳的效能。

ActiveX 控件容器必須支援 OLE 自動化例外狀況。 如果控件容器支援雙重介面,則必須透過 IErrorInfo 擷取自動化例外狀況

容器