~ubuntu-wine/ubuntu/lucid/wine1.2/wine1.2+winepulse

« back to all changes in this revision

Viewing changes to dlls/mshtml/tests/htmldoc.c

  • Committer: Bazaar Package Importer
  • Author(s): Scott Ritchie
  • Date: 2010-02-02 11:15:03 UTC
  • mfrom: (1.1.9 upstream)
  • Revision ID: james.westby@ubuntu.com-20100202111503-w4ayji21ei1ginjr
Tags: 1.1.37-0ubuntu1
* New upstream release
  - A number of fixes in AVI file support.
  - Several MSXML improvements.
  - A few MSI fixes.
  - Various bug fixes.

Show diffs side-by-side

added added

removed removed

Lines of Context:
188
188
static const WCHAR about_blank_url[] = {'a','b','o','u','t',':','b','l','a','n','k',0};
189
189
 
190
190
static HRESULT QueryInterface(REFIID riid, void **ppv);
191
 
static void test_MSHTML_QueryStatus(IUnknown*,DWORD);
 
191
static void test_MSHTML_QueryStatus(IHTMLDocument2*,DWORD);
192
192
 
193
193
#define test_readyState(u) _test_readyState(__LINE__,u)
194
194
static void _test_readyState(unsigned,IUnknown*);
2943
2943
    IConnectionPoint_Release(cp);
2944
2944
}
2945
2945
 
2946
 
static void test_ConnectionPointContainer(IUnknown *unk)
 
2946
static void test_ConnectionPointContainer(IHTMLDocument2 *doc)
2947
2947
{
2948
2948
    IConnectionPointContainer *container;
2949
2949
    HRESULT hres;
2950
2950
 
2951
 
    hres = IUnknown_QueryInterface(unk, &IID_IConnectionPointContainer, (void**)&container);
 
2951
    hres = IUnknown_QueryInterface(doc, &IID_IConnectionPointContainer, (void**)&container);
2952
2952
    ok(hres == S_OK, "QueryInterface(IID_IConnectionPointContainer) failed: %08x\n", hres);
2953
2953
    if(FAILED(hres))
2954
2954
        return;
3170
3170
    test_readyState(NULL);
3171
3171
}
3172
3172
 
3173
 
static void test_Persist(IUnknown *unk, IMoniker *mon)
 
3173
static void test_Persist(IHTMLDocument2 *doc, IMoniker *mon)
3174
3174
{
3175
3175
    IPersistMoniker *persist_mon;
3176
3176
    IPersistFile *persist_file;
3177
3177
    GUID guid;
3178
3178
    HRESULT hres;
3179
3179
 
3180
 
    hres = IUnknown_QueryInterface(unk, &IID_IPersistFile, (void**)&persist_file);
 
3180
    hres = IUnknown_QueryInterface(doc, &IID_IPersistFile, (void**)&persist_file);
3181
3181
    ok(hres == S_OK, "QueryInterface(IID_IPersist) failed: %08x\n", hres);
3182
3182
    if(SUCCEEDED(hres)) {
3183
3183
        hres = IPersist_GetClassID(persist_file, NULL);
3190
3190
        IPersist_Release(persist_file);
3191
3191
    }
3192
3192
 
3193
 
    hres = IUnknown_QueryInterface(unk, &IID_IPersistMoniker, (void**)&persist_mon);
 
3193
    hres = IUnknown_QueryInterface(doc, &IID_IPersistMoniker, (void**)&persist_mon);
3194
3194
    ok(hres == S_OK, "QueryInterface(IID_IPersistMoniker) failed: %08x\n", hres);
3195
3195
    if(SUCCEEDED(hres)) {
3196
3196
        hres = IPersistMoniker_GetClassID(persist_mon, NULL);
3203
3203
        if(load_state == LD_DOLOAD)
3204
3204
            test_Load(persist_mon, mon);
3205
3205
 
3206
 
        test_readyState(unk);
 
3206
        test_readyState((IUnknown*)doc);
3207
3207
 
3208
3208
        IPersistMoniker_Release(persist_mon);
3209
3209
    }
3210
3210
}
3211
3211
 
3212
 
static void test_put_href(IUnknown *unk)
 
3212
static void test_put_href(IHTMLDocument2 *doc)
3213
3213
{
3214
3214
    IHTMLLocation *location;
3215
 
    IHTMLDocument2 *doc;
3216
3215
    BSTR str;
3217
3216
    HRESULT hres;
3218
3217
 
3219
 
    hres = IUnknown_QueryInterface(unk, &IID_IHTMLDocument2, (void**)&doc);
3220
 
    ok(hres == S_OK, "Could not get IHTMLDocument2 iface: %08x\n", hres);
3221
 
 
3222
3218
    location = NULL;
3223
3219
    hres = IHTMLDocument2_get_location(doc, &location);
3224
 
    IHTMLDocument2_Release(doc);
3225
3220
    ok(hres == S_OK, "get_location failed: %08x\n", hres);
3226
3221
    ok(location != NULL, "location == NULL\n");
3227
3222
 
3300
3295
    ok_(__FILE__,line) (olecmd.cmdf == cmdf, "(%u) cmdf=%08x, expected %08x\n", cmdid, olecmd.cmdf, cmdf);
3301
3296
}
3302
3297
 
3303
 
static void test_MSHTML_QueryStatus(IUnknown *unk, DWORD cmdf)
 
3298
static void test_MSHTML_QueryStatus(IHTMLDocument2 *doc, DWORD cmdf)
3304
3299
{
3305
 
    if(!unk)
3306
 
        unk = doc_unk;
 
3300
    IUnknown *unk = doc ? (IUnknown*)doc : doc_unk;
3307
3301
 
3308
3302
    test_QueryStatus(unk, &CGID_MSHTML, IDM_FONTNAME, cmdf);
3309
3303
    test_QueryStatus(unk, &CGID_MSHTML, IDM_FONTSIZE, cmdf);
3323
3317
    test_QueryStatus(unk, &CGID_MSHTML, IDM_DELETE, cmdf);
3324
3318
}
3325
3319
 
3326
 
static void test_OleCommandTarget(IUnknown *unk)
 
3320
static void test_OleCommandTarget(IHTMLDocument2 *doc)
3327
3321
{
3328
3322
    IOleCommandTarget *cmdtrg;
3329
3323
    OLECMD cmds[OLECMDID_GETPRINTTEMPLATE];
3330
3324
    int i;
3331
3325
    HRESULT hres;
3332
3326
 
3333
 
    hres = IUnknown_QueryInterface(unk, &IID_IOleCommandTarget, (void**)&cmdtrg);
 
3327
    hres = IUnknown_QueryInterface(doc, &IID_IOleCommandTarget, (void**)&cmdtrg);
3334
3328
    ok(hres == S_OK, "QueryInterface(IID_IOleCommandTarget failed: %08x\n", hres);
3335
3329
    if(FAILED(hres))
3336
3330
        return;
3361
3355
    IOleCommandTarget_Release(cmdtrg);
3362
3356
}
3363
3357
 
3364
 
static void test_OleCommandTarget_fail(IUnknown *unk)
 
3358
static void test_OleCommandTarget_fail(IHTMLDocument2 *doc)
3365
3359
{
3366
3360
    IOleCommandTarget *cmdtrg;
3367
3361
    int i;
3372
3366
        {OLECMDID_GETPRINTTEMPLATE+1, 0xf0f0}
3373
3367
    };
3374
3368
 
3375
 
    hres = IUnknown_QueryInterface(unk, &IID_IOleCommandTarget, (void**)&cmdtrg);
 
