mshtml: Moved Invoke(DISPID_ENABLED) invocation to separated function.
[wine] / dlls / browseui / tests / progressdlg.c
1 /* Unit tests for progressdialog object
2  *
3  * Copyright 2012 Detlef Riekenberg
4  *
5  * This library is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Lesser General Public
7  * License as published by the Free Software Foundation; either
8  * version 2.1 of the License, or (at your option) any later version.
9  *
10  * This library is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13  * Lesser General Public License for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public
16  * License along with this library; if not, write to the Free Software
17  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
18  */
19
20 #define COBJMACROS
21
22 #include <stdarg.h>
23 #include <shlobj.h>
24
25 #include "wine/test.h"
26
27
28 static void test_IProgressDialog_QueryInterface(void)
29 {
30     IProgressDialog *dlg;
31     IProgressDialog *dlg2;
32     IOleWindow *olewindow;
33     IUnknown *unk;
34     HRESULT hr;
35
36     hr = CoCreateInstance(&CLSID_ProgressDialog, NULL, CLSCTX_INPROC_SERVER, &IID_IProgressDialog, (void*)&dlg);
37     if (FAILED(hr)) {
38         win_skip("CoCreateInstance for IProgressDialog returned 0x%x\n", hr);
39         return;
40     }
41
42     hr = IUnknown_QueryInterface(dlg, &IID_IUnknown, NULL);
43     ok(hr == E_POINTER, "got 0x%x (expected E_POINTER)\n", hr);
44
45     hr = IUnknown_QueryInterface(dlg, &IID_IUnknown, (void**)&unk);
46     ok(hr == S_OK, "QueryInterface (IUnknown) returned 0x%x\n", hr);
47     if (SUCCEEDED(hr)) {
48         IUnknown_Release(unk);
49     }
50
51     hr = IUnknown_QueryInterface(dlg, &IID_IOleWindow, (void**)&olewindow);
52     ok(hr == S_OK, "QueryInterface (IOleWindow) returned 0x%x\n", hr);
53     if (SUCCEEDED(hr)) {
54         hr = IUnknown_QueryInterface(olewindow, &IID_IProgressDialog, (void**)&dlg2);
55         ok(hr == S_OK, "QueryInterface (IProgressDialog) returned 0x%x\n", hr);
56         if (SUCCEEDED(hr)) {
57             IProgressDialog_Release(dlg2);
58         }
59         IOleWindow_Release(olewindow);
60     }
61     IProgressDialog_Release(dlg);
62 }
63
64
65 START_TEST(progressdlg)
66 {
67     CoInitialize(NULL);
68
69     test_IProgressDialog_QueryInterface();
70
71     CoUninitialize();
72 }