2 * PROJECT: ReactOS api tests
3 * LICENSE: GPLv2+ - See COPYING in the top level directory
4 * PURPOSE: COM interface test for shdocvw classes
5 * PROGRAMMER: Thomas Faber <thomas.faber@reactos.org>
8 #include "com_apitest.h"
13 static const CLASS_AND_INTERFACES ExpectedInterfaces
[] =
16 ID_NAME(CLSID_AdminFolderShortcut
),
18 { 0x0, &IID_IShellFolder2
},
19 { 0x0, &IID_IShellFolder
},
20 { 0x0, &IID_IUnknown
},
21 { 0x4, &IID_IPersistFolder3
},
22 { 0x4, &IID_IPersistFolder2
},
23 { 0x4, &IID_IPersistFolder
},
24 { 0x4, &IID_IPersist
},
25 { 0x8, &IID_IShellLinkA
},
26 { 0xc, &IID_IShellLinkW
},
27 { 0x10, &IID_IPersistFile
},
28 { 0x14, &IID_IExtractIconW
},
29 { 0x18, &IID_IQueryInfo
},
30 { 0x20, &IID_IPersistStream
},
31 { 0x20, &IID_IPersistStreamInit
},
32 { 0x24, &IID_IPersistPropertyBag
},
33 { 0x28, &IID_IBrowserFrameOptions
},
37 ID_NAME(CLSID_ExplorerBand
),
39 { -0xb4, &IID_IDeskBand
},
40 { -0xb4, &IID_IDockingWindow
},
41 { -0xb4, &IID_IOleWindow
},
42 { -0xb0, &IID_IObjectWithSite
},
43 { -0xa8, &IID_IInputObject
},
44 { -0xa4, &IID_IPersistStream
},
45 { -0xa4, &IID_IPersist
},
46 { -0xa0, &IID_IOleCommandTarget
},
47 { -0x9c, &IID_IServiceProvider
},
48 { -0x84, &IID_IContextMenu
},
49 { -0x80, &IID_IBandNavigate
},
50 { -0x7c, &IID_IWinEventHandler
},
51 { -0x78, &IID_INamespaceProxy
},
52 { 0x0, &IID_IDispatch
},
53 { 0x0, &IID_IUnknown
},
57 ID_NAME(CLSID_FontsFolderShortcut
),
59 { 0x0, &IID_IShellFolder2
},
60 { 0x0, &IID_IShellFolder
},
61 { 0x0, &IID_IUnknown
},
62 { 0x4, &IID_IPersistFolder3
},
63 { 0x4, &IID_IPersistFolder2
},
64 { 0x4, &IID_IPersistFolder
},
65 { 0x4, &IID_IPersist
},
66 { 0x8, &IID_IShellLinkA
},
67 { 0xc, &IID_IShellLinkW
},
68 { 0x10, &IID_IPersistFile
},
69 { 0x14, &IID_IExtractIconW
},
70 { 0x18, &IID_IQueryInfo
},
71 { 0x20, &IID_IPersistStream
},
72 { 0x20, &IID_IPersistStreamInit
},
73 { 0x24, &IID_IPersistPropertyBag
},
74 { 0x28, &IID_IBrowserFrameOptions
},
77 #if 0 // E_OUTOFMEMORY?
79 ID_NAME(CLSID_ShellDispatchInproc
),
81 { 0x0, &IID_IUnknown
},
86 ID_NAME(CLSID_MruLongList
),
88 { 0x0, &IID_IUnknown
},
92 ID_NAME(CLSID_SearchAssistantOC
),
94 { 0x0, &IID_ISearchAssistantOC3
},
95 { 0x0, &IID_ISearchAssistantOC
},
96 { 0x0, &IID_IDispatch
},
97 { 0x0, &IID_IUnknown
},
98 { 0x4, &IID_IProvideClassInfo2
},
99 { 0x4, &IID_IProvideClassInfo
},
100 { 0x8, &IID_IQuickActivate
},
101 { 0xc, &IID_IOleControl
},
102 { 0x10, &IID_IOleObject
},
103 { 0x14, &IID_IOleInPlaceActiveObject
},
104 { 0x18, &IID_IViewObjectEx
},
105 { 0x18, &IID_IViewObject2
},
106 { 0x18, &IID_IViewObject
},
107 { 0x1c, &IID_IOleInPlaceObjectWindowless
},
108 { 0x1c, &IID_IOleInPlaceObject
},
109 { 0x1c, &IID_IOleWindow
},
110 { 0x20, &IID_IDataObject
},
111 { 0x30, &IID_IConnectionPointContainer
},
112 { 0x34, &IID_IObjectSafety
},
113 { 0x3c, &IID_IOleCommandTarget
},
114 { 0x40, &IID_IObjectWithSite
},
118 ID_NAME(CLSID_ShellSearchAssistantOC
),
120 { 0x0, &IID_ISearchAssistantOC3
},
121 { 0x0, &IID_ISearchAssistantOC
},
122 { 0x0, &IID_IDispatch
},
123 { 0x0, &IID_IUnknown
},
124 { 0x4, &IID_IProvideClassInfo2
},
125 { 0x4, &IID_IProvideClassInfo
},
126 { 0x8, &IID_IQuickActivate
},
127 { 0xc, &IID_IOleControl
},
128 { 0x10, &IID_IOleObject
},
129 { 0x14, &IID_IOleInPlaceActiveObject
},
130 { 0x18, &IID_IViewObjectEx
},
131 { 0x18, &IID_IViewObject2
},
132 { 0x18, &IID_IViewObject
},
133 { 0x1c, &IID_IOleInPlaceObjectWindowless
},
134 { 0x1c, &IID_IOleInPlaceObject
},
135 { 0x1c, &IID_IOleWindow
},
136 { 0x20, &IID_IDataObject
},
137 { 0x30, &IID_IConnectionPointContainer
},
138 { 0x34, &IID_IObjectSafety
},
139 { 0x3c, &IID_IOleCommandTarget
},
140 { 0x40, &IID_IObjectWithSite
},
144 ID_NAME(CLSID_ShellShellNameSpace
),
146 { 0x0, &IID_IShellNameSpace
},
147 { 0x0, &IID_IShellFavoritesNameSpace
},
148 { 0x0, &IID_IDispatch
},
149 { 0x0, &IID_IUnknown
},
150 { 0x4, &IID_IProvideClassInfo2
},
151 { 0x4, &IID_IProvideClassInfo
},
152 { 0x8, &IID_IPersistStreamInit
},
153 { 0xc, &IID_IPersistPropertyBag
},
154 { 0x10, &IID_IQuickActivate
},
155 { 0x14, &IID_IOleControl
},
156 { 0x18, &IID_IOleObject
},
157 { 0x1c, &IID_IOleInPlaceActiveObject
},
158 { 0x20, &IID_IViewObjectEx
},
159 { 0x20, &IID_IViewObject2
},
160 { 0x20, &IID_IViewObject
},
161 { 0x24, &IID_IOleInPlaceObjectWindowless
},
162 { 0x24, &IID_IOleInPlaceObject
},
163 { 0x24, &IID_IOleWindow
},
164 { 0x28, &IID_ISpecifyPropertyPages
},
165 { 0x38, &IID_IConnectionPointContainer
},
166 { 0x3c, &IID_IShellChangeNotify
},
167 { 0x40, &IID_IDropTarget
},
168 { 0xb4, &IID_IObjectWithSite
},
169 { 0xbc, &IID_INSCTree2
},
170 { 0xbc, &IID_INSCTree
},
171 { 0xc0, &IID_IWinEventHandler
},
172 { 0xc4, &IID_IShellBrowser
},
173 { 0xc8, &IID_IFolderFilterSite
},
177 ID_NAME(CLSID_TaskbarList
),
179 { 0x0, &IID_ITaskbarList2
},
180 { 0x0, &IID_ITaskbarList
},
181 { 0x0, &IID_IUnknown
},
185 static const INT ExpectedInterfaceCount
= RTL_NUMBER_OF(ExpectedInterfaces
);
189 TestClasses(L
"shdocvw", ExpectedInterfaces
, ExpectedInterfaceCount
);