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