I am learning to write a BHO in c#, and i have written event handlers for DocumentComplete and BeforeNavigate2. During debugging i notice that they are triggered multiple times for certain webpages like yahoo.co.in.
I understand that this could be because of presence of multiple frames in the page. My questions are:-
- How do i know which is the event for the complete page being loaded?
- How do i know which is the event which gets triggered when we are about to navigate away from the page?
Adding Some Sample Code
private InternetExplorer iExplorer;
int IObjectWithSite.SetSite(object pUnkSite)
{
if (pUnkSite != null)
{
ieInstance = (InternetExplorer)pUnkSite;
// Register the DocumentComplete event.
ieInstance.DocumentComplete += new DWebBrowserEvents2_DocumentCompleteEventHandler(ieInstance_DocumentComplete);
ieInstance.BeforeNavigate2 += new DWebBrowserEvents2_BeforeNavigate2EventHandler(ieInstance_BeforeNavigate2);
}
return 0;
}
private void ieInstance_BeforeNavigate2(object pDisp, ref object URL, ref object Flags, ref object TargetFrameName, ref object PostData, ref object Headers, ref bool Cancel)
{
}
private void ieInstance_DocumentComplete(object pDisp, ref object URL)
{
}