如何啟用處理 Web 網頁上的 ActiveX 控制項事件

摘要

ActiveX 控制項必須實作 IProvideClassInfo 或 IProvideClassInfo2 的介面,可讓 Web 網頁上的事件處理。Microsoft Internet Explorer 會使用這個介面來取得控制項的型別程式庫,並決定可用的事件集。

其他相關資訊

使用指令碼語言,例如 VBScript 或 JavaScript,網頁作者可以使用自動化來叫用方法/屬性,並處理放置在網頁的 HTML < 物件 > 標籤上的 ActiveX 控制項的事件。為一種 ActiveX 控制項,來支援這類的事件處理,它必須實作 IProvideClassInfo 或 IProvideClassInfo2 的介面。Internet Explorer 查詢這些介面的控制項,並且如果實作,呼叫 GetClassInfo() 方法,以取得控制項的型別程式庫。Internet Explorer 會將一開始查詢 IProvideClassInfo2 控制項,以及如果未實作,然後將查詢的介面衍生自 IProvideClassInfo,並提供另一種方法,GetGUID() 的 IProvideClassInfo.The IProvideClassInfo2會傳回物件的連出介面 ID,它的預設事件集。對於使用 Mfc 開發的 ActiveX 控制項,預設情況下實作 IProvideClassInfo2 介面。對於使用 Microsoft Visual Basic 開發的 ActiveX 控制項,預設情況下實作 IProvideClassInfo 介面。當使用 Microsoft 使用中範本程式庫 (ATL),版本 3.0 中,下列 [精簡控制] 的 ATL 物件不會實作 IProvideClassInfo2 介面預設情況下:

  • 簡單物件

  • Internet Explorer 物件

  • 精簡的控制項

  • 精簡的複合控制項

  • 精簡的 HTML 控制項

您可以輕鬆加入事件處理藉由實作 IProvideClassInfo 介面的支援。這是從預設的 ATL 實作,IProvideClassInfo2Impl 衍生您的控制項。

  1. 加入您的類別衍生清單中的下面這一行:

       public IProvideClassInfo2Impl<&CLSID_<object_name>, NULL,                                 &LIBID_<project_name>Lib>
  2. 將下列幾行加入至您的 COM_MAP 中:

       COM_INTERFACE_ENTRY(IProvideClassInfo)   COM_INTERFACE_ENTRY(IProvideClassInfo2)

參考

如需有關使用中的樣板程式庫和實作的 ActiveX 控制項的詳細資訊,請參閱 Microsoft Visual C++ 線上文件。如需有關 Microsoft Internet Explorer 開發以 Web 為基礎的解決方案的詳細資訊,請造訪下列 Microsoft 網站取得:

(c) Microsoft Corporation 1999,國際著作權公約保護。由標記 Davis,Microsoft Corporation 的貢獻。

Need more help?

Expand your skills
Explore Training
Get new features first
Join Microsoft Insiders

Was this information helpful?

Thank you for your feedback!

×