獲取網頁呼叫的ActiveX控制項的方法

2021-05-02 15:51:52 字數 903 閱讀 4719

在研究掛馬網頁的時候,為了獲得乙個網頁呼叫的activex的函式,想出了如下方法:

hook cogetclassobject和cogetclassobjectfromurl,ie建立acitivex的時候都呼叫這兩個函式。

函式原型如下

cogetclassobjectfromurl(refclsid rclassid, lpcwstr szcode, dword dwfileversionms, dword dwfileversionls, lpcwstr sztype, lpbindctx pbindctx, dword dwclscontext, lpvoid pvreserved, refiid riid, lpvoid * ppv)

cogetclassobject(refclsid rclsid, dword dwclscontext, lpvoid pvreserved,refiid riid, lpvoid far* ppv)

其中 rclassid 是需要建立的activex,lpvoid far* ppv是返回的介面指標,

對於我們感興趣的activex,我們直接返回自己實現的 idispatch 介面,指令碼要呼叫activex的函式,都需要呼叫 idispatch的 getidsofnames方法來獲得函式的invoke id,該方法原型如下:

getidsofnames(refiid riid,

lpolestr __rpc_far *rgsznames,

uint cnames,

lcid lcid,

dispid __rpc_far *rgdispid);

其中,rgsznames就是網頁將要呼叫的函式名。

對於從ie不用guid,而用progid呼叫activex的方法,需要hook clsidfromprogid和clsidfromprogidex。

在網頁中呼叫ActiveX

最主要的就是這個了,在html中加入object的標籤 1.如果是用vc開發,classid等資訊可以從控制項工程的.odl檔案來找 我的控制項如下 2.如果是用visual studio,可以用它自帶的小工具ole view 3.如果控制項已經被註冊了,可以直接檢視嘍 在js裡面呼叫ocx的函式則...

關於網頁呼叫ActiveX控制項的補充

實現了isafeobject介面或是使用分組管理器 component categories manager 標記安全控制項 前提 1。在ax控制項中已經實現了isafeobject介面 或是修改了登錄檔 3。檢視登錄檔,發現我的cab中的控制項 ocx 及其依賴的dll已經成功的註冊到機器中。這點...

C 中對ActiveX控制項的呼叫

一 不生成具有強名稱的程式集 1.使用下面這兩個命令將com控制項轉換成.net程式集 aximp c windows system shdocvw.dll tlbimp mshtml.tlb aximp將產生兩個檔案 axshdocvw.dll and shdocvw.dll.tlbimp將產生m...