После регистрации BHO на машине с Win7 я понял, что что-то не так. Когда IE не открыт как администратор, события OnBeforeNavigate2 и OnDocumentComplete WebBrowser не запускаются. Когда я запускаю IE как администратор, эти методы запускаются правильно. Я подписываюсь на эти методы следующим образом:
public int SetSite(object site)
{
if (site != null)
{
webBrowser = (WebBrowser)site;
webBrowser.DocumentComplete += new DWebBrowserEvents2_DocumentCompleteEventHandler(this.OnDocumentComplete);
webBrowser.BeforeNavigate2 += new DWebBrowserEvents2_BeforeNavigate2EventHandler(this.OnBeforeNavigate2);
}
else
{
webBrowser.DocumentComplete -= new DWebBrowserEvents2_DocumentCompleteEventHandler(this.OnDocumentComplete);
webBrowser.BeforeNavigate2 -= new DWebBrowserEvents2_BeforeNavigate2EventHandler(this.OnBeforeNavigate2);
}
return 0;
}
Функция UAC включена со значением по умолчанию.
На машине с Windows XP все было в порядке (даже на ограниченной учетной записи).