1*c2c66affSColin Finck /*
2*c2c66affSColin Finck  * PROJECT:         ReactOS api tests
3*c2c66affSColin Finck  * LICENSE:         GPLv2+ - See COPYING in the top level directory
4*c2c66affSColin Finck  * PURPOSE:         COM interface test for ieframe classes
5*c2c66affSColin Finck  * PROGRAMMER:      Thomas Faber <thomas.faber@reactos.org>
6*c2c66affSColin Finck  */
7*c2c66affSColin Finck 
8*c2c66affSColin Finck #include "com_apitest.h"
9*c2c66affSColin Finck 
10*c2c66affSColin Finck #define NDEBUG
11*c2c66affSColin Finck #include <debug.h>
12*c2c66affSColin Finck 
13*c2c66affSColin Finck static const CLASS_AND_INTERFACES ExpectedInterfaces[] =
14*c2c66affSColin Finck {
15*c2c66affSColin Finck     {
16*c2c66affSColin Finck         ID_NAME(CLSID_IE_SearchBand),
17*c2c66affSColin Finck         {
18*c2c66affSColin Finck             {  -0x30,   &IID_IObjectWithSite },
19*c2c66affSColin Finck             {  -0x28,   &IID_IDeskBand },
20*c2c66affSColin Finck             {  -0x28,       &IID_IDockingWindow },
21*c2c66affSColin Finck             {  -0x28,           &IID_IOleWindow },
22*c2c66affSColin Finck             {  -0x24,   &IID_IInputObject },
23*c2c66affSColin Finck             {  -0x20,   &IID_IPersistStream },
24*c2c66affSColin Finck             {  -0x20,       &IID_IPersist },
25*c2c66affSColin Finck             {  -0x1c,   &IID_IOleCommandTarget },
26*c2c66affSColin Finck             {  -0x18,   &IID_IServiceProvider },
27*c2c66affSColin Finck             {    0x0,   &IID_IContextMenu },
28*c2c66affSColin Finck             {    0x0,       &IID_IUnknown },
29*c2c66affSColin Finck             {    0x8,   &IID_IDispatch },
30*c2c66affSColin Finck             {   0x10,   &IID_IPersistPropertyBag },
31*c2c66affSColin Finck             {   0x8c,   &IID_IBandNavigate },
32*c2c66affSColin Finck         }
33*c2c66affSColin Finck     },
34*c2c66affSColin Finck     {
35*c2c66affSColin Finck         ID_NAME(CLSID_Internet),
36*c2c66affSColin Finck         {
37*c2c66affSColin Finck             {  -0x18,   &IID_IObjectWithBackReferences },
38*c2c66affSColin Finck             {  -0x14,   &IID_IShellFolder2 },
39*c2c66affSColin Finck             {  -0x14,       &IID_IShellFolder },
40*c2c66affSColin Finck             {  -0x10,   &IID_IPersistFolder2 },
41*c2c66affSColin Finck             {  -0x10,       &IID_IPersistFolder },
42*c2c66affSColin Finck             {  -0x10,           &IID_IPersist },
43*c2c66affSColin Finck             {   -0xc,   &IID_IBrowserFrameOptions },
44*c2c66affSColin Finck             {    0x0,   &IID_IContextMenu },
45*c2c66affSColin Finck             {    0x0,       &IID_IUnknown },
46*c2c66affSColin Finck             {    0x4,   &IID_IShellExtInit },
47*c2c66affSColin Finck         }
48*c2c66affSColin Finck     },
49*c2c66affSColin Finck     {
50*c2c66affSColin Finck         ID_NAME(CLSID_CUrlHistory),
51*c2c66affSColin Finck         {
52*c2c66affSColin Finck             {    0x0,   &IID_IUrlHistoryStg2 },
53*c2c66affSColin Finck             {    0x0,       &IID_IUrlHistoryStg },
54*c2c66affSColin Finck             {    0x0,           &IID_IUnknown },
55*c2c66affSColin Finck         }
56*c2c66affSColin Finck     },
57*c2c66affSColin Finck     {
58*c2c66affSColin Finck         ID_NAME(CLSID_CURLSearchHook),
59*c2c66affSColin Finck         {
60*c2c66affSColin Finck             {    0x0,   &IID_IURLSearchHook2 },
61*c2c66affSColin Finck             {    0x0,       &IID_IURLSearchHook },
62*c2c66affSColin Finck             {    0x0,           &IID_IUnknown },
63*c2c66affSColin Finck         }
64*c2c66affSColin Finck     },
65*c2c66affSColin Finck     {
66*c2c66affSColin Finck         ID_NAME(CLSID_InternetShortcut),
67*c2c66affSColin Finck         {
68*c2c66affSColin Finck             {   -0xc,   &IID_IDataObject },
69*c2c66affSColin Finck             {   -0x8,   &IID_IContextMenu2 },
70*c2c66affSColin Finck             {   -0x8,       &IID_IContextMenu },
71*c2c66affSColin Finck             {   -0x4,   &IID_IExtractIconA },
72*c2c66affSColin Finck             {    0x0,   &IID_IExtractIconW },
73*c2c66affSColin Finck             {    0x0,       &IID_IUnknown },
74*c2c66affSColin Finck             {    0x4,   &IID_IPersistFile },
75*c2c66affSColin Finck             {    0x4,       &IID_IPersist },
76*c2c66affSColin Finck             {    0x8,   &IID_IPersistStream },
77*c2c66affSColin Finck             {    0xc,   &IID_IShellExtInit },
78*c2c66affSColin Finck             {   0x10,   &IID_IShellLinkA },
79*c2c66affSColin Finck             {   0x14,   &IID_IShellLinkW },
80*c2c66affSColin Finck             {   0x18,   &IID_IShellPropSheetExt },
81*c2c66affSColin Finck             {   0x1c,   &IID_IPropertySetStorage },
82*c2c66affSColin Finck             {   0x20,   &IID_INewShortcutHookA },
83*c2c66affSColin Finck             {   0x24,   &IID_INewShortcutHookW },
84*c2c66affSColin Finck             {   0x30,   &IID_IQueryInfo },
85*c2c66affSColin Finck             {   0x38,   &IID_IObjectWithSite },
86*c2c66affSColin Finck             {   0x44,   &IID_IOleCommandTarget },
87*c2c66affSColin Finck             {   0x48,   &IID_IServiceProvider },
88*c2c66affSColin Finck             {   0x4c,   &IID_IPropertyStore },
89*c2c66affSColin Finck             {   0x50,   &IID_IInitializeWithFile },
90*c2c66affSColin Finck             {   0x54,   &IID_IInitializeWithBindCtx },
91*c2c66affSColin Finck         }
92*c2c66affSColin Finck     },
93*c2c66affSColin Finck     {
94*c2c66affSColin Finck         ID_NAME(CLSID_ShellUIHelper),
95*c2c66affSColin Finck         {
96*c2c66affSColin Finck             {    0x0,   &IID_IUnknown },
97*c2c66affSColin Finck             {    0xc,   &IID_IObjectWithSite },
98*c2c66affSColin Finck             {   0x10,   &IID_IObjectSafety },
99*c2c66affSColin Finck             {   0x14,   &IID_IShellUIHelper2 },
100*c2c66affSColin Finck             {   0x14,       &IID_IShellUIHelper },
101*c2c66affSColin Finck             {   0x14,           &IID_IDispatch },
102*c2c66affSColin Finck             {   0x18,   &IID_IDispatchEx },
103*c2c66affSColin Finck         }
104*c2c66affSColin Finck     },
105*c2c66affSColin Finck     {
106*c2c66affSColin Finck         ID_NAME(CLSID_ShellNameSpace),
107*c2c66affSColin Finck         {
108*c2c66affSColin Finck             {    0x0,   &IID_IShellNameSpace },
109*c2c66affSColin Finck             {    0x0,       &IID_IShellFavoritesNameSpace },
110*c2c66affSColin Finck             {    0x0,           &IID_IDispatch },
111*c2c66affSColin Finck             {    0x0,               &IID_IUnknown },
112*c2c66affSColin Finck             {    0x4,   &IID_IProvideClassInfo2 },
113*c2c66affSColin Finck             {    0x4,       &IID_IProvideClassInfo },
114*c2c66affSColin Finck             {    0x8,   &IID_IPersistStreamInit },
115*c2c66affSColin Finck             {   0x10,   &IID_IPersistPropertyBag },
116*c2c66affSColin Finck             {   0x14,   &IID_IQuickActivate },
117*c2c66affSColin Finck             {   0x18,   &IID_IOleControl },
118*c2c66affSColin Finck             {   0x1c,   &IID_IOleObject },
119*c2c66affSColin Finck             {   0x20,   &IID_IOleInPlaceActiveObject },
120*c2c66affSColin Finck             {   0x24,   &IID_IViewObjectEx },
121*c2c66affSColin Finck             {   0x24,       &IID_IViewObject2 },
122*c2c66affSColin Finck             {   0x24,           &IID_IViewObject },
123*c2c66affSColin Finck             {   0x28,   &IID_IOleInPlaceObjectWindowless },
124*c2c66affSColin Finck             {   0x28,       &IID_IOleInPlaceObject },
125*c2c66affSColin Finck             {   0x28,           &IID_IOleWindow },
126*c2c66affSColin Finck             {   0x38,   &IID_IConnectionPointContainer },
127*c2c66affSColin Finck             {   0x3c,   &IID_IDropTarget },
128*c2c66affSColin Finck             {   0xb4,   &IID_IObjectWithSite },
129*c2c66affSColin Finck             {   0xbc,   &IID_INSCTree },
130*c2c66affSColin Finck             {   0xc4,   &IID_IShellBrowser },
131*c2c66affSColin Finck             {   0xc8,   &IID_IFolderFilterSite },
132*c2c66affSColin Finck             {   0xcc,   &IID_INewMenuClient },
133*c2c66affSColin Finck             {   0xd0,   &IID_IServiceProvider },
134*c2c66affSColin Finck             {   0xd4,   &IID_INameSpaceTreeControl },
135*c2c66affSColin Finck             {   0xe0,   &IID_IVisualProperties },
136*c2c66affSColin Finck             {   0xe4,   &IID_IWinEventHandler },
137*c2c66affSColin Finck         }
138*c2c66affSColin Finck     },
139*c2c66affSColin Finck     {
140*c2c66affSColin Finck         ID_NAME(CLSID_ShellWindows),
141*c2c66affSColin Finck         {
142*c2c66affSColin Finck             {  -0xa0,   &IID_IMarshal2 },
143*c2c66affSColin Finck             {  -0xa0,       &IID_IMarshal },
144*c2c66affSColin Finck             {  -0x20,   &IID_IClientSecurity },
145*c2c66affSColin Finck             {  -0x18,   &IID_IRpcOptions },
146*c2c66affSColin Finck             {   -0xc,   &IID_ICallFactory },
147*c2c66affSColin Finck             {   -0x8,   &IID_IForegroundTransfer },
148*c2c66affSColin Finck             {    0x0,   &IID_IMultiQI },
149*c2c66affSColin Finck             {    0x0,       &IID_IUnknown },
150*c2c66affSColin Finck             { FARAWY,   &IID_IShellWindows },
151*c2c66affSColin Finck             { FARAWY,   &IID_IDispatch },
152*c2c66affSColin Finck             { FARAWY,   &IID_IConnectionPointContainer },
153*c2c66affSColin Finck         }
154*c2c66affSColin Finck     },
155*c2c66affSColin Finck     {
156*c2c66affSColin Finck         ID_NAME(CLSID_WebBrowser),
157*c2c66affSColin Finck         {
158*c2c66affSColin Finck             {  -0x20,   &IID_IPersist },
159*c2c66affSColin Finck             {  -0x1c,   &IID_IOleObject },
160*c2c66affSColin Finck             {  -0x18,   &IID_IViewObject2 },
161*c2c66affSColin Finck             {  -0x18,       &IID_IViewObject },
162*c2c66affSColin Finck             {  -0x14,   &IID_IDataObject },
163*c2c66affSColin Finck             {  -0x10,   &IID_IOleInPlaceObject },
164*c2c66affSColin Finck             {  -0x10,       &IID_IOleWindow },
165*c2c66affSColin Finck             {   -0xc,   &IID_IOleInPlaceActiveObject },
166*c2c66affSColin Finck             {    0x0,   &IID_IUnknown },
167*c2c66affSColin Finck             {   0x98,   &IID_IPersistStream },
168*c2c66affSColin Finck             {   0x98,   &IID_IPersistStreamInit },
169*c2c66affSColin Finck             {   0x9c,   &IID_IPersistPropertyBag },
170*c2c66affSColin Finck             {   0xa0,   &IID_IOleControl },
171*c2c66affSColin Finck             {   0xa8,   &IID_IProvideClassInfo2 },
172*c2c66affSColin Finck             {   0xa8,       &IID_IProvideClassInfo },
173*c2c66affSColin Finck             {   0xac,   &IID_IConnectionPointContainer },
174*c2c66affSColin Finck             {  0x120,   &IID_IWebBrowser2 },
175*c2c66affSColin Finck             {  0x120,       &IID_IWebBrowserApp },
176*c2c66affSColin Finck             {  0x120,           &IID_IWebBrowser },
177*c2c66affSColin Finck             {  0x120,               &IID_IDispatch },
178*c2c66affSColin Finck             {  0x130,   &IID_IOleCommandTarget },
179*c2c66affSColin Finck             {  0x134,   &IID_IObjectSafety },
180*c2c66affSColin Finck             {  0x13c,   &IID_ITargetEmbedding },
181*c2c66affSColin Finck             {  0x140,   &IID_IPersistStorage },
182*c2c66affSColin Finck             {  0x144,   &IID_IPersistHistory },
183*c2c66affSColin Finck             { FARAWY,   &IID_IShellService },
184*c2c66affSColin Finck             { FARAWY,   &IID_IServiceProvider },
185*c2c66affSColin Finck             { FARAWY,   &IID_IHlinkFrame },
186*c2c66affSColin Finck             { FARAWY,   &IID_IUrlHistoryNotify },
187*c2c66affSColin Finck             { FARAWY,   &IID_ITargetFrame2 },
188*c2c66affSColin Finck             { FARAWY,   &IID_ITargetNotify },
189*c2c66affSColin Finck             { FARAWY,   &IID_ITargetFramePriv2 },
190*c2c66affSColin Finck             { FARAWY,       &IID_ITargetFramePriv },
191*c2c66affSColin Finck             { FARAWY,   &IID_IEFrameAuto },
192*c2c66affSColin Finck             { FARAWY,   &IID_IWebBrowserPriv },
193*c2c66affSColin Finck             { FARAWY,   &IID_IWebBrowserPriv2 },
194*c2c66affSColin Finck             { FARAWY,   &IID_ISecMgrCacheSeedTarget },
195*c2c66affSColin Finck             { FARAWY,   &IID_ITargetFrame },
196*c2c66affSColin Finck         }
197*c2c66affSColin Finck     },
198*c2c66affSColin Finck     {
199*c2c66affSColin Finck         ID_NAME(CLSID_WebBrowser_V1),
200*c2c66affSColin Finck         {
201*c2c66affSColin Finck             {  -0x20,   &IID_IPersist },
202*c2c66affSColin Finck             {  -0x1c,   &IID_IOleObject },
203*c2c66affSColin Finck             {  -0x18,   &IID_IViewObject2 },
204*c2c66affSColin Finck             {  -0x18,       &IID_IViewObject },
205*c2c66affSColin Finck             {  -0x14,   &IID_IDataObject },
206*c2c66affSColin Finck             {  -0x10,   &IID_IOleInPlaceObject },
207*c2c66affSColin Finck             {  -0x10,       &IID_IOleWindow },
208*c2c66affSColin Finck             {   -0xc,   &IID_IOleInPlaceActiveObject },
209*c2c66affSColin Finck             {    0x0,   &IID_IUnknown },
210*c2c66affSColin Finck             {   0x98,   &IID_IPersistStream },
211*c2c66affSColin Finck             {   0x98,   &IID_IPersistStreamInit },
212*c2c66affSColin Finck             {   0x9c,   &IID_IPersistPropertyBag },
213*c2c66affSColin Finck             {   0xa0,   &IID_IOleControl },
214*c2c66affSColin Finck             {   0xa8,   &IID_IProvideClassInfo2 },
215*c2c66affSColin Finck             {   0xa8,       &IID_IProvideClassInfo },
216*c2c66affSColin Finck             {   0xac,   &IID_IConnectionPointContainer },
217*c2c66affSColin Finck             {  0x120,   &IID_IWebBrowser2 },
218*c2c66affSColin Finck             {  0x120,       &IID_IWebBrowserApp },
219*c2c66affSColin Finck             {  0x120,           &IID_IWebBrowser },
220*c2c66affSColin Finck             {  0x120,               &IID_IDispatch },
221*c2c66affSColin Finck             {  0x130,   &IID_IOleCommandTarget },
222*c2c66affSColin Finck             {  0x134,   &IID_IObjectSafety },
223*c2c66affSColin Finck             {  0x13c,   &IID_ITargetEmbedding },
224*c2c66affSColin Finck             {  0x140,   &IID_IPersistStorage },
225*c2c66affSColin Finck             {  0x144,   &IID_IPersistHistory },
226*c2c66affSColin Finck             { FARAWY,   &IID_IShellService },
227*c2c66affSColin Finck             { FARAWY,   &IID_IServiceProvider },
228*c2c66affSColin Finck             { FARAWY,   &IID_IHlinkFrame },
229*c2c66affSColin Finck             { FARAWY,   &IID_IUrlHistoryNotify },
230*c2c66affSColin Finck             { FARAWY,   &IID_ITargetFrame2 },
231*c2c66affSColin Finck             { FARAWY,   &IID_ITargetNotify },
232*c2c66affSColin Finck             { FARAWY,   &IID_ITargetFramePriv2 },
233*c2c66affSColin Finck             { FARAWY,       &IID_ITargetFramePriv },
234*c2c66affSColin Finck             { FARAWY,   &IID_IEFrameAuto },
235*c2c66affSColin Finck             { FARAWY,   &IID_IWebBrowserPriv },
236*c2c66affSColin Finck             { FARAWY,   &IID_IWebBrowserPriv2 },
237*c2c66affSColin Finck             { FARAWY,   &IID_ISecMgrCacheSeedTarget },
238*c2c66affSColin Finck             { FARAWY,   &IID_ITargetFrame },
239*c2c66affSColin Finck         }
240*c2c66affSColin Finck     },
241*c2c66affSColin Finck };
242*c2c66affSColin Finck static const INT ExpectedInterfaceCount = RTL_NUMBER_OF(ExpectedInterfaces);
243*c2c66affSColin Finck 
START_TEST(ieframe)244*c2c66affSColin Finck START_TEST(ieframe)
245*c2c66affSColin Finck {
246*c2c66affSColin Finck     TestClasses(L"ieframe", ExpectedInterfaces, ExpectedInterfaceCount);
247*c2c66affSColin Finck }
248