Error 800706B5 when calling IWebBrowser2-> get_Document

On Vista using IE8, I have an instance of IWebBrowser2 that I am using to get the current HTML document:

IWebBrowser2* browser;
CComPtr<IDispatch> disp;
HRESULT hr = browser->get_Document(&disp);

      

When done by the administrator, the call succeeds. However, when called by a normal user, the call returns the error code "800706B5" ("Interface unknown") even though the page is on "Trusted site" and "Protected mode".

This same code worked seamlessly in IE7 on Vista and IE8 on XP.

Does anyone know why this error might occur and what can I do to fix the problem? Running as administrator is less than ideal and Jon Skeet is stumped too :)

Update: The question seems to revolve around UAC: disabling UAC completely allows things to work for the average user (although this is clearly unsafe)

+2


source to share


2 answers


The error occurs because in Vista IE 8 runs in "low integrity" mode, while my test code, running as a normal user, runs in "medium integrity". The security model is designed in such a way that code can send instructions to reduce integrity components, but by default data cannot be read from "lower" to "higher" components.



This document provides more information on How the Integrity Mechanism is Implemented in Windows Vista

+1


source


Has IE8 been installed by a "This User Only" administrator? I don't know why, or if it will give this error, just a guess.



0


source







All Articles