Fondamentalement, je veux développer un BHO qui valide certains champs sur un formulaire et place automatiquement les e-mails jetables dans les champs appropriés (plus pour ma propre connaissance). Donc, si je DocumentComplete ceci:BHO Handle OnSubmit événement
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...
}
Comment puis-je utiliser pour écouter l'interface IHTMLFormElement pour l'événement onsubmit?
Il y a un tas de choses au sujet de votre code que je changerais. Premièrement: ne créez pas de nouveaux VARIANTES, déclarez-les simplement sur la pile et transmettez-les normalement. De toute façon, assurez-vous que vous appelez VariantClear() sur eux lorsque vous avez terminé avec eux afin qu'ils soient libérés correctement. Aussi, pensez à utiliser SUCCEEDED (hr) au lieu de S_OK! = R ... –