[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 { -0x14, &IID_IShellFolder2 },
19 { -0x14, &IID_IShellFolder },
20 { -0x10, &IID_IPersistFolder2 },
21 { -0x10, &IID_IPersistFolder },
22 { -0x10, &IID_IPersist },
23 { -0xc, &IID_IBrowserFrameOptions },
24 { 0x0, &IID_IContextMenu },
25 { 0x0, &IID_IUnknown },
26 { 0x4, &IID_IShellExtInit },
27 }
28 },
29 {
30 ID_NAME(CLSID_CUrlHistory),
31 {
32 { 0x0, &IID_IUnknown },
33 }
34 },
35 {
36 ID_NAME(CLSID_CURLSearchHook),
37 {
38 { 0x0, &IID_IURLSearchHook2 },
39 { 0x0, &IID_IURLSearchHook },
40 { 0x0, &IID_IUnknown },
41 }
42 },
43 {
44 ID_NAME(CLSID_InternetShortcut),
45 {
46 { -0xc, &IID_IDataObject },
47 { -0x8, &IID_IContextMenu2 },
48 { -0x8, &IID_IContextMenu },
49 { -0x4, &IID_IExtractIconA },
50 { 0x0, &IID_IExtractIconW },
51 { 0x0, &IID_IUnknown },
52 { 0x4, &IID_IPersistFile },
53 { 0x4, &IID_IPersist },
54 { 0x8, &IID_IPersistStream },
55 { 0xc, &IID_IShellExtInit },
56 { 0x10, &IID_IShellLinkA },
57 { 0x14, &IID_IShellLinkW },
58 { 0x18, &IID_IShellPropSheetExt },
59 { 0x20, &IID_INewShortcutHookA },
60 { 0x24, &IID_INewShortcutHookW },
61 { 0x30, &IID_IQueryInfo },
62 { 0x38, &IID_IObjectWithSite },
63 { 0x44, &IID_IOleCommandTarget },
64 { 0x48, &IID_IServiceProvider },
65 }
66 },
67 {
68 ID_NAME(CLSID_ShellUIHelper),
69 {
70 { 0x0, &IID_IUnknown },
71 { 0xc, &IID_IObjectWithSite },
72 { 0x10, &IID_IObjectSafety },
73 { 0x14, &IID_IShellUIHelper2 },
74 { 0x14, &IID_IShellUIHelper },
75 { 0x14, &IID_IDispatch },
76 }
77 },
78 {
79 ID_NAME(CLSID_ShellNameSpace),
80 {
81 { 0x0, &IID_IShellNameSpace },
82 { 0x0, &IID_IShellFavoritesNameSpace },
83 { 0x0, &IID_IDispatch },
84 { 0x0, &IID_IUnknown },
85 { 0x8, &IID_IPersistStreamInit },
86 { 0x10, &IID_IPersistPropertyBag },
87 { 0x1c, &IID_IOleObject },
88 { 0x20, &IID_IOleInPlaceActiveObject },
89 { 0x24, &IID_IViewObjectEx },
90 { 0x24, &IID_IViewObject2 },
91 { 0x24, &IID_IViewObject },
92 { 0x28, &IID_IOleInPlaceObjectWindowless },
93 { 0x28, &IID_IOleInPlaceObject },
94 { 0x28, &IID_IOleWindow },
95 { 0x3c, &IID_IDropTarget },
96 { 0xb4, &IID_IObjectWithSite },
97 { 0xbc, &IID_INSCTree },
98 { 0xc4, &IID_IShellBrowser },
99 { 0xc8, &IID_IFolderFilterSite },
100 { 0xd0, &IID_IServiceProvider },
101 { 0xd4, &IID_INameSpaceTreeControl },
102 { 0xe4, &IID_IWinEventHandler },
103 }
104 },
105 {
106 ID_NAME(CLSID_ShellWindows),
107 {
108 { -0xa0, &IID_IMarshal2 },
109 { -0xa0, &IID_IMarshal },
110 { -0x20, &IID_IClientSecurity },
111 { -0x18, &IID_IRpcOptions },
112 { -0xc, &IID_ICallFactory },
113 { -0x8, &IID_IForegroundTransfer },
114 { 0x0, &IID_IMultiQI },
115 { 0x0, &IID_IUnknown },
116 { FARAWY, &IID_IShellWindows },
117 { FARAWY, &IID_IDispatch },
118 }
119 },
120 {
121 ID_NAME(CLSID_WebBrowser),
122 {
123 { -0x20, &IID_IPersist },
124 { -0x1c, &IID_IOleObject },
125 { -0x18, &IID_IViewObject2 },
126 { -0x18, &IID_IViewObject },
127 { -0x14, &IID_IDataObject },
128 { -0x10, &IID_IOleInPlaceObject },
129 { -0x10, &IID_IOleWindow },
130 { -0xc, &IID_IOleInPlaceActiveObject },
131 { 0x0, &IID_IUnknown },
132 { 0x98, &IID_IPersistStream },
133 { 0x98, &IID_IPersistStreamInit },
134 { 0x9c, &IID_IPersistPropertyBag },
135 { 0x120, &IID_IWebBrowser2 },
136 { 0x120, &IID_IWebBrowserApp },
137 { 0x120, &IID_IWebBrowser },
138 { 0x120, &IID_IDispatch },
139 { 0x130, &IID_IOleCommandTarget },
140 { 0x134, &IID_IObjectSafety },
141 { 0x140, &IID_IPersistStorage },
142 { 0x144, &IID_IPersistHistory },
143 { FARAWY, &IID_IShellService },
144 { FARAWY, &IID_IServiceProvider },
145 }
146 },
147 {
148 ID_NAME(CLSID_WebBrowser_V1),
149 {
150 { -0x20, &IID_IPersist },
151 { -0x1c, &IID_IOleObject },
152 { -0x18, &IID_IViewObject2 },
153 { -0x18, &IID_IViewObject },
154 { -0x14, &IID_IDataObject },
155 { -0x10, &IID_IOleInPlaceObject },
156 { -0x10, &IID_IOleWindow },
157 { -0xc, &IID_IOleInPlaceActiveObject },
158 { 0x0, &IID_IUnknown },
159 { 0x98, &IID_IPersistStream },
160 { 0x98, &IID_IPersistStreamInit },
161 { 0x9c, &IID_IPersistPropertyBag },
162 { 0x120, &IID_IWebBrowser2 },
163 { 0x120, &IID_IWebBrowserApp },
164 { 0x120, &IID_IWebBrowser },
165 { 0x120, &IID_IDispatch },
166 { 0x130, &IID_IOleCommandTarget },
167 { 0x134, &IID_IObjectSafety },
168 { 0x140, &IID_IPersistStorage },
169 { 0x144, &IID_IPersistHistory },
170 { FARAWY, &IID_IShellService },
171 { FARAWY, &IID_IServiceProvider },
172 }
173 },
174 };
175 static const INT ExpectedInterfaceCount = RTL_NUMBER_OF(ExpectedInterfaces);
176
177 START_TEST(ieframe)
178 {
179 TestClasses(L"ieframe", ExpectedInterfaces, ExpectedInterfaceCount);
180 }