3369
    hres = IUnknown_QueryInterface(doc, &IID_IOleCommandTarget, (void**)&cmdtrg);
3376
3370
    ok(hres == S_OK, "QueryInterface(IIDIOleCommandTarget failed: %08x\n", hres);
3377
3371
    if(FAILED(hres))
3378
3372
        return;
3413
3407
    IOleCommandTarget_Release(cmdtrg);
3414
3408
}
3415
3409
 
3416
 
static void test_exec_onunload(IUnknown *unk)
 
3410
static void test_exec_onunload(IHTMLDocument2 *doc)
3417
3411
{
3418
3412
    IOleCommandTarget *cmdtrg;
3419
3413
    VARIANT var;
3420
3414
    HRESULT hres;
3421
3415
 
3422
 
    hres = IUnknown_QueryInterface(unk, &IID_IOleCommandTarget, (void**)&cmdtrg);
 
3416
    hres = IUnknown_QueryInterface(doc, &IID_IOleCommandTarget, (void**)&cmdtrg);
3423
3417
    ok(hres == S_OK, "QueryInterface(IID_IOleCommandTarget) failed: %08x\n", hres);
3424
3418
    if(FAILED(hres))
3425
3419
        return;
3568
3562
    IOleCommandTarget_Release(cmdtrg);
3569
3563
}
3570
3564
 
3571
 
static void test_IsDirty(IUnknown *unk, HRESULT exhres)
 
