只要你的物件實做符合 ActiveX 規定的介面, 那麼所有你的元件就可以在任何支援 ActiveX 的環境下執行 包含 IE. 如果想要一句話解釋這東西, 那麼最簡單最不負責任的說法, 就是物件版本的 dll 吧.
問題是大家似乎都不清楚要如何增加這東西一個 method , 所以一般都使用 Visual Studio 中的MFC ActiveX Control 精靈 ,幫我們增加 method或操作. (我知道有一種東西是 ATL, 今天我們先不討論這個)
可是你知道精靈到底在後面搞什麼鬼嗎?
只有手動自己加你才會知道真相. 當你會自己加 method 後 你就會知道怎麼移除一個 method.
別擔心整個流程只有 5 個步驟, 其中只有一開始的三個步驟你不熟.
我們開始吧. ^_^
本文內容:
1. 手動增加 ActiveX 元件 method
2. 簡單的 ActiveX Control Pad 取得 元件的 html 寫法
3. 在 IE 上, 簡單測試你的 新method
下載: 完整專案
手動增加 ActiveX 元件 method
Step 1: 在 xx.idl 中加入一個新的 Method
[id(2), helpstring("method cc")] void cc(ULONG 參數);
詳細如下:
Step 2: 到 xxCtrl.h 中, 新增一個號碼 id
dispidcc=2L
(因為前面已經有一個 method bb, 所以我們的 id 要設定為 2)
詳細如下:
(別忘了兩個 id 之間要用逗號分開)
Step 3: 在 xxCtrl.cpp 中, 加入 Dispatch map
DISP_FUNCTION_ID(CkkCtrl, "cc", dispidcc, cc, VT_EMPTY, VTS_UI4)
詳細如下:
接下來是我們熟悉的部分,
Step 4: 在 xxCtrl.h 中, 新增 你的 method prototype
void cc(ULONG CallerID);
詳細如下:
Step5: 在 xxCtrl.cpp 中, 加入你的 method 實做
------------------------in xx Ctrl.cpp -------------------
void CkkCtrl::cc(ULONG CallerID){
MessageBox(_T("Hello, I am cc"),_T("cc"),MB_OK);
}
Step 6: 完成
簡單的 ActiveX Control Pad 取得 元件的 html 寫法
:檢測我們的新 method
Step 1: 啟動 ActiveX Control Pad
(下載)
Step 2: 加入我們的 ActiveX 元件
Step 3: 關掉 Edit ActiveX Control 視窗
Step 4: 儲存產生出來的 Html 檔
Step 5: 撰寫一個簡單按鈕測試
<HTML>
<HEAD>
<TITLE>New Page</TITLE>
</HEAD>
<BODY>
<OBJECT ID="kk1" WIDTH=100 HEIGHT=51
CLASSID="CLSID:2E01A484-897A-488F-AFEA-7F32F1A115FB">
<PARAM NAME="_Version" VALUE="65536">
<PARAM NAME="_ExtentX" VALUE="2646">
<PARAM NAME="_ExtentY" VALUE="1323">
<PARAM NAME="_StockProps" VALUE="0">
</OBJECT>
<input type="button" onclick='kk1.cc(123);' value="測試 cc method" />
</BODY>
</HTML>
Step 6: 按下測試
Step 7: 完成
希望對你有幫助. Enjoy.
by Jing
沒有留言:
張貼留言