首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> VC >> 關於VC++

ActiveX 控件瀏覽器免警告部署:元件分類註冊表法 (MFC 適用)

     編輯:關於VC++

MFC 開發的 ActiveX 控件在瀏覽器載入常彈「腳本不安全」警告。除實現 IObjectSafety 外,修改註冊表註冊元件分類 (Component Categories) 更簡便:標記控件為「安全初始化」與「安全腳本執行」。

核心代碼結構

需包含 comcat.h、objsafe.h,定義控件 CLSID (CLSID_SafeItem)。四大輔助函數:

  • CreateComponentCategory(CATID, 描述):建立分類 (調用 ICatRegister::RegisterCategories)
  • RegisterCLSIDInCategory(CLSID, CATID):將 CLSID 註冊至分類 (RegisterClassImplCategories)
  • UnRegisterCLSIDInCategory(CLSID, CATID):反註冊 (UnRegisterClassImplCategories)
  • DllRegisterServer:註冊類庫、類工廠後,建立並註冊兩分類:
    CATID_SafeForInitializing (持久化數據安全初始化)
    CATID_SafeForScripting (腳本安全)
  • DllUnregisterServer:反向清理分類註冊

關鍵常量

CATID_SafeForInitializing = {7DD95801-9882-11CF-9FA9-00AA006C42C4}
CATID_SafeForScripting    = {7DD95802-9882-11CF-9FA9-00AA006C42C4}

適用場景

MFC 專案中修改 DllRegisterServer/UnregisterServer 即可,無需修改控件類代碼。ATL 專案建議直接勾選專案向導的「Support IObjectSafety」選項。測試:IE 載入控件不再彈警告,腳本可直接調用方法/屬性。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved