使用容器的功能

前幾節已說明 ActiveX 控制項必須具備的一些必要呼叫端支援,才能存取其容器的某些功能。 下表描述控制件的容器埠使用方式,以及何時會發生這類使用方式。

介面 Container 物件 使用方式
IOleClientSite
Site
作 IOleObject 的控件會呼叫 IOleClientSite 方法作為標準 OLE 內嵌通訊協定的一部分,特別是 SaveObject、ShowObjectOnShowWindow 方法(只有在支援個別窗口啟用狀態時)、RequestNewObjectLayout 和 GetContainer(如果需要與其他控件的通訊)。 只有在控件可以連結至外部時,才會使用 GetMoniker 方法,也就是說,控件不會標示為OLEMISC_CANTLINKINSIDE。
IOleInPlaceSite
Site
具有就地啟動且可能為UI作用中狀態的控件會呼叫IOleInPlaceSite方法(一般都是ContextSensitiveHelp除外)作為標準 OLE 就地啟用通訊協定的一部分。
IAdviseSink
Site
如果控件支援 IDataObject、如果控件支援 IViewObject2則控件會呼叫 OnDataChange,如果控件支援 IOleObject,則為 OnCloseOnSave OnRename。
IOleControlSite
Site
如果支援,當助記鍵變更時,控件會呼叫 OnControlInfoChanged如果引發事件,則 LockInPlaceActive TransformCoords 會呼叫 OnControlInfoChanged (只有在座標傳遞為事件自變數時,才會使用後者的方法)、OnFocus TranslateAccelerator,如果控件具有 UI 使用中狀態,則為 GetExtendedControl如果控制項要檢視擴充控制元件 (容器擁有) 屬性, 則為 。
IDispatch (環境屬性)
Site
用來存取環境屬性。
IPropertyNotifySink
不定
控件必須針對標示為 [可系結] 和 [request] 的任何控件屬性產生 OnChanged OnRequestEdit。
其他事件接收介面
不定
具有 IPropertyNotifySink 以外的傳出介面的控件,將會將正確 IID 的其他介面指標交給控件的 I 連線 ionPoint::建議實作(通常位於控件的子物件中)。 控件一律知道如何呼叫自己的事件介面,因為控件會定義這些介面。
IOleInPlaceFrame
Frame
當控件具有需要框架層級工具或功能表項的就地 UI 作用中狀態時使用。
IOleInPlaceUIWindow
文件
只有當控件具有需要檔層級或窗格層級 UI 工具的就地 UI 使用中狀態時使用。 這是罕見的。

控制項