Saulius Krasuckas wrote:
- On Sun, 14 Aug 2005, Jacek Caban wrote:
I'm not sure if it is a correct fix. Although it avoids crashes, much less functionality of QueryStatus is tested. Before your patch all possible commands were tested.
This is true only for nt family windows. :-P On 9x test function exits on an exception.
As I wrote before, it'll be probably true for 9x family after UIActivate succeeded.
it seems to be a case similar to crashes on xp while HTMLDocument is not active in place. In this case it is not active in place because UIActivate fails. Looking at the test results, UIActivate is a problem on every win 9x and causes most tests to fail. So first UIActivate should be fixed and then, if this problem remains, we'll be sure that your fix is correct.
I don't understand much in all this OLE/In-Place stuph, so I agree, but still I doubt this would be a sufficient to proof my patch is correct. :-]
Presently if you want to make this test not to crash, you may disable IOleCommand tests if UIActivate fails.
I will try, but what should be done with this (inside test_HTMLDocument)?
| OLECMD cmd[2] = { | {OLECMDID_OPEN, 0xf0f0}, | {OLECMDID_GETPRINTTEMPLATE+1, 0xf0f0} | }; | | hres = IOleCommandTarget_QueryStatus(cmdtrg, NULL, 2, cmd, NULL); | ok(hres == OLECMDERR_E_NOTSUPPORTED, | "QueryStatus failed: %08lx, expected OLECMDERR_E_NOTSUPPORTED\n", hres);
It should be disabled as well.
Or IOW, why first call generates exception on OLECMDID_OPEN command while second do not?
| hres = IOleCommandTarget_QueryStatus(cmdtrg, NULL, 2, cmd, NULL); | hres = IOleCommandTarget_QueryStatus(cmdtrg, &IID_IHTMLDocument2, 2, cmd, NULL);
OLECMDID_OPEN seems to be supported at least on winME. I am curious, why?
The second call returns after checking that IID_IHTMLDocument2 is not a valid command group id and it doesn't have to check anything else like the current state of HTMLDocument.
My guess is that it requires to be loaded before a call to UIActivate,
What do you exactly mean by "it"?
HTMLDocument
so the attached patch might help (even if so, a few other tests will fail, but currently the most interesting is UIActivate),
No, the patch didn't help.
OK, I'll take a look at this today or tomorrow.
Is something like this OK? I have "borrowed" boolean variable expect_SetActiveObject_active.
Yes, it looks good.
Thanks, Jacek