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