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