3565
static void test_IsDirty(IHTMLDocument2 *doc, HRESULT exhres)
3572
3566
{
3573
3567
    IPersistStreamInit *perinit;
3574
3568
    IPersistMoniker *permon;
3575
3569
    IPersistFile *perfile;
3576
3570
    HRESULT hres;
3577
3571
 
3578
 
    hres = IUnknown_QueryInterface(unk, &IID_IPersistStreamInit, (void**)&perinit);
 
3572
    hres = IUnknown_QueryInterface(doc, &IID_IPersistStreamInit, (void**)&perinit);
3579
3573
    ok(hres == S_OK, "QueryInterface(IID_IPersistStreamInit failed: %08x\n", hres);
3580
3574
    if(SUCCEEDED(hres)) {
3581
3575
        hres = IPersistStreamInit_IsDirty(perinit);
3583
3577
        IPersistStreamInit_Release(perinit);
3584
3578
    }
3585
3579
 
3586
 
    hres = IUnknown_QueryInterface(unk, &IID_IPersistMoniker, (void**)&permon);
 
3580
    hres = IUnknown_QueryInterface(doc, &IID_IPersistMoniker, (void**)&permon);
3587
3581
    ok(hres == S_OK, "QueryInterface(IID_IPersistMoniker failed: %08x\n", hres);
3588
3582
    if(SUCCEEDED(hres)) {
3589
3583
        hres = IPersistMoniker_IsDirty(permon);
3591
3585
        IPersistMoniker_Release(permon);
3592
3586
    }
3593
3587
 
3594
 
    hres = IUnknown_QueryInterface(unk, &IID_IPersistFile, (void**)&perfile);
 
3588
    hres = IUnknown_QueryInterface(doc, &IID_IPersistFile, (void**)&perfile);
3595
3589
    ok(hres == S_OK, "QueryInterface(IID_IPersistFile failed: %08x\n", hres);
3596
3590
    if(SUCCEEDED(hres)) {
3597
3591
        hres = IPersistFile_IsDirty(perfile);
3716
3710
    ok(clientsite == &ClientSite, "GetClientSite() = %p, expected %p\n", clientsite, &ClientSite);
3717
3711
}
3718
3712
 
3719
 
static void test_OnAmbientPropertyChange(IUnknown *unk)
 
3713
static void test_OnAmbientPropertyChange(IHTMLDocument2 *doc)
3720
3714
{
3721
3715
    IOleControl *control = NULL;
3722
3716
    HRESULT hres;
3723
3717
 
3724
 
    hres = IUnknown_QueryInterface(unk, &IID_IOleControl, (void**)&control);
 
3718
    hres = IUnknown_QueryInterface(doc, &IID_IOleControl, (void**)&control);
3725
3719
    ok(hres == S_OK, "QueryInterface(IID_IOleControl failed: %08x\n", hres);
3726
3720
    if(FAILED(hres))
3727
3721
        return;
3765
3759
 
3766
3760
 
3767
3761
 
3768
 
static void test_OnAmbientPropertyChange2(IUnknown *unk)
 
3762
static void test_OnAmbientPropertyChange2(IHTMLDocument2 *doc)
3769
3763
{
3770
3764
    IOleControl *control = NULL;
3771
3765
    HRESULT hres;
3772
3766
 
3773
 
    hres = IUnknown_QueryInterface(unk, &IID_IOleControl, (void**)&control);
 
3767
    hres = IUnknown_QueryInterface(doc, &IID_IOleControl, (void**)&control);
3774
3768
    ok(hres == S_OK, "QueryInterface(IID_IOleControl failed: %08x\n", hres);
3775
3769
    if(FAILED(hres))
3776
3770
        return;
3781
3775
    IOleControl_Release(control);
3782
3776
}
3783
3777
 
3784
 
static void test_Close(IUnknown *unk, BOOL set_client)
 
3778
static void test_Close(IHTMLDocument2 *doc, BOOL set_client)
3785
3779
{
3786
3780
    IOleObject *oleobj = NULL;
3787
3781
    HRESULT hres;
3788
3782
 
3789
 
    hres = IUnknown_QueryInterface(unk, &IID_IOleObject, (void**)&oleobj);
 
3783
    hres = IUnknown_QueryInterface(doc, &IID_IOleObject, (void**)&oleobj);
3790
3784
    ok(hres == S_OK, "QueryInterface(IID_IOleObject) failed: %08x\n", hres);
3791
3785
    if(FAILED(hres))
3792
3786
        return;
3806
3800
    IOleObject_Release(oleobj);
3807
3801
}
3808
3802
 
3809
 
static void test_Advise(IUnknown *unk)
 
3803
static void test_Advise(IHTMLDocument2 *doc)
3810
3804
{
3811
3805
    IOleObject *oleobj = NULL;
3812
3806
    IEnumSTATDATA *enum_advise = (void*)0xdeadbeef;
3813
3807
    DWORD conn;
3814
3808
    HRESULT hres;
3815
3809
 
3816
 
    hres = IUnknown_QueryInterface(unk, &IID_IOleObject, (void**)&oleobj);
 
3810
    hres = IUnknown_QueryInterface(doc, &IID_IOleObject, (void**)&oleobj);
3817
3811
    ok(hres == S_OK, "QueryInterface(IID_IOleObject) failed: %08x\n", hres);
3818
3812
    if(FAILED(hres))
3819
3813
        return;
3898
3892
    IOleInPlaceActiveObject_Release(inplaceact);
3899
3893
}
3900
3894
 
3901
 
static void test_InPlaceDeactivate(IUnknown *unk, BOOL expect_call)
 
3895
static void test_InPlaceDeactivate(IHTMLDocument2 *doc, BOOL expect_call)
3902
3896
{
3903
3897
    IOleInPlaceObjectWindowless *windowlessobj = NULL;
3904
3898
    HRESULT hres;
3905
3899
 
3906
 
    hres = IUnknown_QueryInterface(unk, &IID_IOleInPlaceObjectWindowless,
 
3900
    hres = IUnknown_QueryInterface(doc, &IID_IOleInPlaceObjectWindowless,
3907
3901
            (void**)&windowlessobj);
3908
3902
    ok(hres == S_OK, "QueryInterface(IID_IOleInPlaceObjectWindowless) failed: %08x\n", hres);
3909
3903
    if(FAILED(hres))
3929
3923
    IOleInPlaceObjectWindowless_Release(windowlessobj);
3930
3924
}
3931
3925
 
3932
 
static void test_Activate(IUnknown *unk, DWORD flags)
 
3926
static void test_Activate(IHTMLDocument2 *doc, DWORD flags)
3933
3927
{
3934
3928
    IOleObject *oleobj = NULL;
3935
3929
    IOleDocumentView *docview;
3942
3936
        IOleDocumentView_Release(view);
3943
3937
    view = NULL;
3944
3938
 
3945
 
    hres = IUnknown_QueryInterface(unk, &IID_IOleObject, (void**)&oleobj);
 
3939
    hres = IUnknown_QueryInterface(doc, &IID_IOleObject, (void**)&oleobj);
3946
3940
    ok(hres == S_OK, "QueryInterface(IID_IOleObject) failed: %08x\n", hres);
3947
3941
 
3948
3942
    hres = IOleObject_GetUserClassID(oleobj, NULL);
3952
3946
    ok(hres == S_OK, "GetUserClassID failed: %08x\n", hres);
3953
3947
    ok(IsEqualGUID(&guid, &CLSID_HTMLDocument), "guid != CLSID_HTMLDocument\n");
3954
3948
 
3955
 
    test_OnFrameWindowActivate(unk);
 
3949
    test_OnFrameWindowActivate((IUnknown*)doc);
3956
3950
 
3957
3951
    test_ClientSite(oleobj, flags);
3958
 
    test_InPlaceDeactivate(unk, FALSE);
 
3952
    test_InPlaceDeactivate(doc, FALSE);
3959
3953
    test_DoVerb(oleobj);
3960
3954
 
3961
3955
    if(call_UIActivate == CallUIActivate_AfterShow) {
3983
3977
 
3984
3978
    IOleObject_Release(oleobj);
3985
3979
 
3986
 
    test_OnFrameWindowActivate(unk);
 
3980
    test_OnFrameWindowActivate((IUnknown*)doc);
3987
3981
}
3988
3982
 
3989
 
static void test_Window(IUnknown *unk, BOOL expect_success)
 
3983
static void test_Window(IHTMLDocument2 *doc, BOOL expect_success)
3990
3984
{
3991
3985
    IOleInPlaceActiveObject *activeobject = NULL;
3992
3986
    HWND tmp_hwnd;
4069
4063
    ok(hres == S_OK, "Show failed: %08x\n", hres);
4070
4064
}
4071
4065
 
4072
 
static HRESULT create_document(IUnknown **unk)
 
4066
static HRESULT create_document(IHTMLDocument2 **doc)
4073
4067
{
4074
4068
    IHTMLDocument5 *doc5;
4075
4069
    HRESULT hres;
4076
4070
 
4077
4071
    hres = CoCreateInstance(&CLSID_HTMLDocument, NULL, CLSCTX_INPROC_SERVER|CLSCTX_INPROC_HANDLER,
4078
 
            &IID_IUnknown, (void**)unk);
 
4072
            &IID_IHTMLDocument2, (void**)doc);
4079
4073
    ok(hres == S_OK, "CoCreateInstance failed: %08x\n", hres);
4080
4074
    if(FAILED(hres))
4081
4075
        return hres;
4082
4076
 
4083
 
    hres = IUnknown_QueryInterface(*unk, &IID_IHTMLDocument5, (void**)&doc5);
 
4077
    hres = IHTMLDocument2_QueryInterface(*doc, &IID_IHTMLDocument5, (void**)&doc5);
4084
4078
    if(SUCCEEDED(hres)) {
4085
4079
        IHTMLDocument5_Release(doc5);
4086
4080
    }else {
4087
4081
        win_skip("Could not get IHTMLDocument5, probably too old IE\n");
4088
 
        IUnknown_Release(*unk);
 
4082
        IHTMLDocument2_Release(*doc);
4089
4083
    }
4090
4084
 
4091
4085
    return hres;
4092
4086
}
4093
4087
 
4094
 
static void test_Navigate(IUnknown *unk)
 
4088
static void test_Navigate(IHTMLDocument2 *doc)
4095
4089
{
4096
4090
    IHlinkTarget *hlink;
4097
4091
    HRESULT hres;
4098
4092
 
4099
 
    hres = IUnknown_QueryInterface(unk, &IID_IHlinkTarget, (void**)&hlink);
 
4093
    hres = IUnknown_QueryInterface(doc, &IID_IHlinkTarget, (void**)&hlink);
4100
4094
    ok(hres == S_OK, "QueryInterface(IID_IHlinkTarget) failed: %08x\n", hres);
4101
4095
 
4102
4096
    SET_EXPECT(ActivateMe);
4107
4101
    IHlinkTarget_Release(hlink);
4108
4102
}
4109
4103
 
4110
 
static void test_external(IUnknown *unk, BOOL initialized)
 
4104
static void test_external(IHTMLDocument2 *doc, BOOL initialized)
4111
4105
{
4112
4106
    IDispatch *external;
4113
 
    IHTMLDocument2 *doc;
4114
4107
    IHTMLWindow2 *htmlwin;
4115
4108
    HRESULT hres;
4116
4109
 
4117
 
    hres = IUnknown_QueryInterface(unk, &IID_IHTMLDocument2, (void**)&doc);
4118
 
    ok(hres == S_OK, "QueryInterface(IID_IHTMLWindow2) failed: %08x\n", hres);
4119
 
 
4120
4110
    hres = IHTMLDocument2_get_parentWindow(doc, &htmlwin);
4121
 
    IHTMLDocument2_Release(doc);
4122
4111
    ok(hres == S_OK, "get_parentWindow failed: %08x\n", hres);
4123
4112
 
4124
4113
    if(initialized)
4137
4126
    IHTMLWindow2_Release(htmlwin);
4138
4127
}
4139
4128
 
4140
 
static void test_StreamLoad(IUnknown *unk)
 
4129
static void test_StreamLoad(IHTMLDocument2 *doc)
4141
4130
{
4142
4131
    IPersistStreamInit *init;
4143
4132
    HRESULT hres;
4144
4133
 
4145
 
    hres = IUnknown_QueryInterface(unk, &IID_IPersistStreamInit, (void**)&init);
 
4134
    hres = IUnknown_QueryInterface(doc, &IID_IPersistStreamInit, (void**)&init);
4146
4135
    ok(hres == S_OK, "QueryInterface(IID_IPersistStreamInit) failed: %08x\n", hres);
4147
4136
    if(FAILED(hres))
4148
4137
        return;
4164
4153
    CHECK_CALLED(Read);
4165
4154
 
4166
4155
    test_timer(EXPECT_SETTITLE);
4167
 
    test_GetCurMoniker(unk, NULL, about_blank_url);
 
4156
    test_GetCurMoniker((IUnknown*)doc, NULL, about_blank_url);
4168
4157
 
4169
4158
    IPersistStreamInit_Release(init);
4170
4159
}
4171
4160
 
4172
 
static void test_StreamInitNew(IUnknown *unk)
 
4161
static void test_StreamInitNew(IHTMLDocument2 *doc)
4173
4162
{
4174
4163
    IPersistStreamInit *init;
4175
4164
    HRESULT hres;
4176
4165
 
4177
 
    hres = IUnknown_QueryInterface(unk, &IID_IPersistStreamInit, (void**)&init);
 
4166
    hres = IUnknown_QueryInterface(doc, &IID_IPersistStreamInit, (void**)&init);
4178
4167
    ok(hres == S_OK, "QueryInterface(IID_IPersistStreamInit) failed: %08x\n", hres);
4179
4168
    if(FAILED(hres))
4180
4169
        return;
4194
4183
    CHECK_CALLED(OnChanged_READYSTATE);
4195
4184
 
4196
4185
    test_timer(EXPECT_SETTITLE);
4197
 
    test_GetCurMoniker(unk, NULL, about_blank_url);
 
4186
    test_GetCurMoniker((IUnknown*)doc, NULL, about_blank_url);
4198
4187
 
4199
4188
    IPersistStreamInit_Release(init);
4200
4189
}
4201
4190
 
4202
 
static void test_QueryInterface(IUnknown *unk)
 
4191
static void test_QueryInterface(IHTMLDocument2 *doc)
4203
4192
{
4204
4193
    IUnknown *qi;
4205
4194
    HRESULT hres;
4208
4197
        {0x719c3050,0xf9d3,0x11cf,{0xa4,0x93,0x00,0x40,0x05,0x23,0xa8,0xa0}};
4209
4198
 
4210
4199
    qi = (void*)0xdeadbeef;
4211
 
    hres = IUnknown_QueryInterface(unk, &IID_IRunnableObject, (void**)&qi);
 
4200
    hres = IUnknown_QueryInterface(doc, &IID_IRunnableObject, (void**)&qi);
4212
4201
    ok(hres == E_NOINTERFACE, "QueryInterface returned %08x, expected E_NOINTERFACE\n", hres);
4213
4202
    ok(qi == NULL, "qirunnable=%p, expected NULL\n", qi);
4214
4203
 
4215
4204
    qi = (void*)0xdeadbeef;
4216
 
    hres = IUnknown_QueryInterface(unk, &IID_IHTMLDOMNode, (void**)&qi);
4217
 
    ok(hres == E_NOINTERFACE, "QueryInterface returned %08x, expected E_NOINTERFACE\n", hres);
4218
 
    ok(qi == NULL, "qi=%p, expected NULL\n", qi);
4219
 
 
4220
 
    qi = (void*)0xdeadbeef;
4221
 
    hres = IUnknown_QueryInterface(unk, &IID_IHTMLDOMNode2, (void**)&qi);
4222
 
    ok(hres == E_NOINTERFACE, "QueryInterface returned %08x, expected E_NOINTERFACE\n", hres);
4223
 
    ok(qi == NULL, "qi=%p, expected NULL\n", qi);
4224
 
 
4225
 
    qi = (void*)0xdeadbeef;
4226
 
    hres = IUnknown_QueryInterface(unk, &IID_IPersistPropertyBag, (void**)&qi);
4227
 
    ok(hres == E_NOINTERFACE, "QueryInterface returned %08x, expected E_NOINTERFACE\n", hres);
4228
 
    ok(qi == NULL, "qi=%p, expected NULL\n", qi);
4229
 
 
4230
 
    qi = (void*)0xdeadbeef;
4231
 
    hres = IUnknown_QueryInterface(unk, &IID_UndocumentedScriptIface, (void**)&qi);
4232
 
    ok(hres == E_NOINTERFACE, "QueryInterface returned %08x, expected E_NOINTERFACE\n", hres);
4233
 
    ok(qi == NULL, "qi=%p, expected NULL\n", qi);
4234
 
 
4235
 
    qi = (void*)0xdeadbeef;
4236
 
    hres = IUnknown_QueryInterface(unk, &IID_IMarshal, (void**)&qi);
 
4205
    hres = IUnknown_QueryInterface(doc, &IID_IHTMLDOMNode, (void**)&qi);
 
4206
    ok(hres == E_NOINTERFACE, "QueryInterface returned %08x, expected E_NOINTERFACE\n", hres);
 
4207
    ok(qi == NULL, "qi=%p, expected NULL\n", qi);
 
4208
 
 
4209
    qi = (void*)0xdeadbeef;
 
4210
    hres = IUnknown_QueryInterface(doc, &IID_IHTMLDOMNode2, (void**)&qi);
 
4211
    ok(hres == E_NOINTERFACE, "QueryInterface returned %08x, expected E_NOINTERFACE\n", hres);
 
4212
    ok(qi == NULL, "qi=%p, expected NULL\n", qi);
 
4213
 
 
4214
    qi = (void*)0xdeadbeef;
 
4215
    hres = IUnknown_QueryInterface(doc, &IID_IPersistPropertyBag, (void**)&qi);
 
4216
    ok(hres == E_NOINTERFACE, "QueryInterface returned %08x, expected E_NOINTERFACE\n", hres);
 
4217
    ok(qi == NULL, "qi=%p, expected NULL\n", qi);
 
4218
 
 
4219
    qi = (void*)0xdeadbeef;
 
4220
    hres = IUnknown_QueryInterface(doc, &IID_UndocumentedScriptIface, (void**)&qi);
 
4221
    ok(hres == E_NOINTERFACE, "QueryInterface returned %08x, expected E_NOINTERFACE\n", hres);
 
4222
    ok(qi == NULL, "qi=%p, expected NULL\n", qi);
 
4223
 
 
4224
    qi = (void*)0xdeadbeef;
 
4225
    hres = IUnknown_QueryInterface(doc, &IID_IMarshal, (void**)&qi);
4237
4226
    ok(hres == E_NOINTERFACE, "QueryInterface returned %08x, expected E_NOINTERFACE\n", hres);
4238
4227
    ok(qi == NULL, "qi=%p, expected NULL\n", qi);
4239
4228
}
4254
4243
 
4255
4244
static void test_HTMLDocument(BOOL do_load)
4256
4245
{
4257
 
    IUnknown *unk;
 
4246
    IHTMLDocument2 *doc;
4258
4247
    HRESULT hres;
4259
4248
    ULONG ref;
4260
4249
 
4262
4251
 
4263
4252
    init_test(do_load ? LD_DOLOAD : LD_NO);
4264
4253
 
4265
 
    hres = create_document(&unk);
 
4254
    hres = create_document(&doc);
4266
4255
    if(FAILED(hres))
4267
4256
        return;
4268
 
    doc_unk = unk;
 
4257
    doc_unk = (IUnknown*)doc;
4269
4258
 
4270
 
    test_QueryInterface(unk);
4271
 
    test_Advise(unk);
4272
 
    test_IsDirty(unk, S_FALSE);
4273
 
    test_MSHTML_QueryStatus(unk, OLECMDF_SUPPORTED);
4274
 
    test_external(unk, FALSE);
4275
 
    test_ConnectionPointContainer(unk);
4276
 
    test_GetCurMoniker(unk, NULL, NULL);
4277
 
    test_Persist(unk, &Moniker);
 
4259
    test_QueryInterface(doc);
 
4260
    test_Advise(doc);
 
4261
    test_IsDirty(doc, S_FALSE);
 
4262
    test_MSHTML_QueryStatus(doc, OLECMDF_SUPPORTED);
 
4263
    test_external(doc, FALSE);
 
4264
    test_ConnectionPointContainer(doc);
 
4265
    test_GetCurMoniker((IUnknown*)doc, NULL, NULL);
 
4266
    test_Persist(doc, &Moniker);
4278
4267
    if(!do_load)
4279
 
        test_OnAmbientPropertyChange2(unk);
 
4268
        test_OnAmbientPropertyChange2(doc);
4280
4269
 
4281
 
    test_Activate(unk, CLIENTSITE_EXPECTPATH);
 
4270
    test_Activate(doc, CLIENTSITE_EXPECTPATH);
4282
4271
 
4283
4272
    if(do_load) {
4284
4273
        test_download(DWL_CSS|DWL_TRYCSS);
4285
 
        test_GetCurMoniker(unk, &Moniker, NULL);
 
4274
        test_GetCurMoniker((IUnknown*)doc, &Moniker, NULL);
4286
4275
    }
4287
4276
 
4288
 
    test_MSHTML_QueryStatus(unk, OLECMDF_SUPPORTED);
4289
 
    test_OleCommandTarget_fail(unk);
4290
 
    test_OleCommandTarget(unk);
4291
 
    test_OnAmbientPropertyChange(unk);
4292
 
    test_Window(unk, TRUE);
4293
 
    test_external(unk, TRUE);
 
4277
    test_MSHTML_QueryStatus(doc, OLECMDF_SUPPORTED);
 
4278
    test_OleCommandTarget_fail(doc);
 
4279
    test_OleCommandTarget(doc);
 
4280
    test_OnAmbientPropertyChange(doc);
 
4281
    test_Window(doc, TRUE);
 
4282
    test_external(doc, TRUE);
4294
4283
 
4295
4284
    test_UIDeactivate();
4296
 
    test_OleCommandTarget(unk);
4297
 
    test_Window(unk, TRUE);
4298
 
    test_InPlaceDeactivate(unk, TRUE);
 
4285
    test_OleCommandTarget(doc);
 
4286
    test_Window(doc, TRUE);
 
4287
    test_InPlaceDeactivate(doc, TRUE);
4299
4288
 
4300
4289
    /* Calling test_OleCommandTarget here causes Segmentation Fault with native
4301
4290
     * MSHTML. It doesn't with Wine. */
4302
4291
 
4303
 
    test_Window(unk, FALSE);
 
4292
    test_Window(doc, FALSE);
4304
4293
    test_Hide();
4305
 
    test_InPlaceDeactivate(unk, FALSE);
 
4294
    test_InPlaceDeactivate(doc, FALSE);
4306
4295
    test_CloseView();
4307
 
    test_Close(unk, FALSE);
 
4296
    test_Close(doc, FALSE);
4308
4297
 
4309
4298
    /* Activate HTMLDocument again */
4310
 
    test_Activate(unk, CLIENTSITE_SETNULL);
4311
 
    test_Window(unk, TRUE);
4312
 
    test_OleCommandTarget(unk);
 
4299
    test_Activate(doc, CLIENTSITE_SETNULL);
 
4300
    test_Window(doc, TRUE);
 
4301
    test_OleCommandTarget(doc);
4313
4302
    test_UIDeactivate();
4314
 
    test_InPlaceDeactivate(unk, TRUE);
4315
 
    test_Close(unk, FALSE);
 
4303
    test_InPlaceDeactivate(doc, TRUE);
 
4304
    test_Close(doc, FALSE);
4316
4305
 
4317
4306
    /* Activate HTMLDocument again, this time without UIActivate */
4318
4307
    call_UIActivate = CallUIActivate_None;
4319
 
    test_Activate(unk, CLIENTSITE_SETNULL);
4320
 
    test_Window(unk, TRUE);
 
4308
    test_Activate(doc, CLIENTSITE_SETNULL);
 
4309
    test_Window(doc, TRUE);
4321
4310
 
4322
4311
    test_UIDeactivate();
4323
 
    test_InPlaceDeactivate(unk, TRUE);
4324
 
    test_CloseView();
4325
 
    test_CloseView();
4326
 
    test_Close(unk, TRUE);
4327
 
    test_OnAmbientPropertyChange2(unk);
4328
 
    test_GetCurMoniker(unk, do_load ? &Moniker : NULL, NULL);
 
4312
    test_InPlaceDeactivate(doc, TRUE);
 
4313
    test_CloseView();
 
4314
    test_CloseView();
 
4315
    test_Close(doc, TRUE);
 
4316
    test_OnAmbientPropertyChange2(doc);
 
4317
    test_GetCurMoniker((IUnknown*)doc, do_load ? &Moniker : NULL, NULL);
4329
4318
 
4330
4319
    if(!do_load) {
4331
4320
        /* Activate HTMLDocument again, calling UIActivate after showing the window */
4332
4321
        call_UIActivate = CallUIActivate_AfterShow;
4333
 
        test_Activate(unk, 0);
4334
 
        test_Window(unk, TRUE);
4335
 
        test_OleCommandTarget(unk);
 
4322
        test_Activate(doc, 0);
 
4323
        test_Window(doc, TRUE);
 
4324
        test_OleCommandTarget(doc);
4336
4325
        test_UIDeactivate();
4337
 
        test_InPlaceDeactivate(unk, TRUE);
4338
 
        test_Close(unk, FALSE);
 
4326
        test_InPlaceDeactivate(doc, TRUE);
 
4327
        test_Close(doc, FALSE);
4339
4328
        call_UIActivate = CallUIActivate_None;
4340
4329
    }
4341
4330
 
4345
4334
 
4346
4335
    ok(IsWindow(hwnd), "hwnd is destroyed\n");
4347
4336
 
4348
 
    ref = IUnknown_Release(unk);
 
4337
    ref = IHTMLDocument2_Release(doc);
4349
4338
    ok(ref == 0, "ref=%d, expected 0\n", ref);
4350
4339
 
4351
4340
    ok(!IsWindow(hwnd), "hwnd is not destroyed\n");
4353
4342
 
4354
4343
static void test_HTMLDocument_hlink(void)
4355
4344
{
4356
 
    IUnknown *unk;
 
4345
    IHTMLDocument2 *doc;
4357
4346
    HRESULT hres;
4358
4347
    ULONG ref;
4359
4348
 
4362
4351
    init_test(LD_DOLOAD);
4363
4352
    ipsex = TRUE;
4364
4353
 
4365
 
    hres = create_document(&unk);
 
4354
    hres = create_document(&doc);
4366
4355
    if(FAILED(hres))
4367
4356
        return;
4368
 
    doc_unk = unk;
 
4357
    doc_unk = (IUnknown*)doc;
4369
4358
 
4370
 
    test_ConnectionPointContainer(unk);
4371
 
    test_GetCurMoniker(unk, NULL, NULL);
4372
 
    test_Persist(unk, &Moniker);
4373
 
    test_Navigate(unk);
 
4359
    test_ConnectionPointContainer(doc);
 
4360
    test_GetCurMoniker((IUnknown*)doc, NULL, NULL);
 
4361
    test_Persist(doc, &Moniker);
 
4362
    test_Navigate(doc);
4374
4363
    if(show_failed) {
4375
 
        IUnknown_Release(unk);
 
4364
        IUnknown_Release(doc);
4376
4365
        return;
4377
4366
    }
4378
4367
 
4379
4368
    test_download(DWL_CSS|DWL_TRYCSS);
4380
4369
 
4381
 
    test_IsDirty(unk, S_FALSE);
4382
 
    test_MSHTML_QueryStatus(unk, OLECMDF_SUPPORTED);
 
4370
    test_IsDirty(doc, S_FALSE);
 
4371
    test_MSHTML_QueryStatus(doc, OLECMDF_SUPPORTED);
4383
4372
 
4384
 
    test_exec_onunload(unk);
4385
 
    test_Window(unk, TRUE);
4386
 
    test_InPlaceDeactivate(unk, TRUE);
4387
 
    test_Close(unk, FALSE);
4388
 
    test_IsDirty(unk, S_FALSE);
4389
 
    test_GetCurMoniker(unk, &Moniker, NULL);
 
4373
    test_exec_onunload(doc);
 
4374
    test_Window(doc, TRUE);
 
4375
    test_InPlaceDeactivate(doc, TRUE);
 
4376
    test_Close(doc, FALSE);
 
4377
    test_IsDirty(doc, S_FALSE);
 
4378
    test_GetCurMoniker((IUnknown*)doc, &Moniker, NULL);
4390
4379
 
4391
4380
    if(view)
4392
4381
        IOleDocumentView_Release(view);
4393
4382
    view = NULL;
4394
4383
 
4395
 
    ref = IUnknown_Release(unk);
 
4384
    ref = IHTMLDocument2_Release(doc);
4396
4385
    ok(ref == 0, "ref=%d, expected 0\n", ref);
4397
4386
}
4398
4387
 
4399
 
static void test_cookies(IUnknown *unk)
 
4388
static void test_cookies(IHTMLDocument2 *doc)
4400
4389
{
4401
4390
    WCHAR buf[1024];
4402
 
    IHTMLDocument2 *doc;
4403
4391
    DWORD size;
4404
4392
    BSTR str, str2;
4405
4393
    BOOL b;
4406
4394
    HRESULT hres;
4407
4395
 
4408
 
    hres = IUnknown_QueryInterface(unk, &IID_IHTMLDocument2, (void**)&doc);
4409
 
    ok(hres == S_OK, "QueryInterface(IID_IHTMLDocument2) failed: %08x\n", hres);
4410
 
 
4411
4396
    hres = IHTMLDocument2_get_cookie(doc, &str);
4412
4397
    ok(hres == S_OK, "get_cookie failed: %08x\n", hres);
4413
4398
    if(str) {
4449
4434
    ok(strstrW(str2, str) != NULL, "could not find %s in %s\n", wine_dbgstr_w(str), wine_dbgstr_w(str2));
4450
4435
    SysFreeString(str);
4451
4436
    SysFreeString(str2);
4452
 
 
4453
 
    IHTMLDocument2_Release(doc);
4454
4437
}
4455
4438
 
4456
4439
static void test_HTMLDocument_http(void)
4457
4440
{
4458
4441
    IMoniker *http_mon;
4459
 
    IUnknown *unk;
 
4442
    IHTMLDocument2 *doc;
4460
4443
    ULONG ref;
4461
4444
    HRESULT hres;
4462
4445
 
4463
4446
    trace("Testing HTMLDocument (http)...\n");
4464
4447
 
 
4448
    init_test(LD_DOLOAD);
 
4449
    ipsex = TRUE;
 
4450
 
 
4451
    hres = create_document(&doc);
 
4452
    if(FAILED(hres))
 
4453
        return;
 
4454
    doc_unk = (IUnknown*)doc;
 
4455
 
4465
4456
    hres = CreateURLMoniker(NULL, http_urlW, &http_mon);
4466
4457
    ok(hres == S_OK, "CreateURLMoniker failed: %08x\n", hres);
4467
4458
 
4468
 
    init_test(LD_DOLOAD);
4469
 
    ipsex = TRUE;
4470
 
 
4471
 
    hres = create_document(&unk);
4472
 
    if(FAILED(hres))
4473
 
        return;
4474
 
    doc_unk = unk;
4475
 
 
4476
 
    test_ConnectionPointContainer(unk);
4477
 
    test_GetCurMoniker(unk, NULL, NULL);
4478
 
    test_Persist(unk, http_mon);
4479
 
    test_Navigate(unk);
 
4459
    test_ConnectionPointContainer(doc);
 
4460
    test_GetCurMoniker((IUnknown*)doc, NULL, NULL);
 
4461
    test_Persist(doc, http_mon);
 
4462
    test_Navigate(doc);
4480
4463
    if(show_failed) {
4481
 
        IUnknown_Release(unk);
 
4464
        IUnknown_Release(doc);
4482
4465
        return;
4483
4466
    }
4484
4467
 
4487
4470
    else
4488
4471
        win_skip("IE running in Enhanced Security Configuration\n");
4489
4472
 
4490
 
    test_cookies(unk);
4491
 
    test_IsDirty(unk, S_FALSE);
4492
 
    test_MSHTML_QueryStatus(unk, OLECMDF_SUPPORTED);
4493
 
 
4494
 
    test_put_href(unk);
4495
 
 
4496
 
    test_InPlaceDeactivate(unk, TRUE);
4497
 
    test_Close(unk, FALSE);
4498
 
    test_IsDirty(unk, S_FALSE);
4499
 
    test_GetCurMoniker(unk, http_mon, NULL);
 
4473
    test_cookies(doc);
 
4474
    test_IsDirty(doc, S_FALSE);
 
4475
    test_MSHTML_QueryStatus(doc, OLECMDF_SUPPORTED);
 
4476
 
 
4477
    test_put_href(doc);
 
4478
 
 
4479
    test_InPlaceDeactivate(doc, TRUE);
 
4480
    test_Close(doc, FALSE);
 
4481
    test_IsDirty(doc, S_FALSE);
 
4482
    test_GetCurMoniker((IUnknown*)doc, http_mon, NULL);
4500
4483
 
4501
4484
    if(view)
4502
4485
        IOleDocumentView_Release(view);
4503
4486
    view = NULL;
4504
4487
 
4505
 
    ref = IUnknown_Release(unk);
 
4488
    ref = IHTMLDocument2_Release(doc);
4506
4489
    ok(!ref, "ref=%d, expected 0\n", ref);
4507
4490
 
4508
4491
    ref = IMoniker_Release(http_mon);
4509
4492
    ok(!ref, "ref=%d, expected 0\n", ref);
4510
4493
}
4511
4494
 
4512
 
static void test_QueryService(IUnknown *unk, BOOL success)
 
4495
static void test_QueryService(IHTMLDocument2 *doc, BOOL success)
4513
4496
{
4514
4497
    IServiceProvider *sp;
4515
4498
    IHlinkFrame *hf;
4516
4499
    HRESULT hres;
4517
4500
 
4518
 
    hres = IUnknown_QueryInterface(unk, &IID_IServiceProvider, (void**)&sp);
 
4501
    hres = IUnknown_QueryInterface(doc, &IID_IServiceProvider, (void**)&sp);
4519
4502
    ok(hres == S_OK, "QueryService returned %08x\n", hres);
4520
4503
 
4521
4504
    hres = IServiceProvider_QueryService(sp, &IID_IHlinkFrame, &IID_IHlinkFrame, (void**)&hf);
4529
4512
 
4530
4513
static void test_HTMLDocument_StreamLoad(void)
4531
4514
{
 
4515
    IHTMLDocument2 *doc;
4532
4516
    IOleObject *oleobj;
4533
 
    IUnknown *unk;
4534
4517
    DWORD conn;
4535
4518
    HRESULT hres;
4536
4519
    ULONG ref;
4540
4523
    init_test(LD_DOLOAD);
4541
4524
    load_from_stream = TRUE;
4542
4525
 
4543
 
    hres = create_document(&unk);
 
4526
    hres = create_document(&doc);
4544
4527
    if(FAILED(hres))
4545
4528
        return;
4546
 
    doc_unk = unk;
 
4529
    doc_unk = (IUnknown*)doc;
4547
4530
 
4548
 
    hres = IUnknown_QueryInterface(unk, &IID_IOleObject, (void**)&oleobj);
 
4531
    hres = IUnknown_QueryInterface(doc, &IID_IOleObject, (void**)&oleobj);
4549
4532
    ok(hres == S_OK, "Could not get IOleObject: %08x\n", hres);
4550
4533
 
4551
4534
    hres = IOleObject_Advise(oleobj, &AdviseSink, &conn);
4552
4535
    ok(hres == S_OK, "Advise failed: %08x\n", hres);
4553
4536
 
4554
 
    test_readyState(unk);
4555
 
    test_IsDirty(unk, S_FALSE);
4556
 
    test_ConnectionPointContainer(unk);
4557
 
    test_QueryService(unk, FALSE);
 
4537
    test_readyState((IUnknown*)doc);
 
4538
    test_IsDirty(doc, S_FALSE);
 
4539
    test_ConnectionPointContainer(doc);
 
4540
    test_QueryService(doc, FALSE);
4558
4541
    test_ClientSite(oleobj, CLIENTSITE_EXPECTPATH);
4559
 
    test_QueryService(unk, TRUE);
 
4542
    test_QueryService(doc, TRUE);
4560
4543
    test_DoVerb(oleobj);
4561
 
    test_MSHTML_QueryStatus(unk, OLECMDF_SUPPORTED);
 
4544
    test_MSHTML_QueryStatus(doc, OLECMDF_SUPPORTED);
4562
4545
 
4563
4546
    IOleObject_Release(oleobj);
4564
4547
 
4565
 
    test_GetCurMoniker(unk, NULL, NULL);
4566
 
    test_StreamLoad(unk);
 
4548
    test_GetCurMoniker((IUnknown*)doc, NULL, NULL);
 
4549
    test_StreamLoad(doc);
4567
4550
    test_download(DWL_VERBDONE|DWL_TRYCSS);
4568
 
    test_MSHTML_QueryStatus(unk, OLECMDF_SUPPORTED);
 
4551
    test_MSHTML_QueryStatus(doc, OLECMDF_SUPPORTED);
4569
4552
 
4570
4553
    test_UIDeactivate();
4571
 
    test_InPlaceDeactivate(unk, TRUE);
 
4554
    test_InPlaceDeactivate(doc, TRUE);
4572
4555
    SET_EXPECT(Advise_Close);
4573
 
    test_Close(unk, FALSE);
 
4556
    test_Close(doc, FALSE);
4574
4557
    CHECK_CALLED(Advise_Close);
4575
 
    test_IsDirty(unk, S_FALSE);
 
4558
    test_IsDirty(doc, S_FALSE);
4576
4559
 
4577
4560
    if(view) {
4578
4561
        IOleDocumentView_Release(view);
4580
4563
    }
4581
4564
 
4582
4565
 
4583
 
    ref = IUnknown_Release(unk);
 
4566
    ref = IHTMLDocument2_Release(doc);
4584
4567
    ok(ref == 0, "ref=%d, expected 0\n", ref);
4585
4568
}
4586
4569
 
4587
4570
static void test_HTMLDocument_StreamInitNew(void)
4588
4571
{
 
4572
    IHTMLDocument2 *doc;
4589
4573
    IOleObject *oleobj;
4590
 
    IUnknown *unk;
4591
4574
    DWORD conn;
4592
4575
    HRESULT hres;
4593
4576
    ULONG ref;
4597
4580
    init_test(LD_DOLOAD);
4598
4581
    load_from_stream = TRUE;
4599
4582
 
4600
 
    hres = create_document(&unk);
 
4583
    hres = create_document(&doc);
4601
4584
    if(FAILED(hres))
4602
4585
        return;
4603
 
    doc_unk = unk;
 
4586
    doc_unk = (IUnknown*)doc;
4604
4587
 
4605
 
    hres = IUnknown_QueryInterface(unk, &IID_IOleObject, (void**)&oleobj);
 
4588
    hres = IUnknown_QueryInterface(doc, &IID_IOleObject, (void**)&oleobj);
4606
4589
    ok(hres == S_OK, "Could not get IOleObject: %08x\n", hres);
4607
4590
 
4608
4591
    hres = IOleObject_Advise(oleobj, &AdviseSink, &conn);
4609
4592
    ok(hres == S_OK, "Advise failed: %08x\n", hres);
4610
4593
 
4611
 
    test_readyState(unk);
4612
 
    test_IsDirty(unk, S_FALSE);
4613
 
    test_ConnectionPointContainer(unk);
 
4594
    test_readyState((IUnknown*)doc);
 
4595
    test_IsDirty(doc, S_FALSE);
 
4596
    test_ConnectionPointContainer(doc);
4614
4597
    test_ClientSite(oleobj, CLIENTSITE_EXPECTPATH);
4615
4598
    test_DoVerb(oleobj);
4616
 
    test_MSHTML_QueryStatus(unk, OLECMDF_SUPPORTED);
 
4599
    test_MSHTML_QueryStatus(doc, OLECMDF_SUPPORTED);
4617
4600
 
4618
4601
    IOleObject_Release(oleobj);
4619
4602
 
4620
 
    test_GetCurMoniker(unk, NULL, NULL);
4621
 
    test_StreamInitNew(unk);
 
4603
    test_GetCurMoniker((IUnknown*)doc, NULL, NULL);
 
4604
    test_StreamInitNew(doc);
4622
4605
    test_download(DWL_VERBDONE|DWL_TRYCSS|DWL_EMPTY);
4623
 
    test_MSHTML_QueryStatus(unk, OLECMDF_SUPPORTED);
 
4606
    test_MSHTML_QueryStatus(doc, OLECMDF_SUPPORTED);
4624
4607
 
4625
4608
    test_UIDeactivate();
4626
 
    test_InPlaceDeactivate(unk, TRUE);
 
4609
    test_InPlaceDeactivate(doc, TRUE);
4627
4610
    SET_EXPECT(Advise_Close);
4628
 
    test_Close(unk, FALSE);
 
4611
    test_Close(doc, FALSE);
4629
4612
    CHECK_CALLED(Advise_Close);
4630
 
    test_IsDirty(unk, S_FALSE);
 
4613
    test_IsDirty(doc, S_FALSE);
4631
4614
 
4632
4615
    if(view) {
4633
4616
        IOleDocumentView_Release(view);
4635
4618
    }
4636
4619
 
4637
4620
 
4638
 
    ref = IUnknown_Release(unk);
 
4621
    ref = IHTMLDocument2_Release(doc);
4639
4622
    ok(ref == 0, "ref=%d, expected 0\n", ref);
4640
4623
}
4641
4624
 
4668
4651
 
4669
4652
static void test_editing_mode(BOOL do_load)
4670
4653
{
 
4654
    IHTMLDocument2 *doc;
4671
4655
    IUnknown *unk;
4672
4656
    IOleObject *oleobj;
4673
4657
    DWORD conn;
4679
4663
    init_test(do_load ? LD_DOLOAD : LD_NO);
4680
4664
    call_UIActivate = CallUIActivate_AfterShow;
4681
4665
 
4682
 
    hres = create_document(&unk);
 
4666
    hres = create_document(&doc);
4683
4667
    if(FAILED(hres))
4684
4668
        return;
4685
 
    doc_unk = unk;
 
4669
    unk = doc_unk = (IUnknown*)doc;
4686
4670
 
4687
 
    hres = IUnknown_QueryInterface(unk, &IID_IOleObject, (void**)&oleobj);
 
4671
    hres = IUnknown_QueryInterface(doc, &IID_IOleObject, (void**)&oleobj);
4688
4672
    ok(hres == S_OK, "Could not get IOleObject: %08x\n", hres);
4689
4673
 
4690
4674
    hres = IOleObject_Advise(oleobj, &AdviseSink, &conn);
4691
4675
    ok(hres == S_OK, "Advise failed: %08x\n", hres);
4692
4676
 
4693
 
    test_readyState(unk);
4694
 
    test_ConnectionPointContainer(unk);
 
4677
    test_readyState((IUnknown*)doc);
 
4678
    test_ConnectionPointContainer(doc);
4695
4679
    test_ClientSite(oleobj, CLIENTSITE_EXPECTPATH);
4696
4680
    test_DoVerb(oleobj);
4697
4681
    test_edit_uiactivate(oleobj);
4698
4682
 
4699
 
    test_MSHTML_QueryStatus(unk, OLECMDF_SUPPORTED);
 
4683
    test_MSHTML_QueryStatus(doc, OLECMDF_SUPPORTED);
4700
4684
    if(do_load)
4701
 
        test_Persist(unk, &Moniker);
 
4685
        test_Persist(doc, &Moniker);
4702
4686
    stream_read = protocol_read = 0;
4703
4687
    test_exec_editmode(unk, do_load);
4704
4688
    test_UIDeactivate();
4705
4689
    call_UIActivate = CallUIActivate_None;
4706
4690
    IOleObject_Release(oleobj);
4707
4691
 
4708
 
    test_MSHTML_QueryStatus(unk, OLECMDF_SUPPORTED);
 
4692
    test_MSHTML_QueryStatus(doc, OLECMDF_SUPPORTED);
4709
4693
    test_download(DWL_VERBDONE | (do_load ? DWL_CSS|DWL_TRYCSS : 0));
4710
4694
 
4711
4695
    SET_EXPECT(SetStatusText); /* ignore race in native mshtml */
4712
4696
    test_timer(EXPECT_UPDATEUI);
4713
4697
    SET_CALLED(SetStatusText);
4714
4698
 
4715
 
    test_MSHTML_QueryStatus(unk, OLECMDF_SUPPORTED|OLECMDF_ENABLED);
 
4699
    test_MSHTML_QueryStatus(doc, OLECMDF_SUPPORTED|OLECMDF_ENABLED);
4716
4700
 
4717
4701
    if(!do_load) {
4718
4702
        test_exec_fontname(unk, NULL, wszTimesNewRoman);
4739
4723
    }
4740
4724
 
4741
4725
    test_UIDeactivate();
4742
 
    test_InPlaceDeactivate(unk, TRUE);
 
4726
    test_InPlaceDeactivate(doc, TRUE);
4743
4727
    SET_EXPECT(Advise_Close);
4744
 
    test_Close(unk, FALSE);
 
4728
    test_Close(doc, FALSE);
4745
4729
    CHECK_CALLED(Advise_Close);
4746
4730
 
4747
4731
    if(view) {
4755
4739
 
4756
4740
static void test_UIActivate(BOOL do_load, BOOL use_ipsex, BOOL use_ipsw)
4757
4741
{
4758
 
    IUnknown *unk;
 
4742
    IHTMLDocument2 *doc;
4759
4743
    IOleObject *oleobj;
4760
4744
    IOleInPlaceSite *inplacesite;
4761
4745
    HRESULT hres;
4765
4749
 
4766
4750
    init_test(do_load ? LD_DOLOAD : LD_NO);
4767
4751
 
4768
 
    hres = create_document(&unk);
 
4752
    hres = create_document(&doc);
4769
4753
    if(FAILED(hres))
4770
4754
        return;
4771
 
    doc_unk = unk;
 
4755
    doc_unk = (IUnknown*)doc;
4772
4756
 
4773
4757
    ipsex = use_ipsex;
4774
4758
    ipsw = use_ipsw;
4775
4759
 
4776
 
    hres = IUnknown_QueryInterface(unk, &IID_IOleObject, (void**)&oleobj);
 
4760
    hres = IUnknown_QueryInterface(doc, &IID_IOleObject, (void**)&oleobj);
4777
4761
    ok(hres == S_OK, "QueryInterface(IID_IOleObject) failed: %08x\n", hres);
4778
4762
 
4779
 
    hres = IUnknown_QueryInterface(unk, &IID_IOleDocumentView, (void**)&view);
 
4763
    hres = IUnknown_QueryInterface(doc, &IID_IOleDocumentView, (void**)&view);
4780
4764
    ok(hres == S_OK, "QueryInterface(IID_IOleDocumentView) failed: %08x\n", hres);
4781
4765
 
4782
4766
    SET_EXPECT(Invoke_AMBIENT_USERMODE);
4893
4877
    else
4894
4878
        CHECK_CALLED(OnInPlaceDeactivate);
4895
4879
 
4896
 
    test_Close(unk, TRUE);
 
4880
    test_Close(doc, TRUE);
4897
4881
 
4898
4882
    IOleObject_Release(oleobj);
4899
4883
    IOleDocumentView_Release(view);
4900
4884
    view = NULL;
4901
4885
 
4902
 
    ref = IUnknown_Release(unk);
 
4886
    ref = IHTMLDocument2_Release(doc);
4903
4887
    ok(ref == 0, "ref=%d, expected 0\n", ref);
4904
4888
}
4905
4889
 
4922
4906
 
4923
4907
static void test_HTMLDoc_ISupportErrorInfo(void)
4924
4908
{
 
4909
    IHTMLDocument2 *doc;
4925
4910
    HRESULT hres;
4926
 
    IUnknown *unk;
4927
4911
    ISupportErrorInfo *sinfo;
4928
4912
    LONG ref;
4929
4913
 
4930
 
    hres = create_document(&unk);
 
4914
    hres = create_document(&doc);
4931
4915
    if(FAILED(hres))
4932
4916
        return;
4933
4917
 
4934
 
    hres = IUnknown_QueryInterface(unk, &IID_ISupportErrorInfo, (void**)&sinfo);
 
4918
    hres = IUnknown_QueryInterface(doc, &IID_ISupportErrorInfo, (void**)&sinfo);
4935
4919
    ok(hres == S_OK, "got %x\n", hres);
4936
4920
    ok(sinfo != NULL, "got %p\n", sinfo);
4937
4921
    if(sinfo)
4941
4925
        IUnknown_Release(sinfo);
4942
4926
    }
4943
4927
 
4944
 
    ref = IUnknown_Release(unk);
 
4928
    ref = IHTMLDocument2_Release(doc);
4945
4929
    ok(ref == 0, "ref=%d, expected 0\n", ref);
4946
4930
}
4947
4931
 
4948
4932
static void test_IPersistHistory(void)
4949
4933
{
 
4934
    IHTMLDocument2 *doc;
4950
4935
    HRESULT hres;
4951
 
    IUnknown *unk;
4952
4936
    LONG ref;
4953
4937
    IPersistHistory *phist;
4954
4938
 
4955
 
    hres = create_document(&unk);
 
4939
    hres = create_document(&doc);
4956
4940
    if(FAILED(hres))
4957
4941
        return;
4958
4942
 
4959
 
    hres = IUnknown_QueryInterface(unk, &IID_IPersistHistory, (void**)&phist);
 
4943
    hres = IUnknown_QueryInterface(doc, &IID_IPersistHistory, (void**)&phist);
4960
4944
    ok(hres == S_OK, "QueryInterface returned %08x, expected S_OK\n", hres);
4961
4945
    if(hres == S_OK)
4962
4946
        IPersistHistory_Release(phist);
4963
4947
 
4964
 
    ref = IUnknown_Release(unk);
 
4948
    ref = IHTMLDocument2_Release(doc);
4965
4949
    ok(ref == 0, "ref=%d, expected 0\n", ref);
4966
4950
}
4967
4951