翻譯|其它|編輯:郝浩|2006-06-23 16:56:00.000|閱讀 1871 次
概述:
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
從技術角度看,ActiveX 容器是一個 COM 對象,它支持幾個必選接口和幾個可選接口。表 1 顯示容器使用的接口列表。(該信息來源于 。)
表 1. 容器使用的接口(及其支持) | ||
接口 | 支持 | 注釋 |
可選 | 僅當容器需要通知時,該接口才是必需的,例如,從具有 IDataObject 接口的控件發出的數據更改通知;從具有 IViewObject2 接口的非活動控件發出的視圖更改通知;從作為標準嵌入對象的控件發出的其他通知。 | |
IClassFactory2 | 可選 | 該接口不是必需的,但建議對其提供支持。 |
環境屬性的 IDispatch | 必需 | N/A |
必需 | 如果容器支持雙接口,則該接口是必需的。 | |
必需 | N/A | |
IOleContainer | 必需 | 該接口在存儲容器站點的文檔或窗體對象上實現。控件使用 IOleContainer 接口導航到相同文檔或窗體中的其他控件。 |
IOleControlSite | 必需 | N/A |
IOleInPlaceFrame | 必需 | N/A |
IOleInPlaceSite | 必需 | N/A |
IPropertyNotifySink | 可選 | 只有那些具有自己的屬性編輯用戶界面 (UI) 的容器才需要該接口。 |
必需 | 該接口在容器中實現,從宿主控件查詢,由容器使用。 | |
必需 | N/A | |
ISimpleFrameSite | 可選 | 除了對嵌套的簡單框架的支持,該接口是可選的。 |
因為您要編寫一個在移動設備上使用,并且具有有限的 支持的容器,所以您要忽略大多數可選功能以及一些必選功能來簡化任務。
自身強加的限制
您要編寫的容器一次僅限于一個控件。如果需要在窗體上宿主一個以上的 ActiveX 控件,您就必須創建兩個不同的容器。因此,您可以不必考慮 ISimpleFrameSite 接口。
您還可以忽略其他接口。例如,您不想提供屬性編輯;因此忽略 IPropertyNotifySink 接口。IClassFactory2 和 IDispatch 接口顯然不是必要的,因為 CCW(.NET Compact Framework 中的部分 COM 支持)負責類的實例化和 IDispatch 實現。目前,除了通過事件接口傳遞的通知,您不需要任何其他通知,因此您可以忽略 IAdviseSink 接口。最終,不再需要支持文檔或多個控件,因此您可以將 IOleContainer 接口作為存根實現。您也不會在容器上實現 IErrorInfo 接口,因為您將通過異常機制接收錯誤信息。
標簽:
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn