基本上我想開發一個BHO來驗證表單上的某些字段,並在適當的字段中自動放置一次性電子郵件(更多用於我自己的知識)。所以在DocumentComplete事件我有這樣的:BHO處理OnSubmit事件
for(long i = 0; i < *len; i++)
{
VARIANT* name = new VARIANT();
name->vt = VT_I4;
name->intVal = i;
VARIANT* id = new VARIANT();
id->vt = VT_I4;
id->intVal = 0;
IDispatch* disp = 0;
IHTMLFormElement* form = 0;
HRESULT r = forms->item(*name,*id,&disp);
if(S_OK != r)
{
MessageBox(0,L"Failed to get form dispatch",L"",0);// debug only
continue;
}
disp->QueryInterface(IID_IHTMLFormElement2,(void**)&form);
if(form == 0)
{
MessageBox(0,L"Failed to get form element from dispatch",L"",0);// debug only
continue;
}
// Code to listen for onsubmit events here...
}
我將如何使用IHTMLFormElement接口來監聽onsubmit事件?
有一堆關於你的代碼的事情,我會改變。首先:不要創建新的VARIANTS,只需在堆棧中聲明它們並正常傳遞它們即可。無論哪種方式,確保您在完成對它們的調用時調用VariantClear(),以便它們正確釋放。另外,考慮使用成功(小時)而不是S_OK!= r ... – 2009-09-13 18:50:39