Reactos
1/*
2 * PROJECT: ReactOS API Tests
3 * LICENSE: MIT (https://spdx.org/licenses/MIT)
4 * PURPOSE: COM interface test for explorerframe server
5 * COPYRIGHT: Copyright 2025 Carl Bialorucki <carl.bialorucki@reactos.org>
6 */
7
8#include "com_apitest.h"
9
10#define NDEBUG
11#include <debug.h>
12
13static const CLASS_AND_INTERFACES ExpectedInterfaces[] =
14{
15 {
16 ID_NAME(CLSID_BandSiteMenu, NTDDI_WIN7, NTDDI_MAX),
17 {
18 { NTDDI_WIN7, NTDDI_MAX, &IID_IContextMenu3 },
19 { NTDDI_WIN7, NTDDI_MAX, &IID_IContextMenu2 },
20 { NTDDI_WIN7, NTDDI_MAX, &IID_IContextMenu },
21 { NTDDI_WIN7, NTDDI_MAX, &IID_IUnknown },
22 { NTDDI_WIN7, NTDDI_MAX, &IID_IShellService },
23 }
24 },
25 {
26 ID_NAME(CLSID_CDockingBarPropertyBag, NTDDI_WIN7, NTDDI_MAX),
27 {
28 { NTDDI_WIN7, NTDDI_MAX, &IID_IPropertyBag },
29 { NTDDI_WIN7, NTDDI_MAX, &IID_IUnknown },
30 },
31 },
32 {
33 ID_NAME(CLSID_DeskBarApp, NTDDI_WIN7, NTDDI_MAX),
34 {
35 { NTDDI_WIN7, NTDDI_MAX, &IID_IOleCommandTarget },
36 { NTDDI_WIN7, NTDDI_MAX, &IID_IServiceProvider },
37 { NTDDI_WIN7, NTDDI_MAX, &IID_IDeskBar },
38 { NTDDI_WIN7, NTDDI_MAX, &IID_IOleWindow },
39 { NTDDI_WIN7, NTDDI_MAX, &IID_IInputObjectSite },
40 { NTDDI_WIN7, NTDDI_MAX, &IID_IInputObject },
41 { NTDDI_WIN7, NTDDI_MAX, &IID_IDockingWindow },
42 { NTDDI_WIN7, NTDDI_MAX, &IID_IObjectWithSite },
43 { NTDDI_WIN7, NTDDI_MAX, &IID_IPersistStreamInit },
44 { NTDDI_WIN7, NTDDI_MAX, &IID_IPersistStream },
45 { NTDDI_WIN7, NTDDI_MAX, &IID_IPersist },
46 { NTDDI_WIN7, NTDDI_MAX, &IID_IPersistPropertyBag },
47 { NTDDI_WIN7, NTDDI_MAX, &IID_IUnknown },
48 { NTDDI_WIN7, NTDDI_MAX, &IID_IContextMenu3 },
49 { NTDDI_WIN7, NTDDI_MAX, &IID_IContextMenu2 },
50 { NTDDI_WIN7, NTDDI_MAX, &IID_IContextMenu },
51 }
52 },
53 {
54 ID_NAME(CLSID_GlobalFolderSettings, NTDDI_WIN7, NTDDI_MAX),
55 {
56 { NTDDI_WIN7, NTDDI_MAX, &IID_IGlobalFolderSettings },
57 { NTDDI_WIN7, NTDDI_MAX, &IID_IUnknown },
58 },
59 L"Both"
60 },
61 {
62 ID_NAME(CLSID_InternetToolbar, NTDDI_WIN7, NTDDI_MAX),
63 {
64 { NTDDI_WIN7, NTDDI_MAX, &IID_IOleCommandTarget },
65 { NTDDI_WIN7, NTDDI_MAX, &IID_IServiceProvider },
66 { NTDDI_WIN7, NTDDI_MAX, &IID_IDeskBar },
67 { NTDDI_WIN7, NTDDI_MAX, &IID_IOleWindow },
68 { NTDDI_WIN7, NTDDI_MAX, &IID_IInputObjectSite },
69 { NTDDI_WIN7, NTDDI_MAX, &IID_IInputObject },
70 { NTDDI_WIN7, NTDDI_MAX, &IID_IDockingWindow },
71 { NTDDI_WIN7, NTDDI_MAX, &IID_IObjectWithSite },
72 { NTDDI_WIN7, NTDDI_MAX, &IID_IUnknown },
73 { NTDDI_WIN7, NTDDI_MAX, &IID_IPersistStreamInit },
74 { NTDDI_WIN7, NTDDI_MAX, &IID_IBandHost },
75 }
76 },
77 {
78 ID_NAME(CLSID_RebarBandSite, NTDDI_WIN7, NTDDI_MAX),
79 {
80 { NTDDI_WIN7, NTDDI_MAX, &IID_IUnknown },
81 { NTDDI_WIN7, NTDDI_MAX, &IID_IBandSite },
82 { NTDDI_WIN7, NTDDI_MAX, &IID_IInputObjectSite },
83 { NTDDI_WIN7, NTDDI_MAX, &IID_IInputObject },
84 { NTDDI_WIN7, NTDDI_MAX, &IID_IDeskBarClient },
85 { NTDDI_WIN7, NTDDI_MAX, &IID_IOleWindow },
86 { NTDDI_WIN7, NTDDI_MAX, &IID_IWinEventHandler },
87 { NTDDI_WIN7, NTDDI_MAX, &IID_IPersistStream },
88 { NTDDI_WIN7, NTDDI_MAX, &IID_IPersist },
89 { NTDDI_WIN7, NTDDI_MAX, &IID_IDropTarget },
90 { NTDDI_WIN7, NTDDI_MAX, &IID_IServiceProvider },
91 { NTDDI_WIN7, NTDDI_MAX, &IID_IBandSiteHelper },
92 { NTDDI_WIN7, NTDDI_MAX, &IID_IOleCommandTarget },
93 }
94 },
95 {
96 ID_NAME(CLSID_SH_AddressBand, NTDDI_WIN7, NTDDI_MAX),
97 {
98 { NTDDI_WIN7, NTDDI_MAX, &IID_IDeskBand },
99 { NTDDI_WIN7, NTDDI_MAX, &IID_IDockingWindow },
100 { NTDDI_WIN7, NTDDI_MAX, &IID_IOleWindow },
101 { NTDDI_WIN7, NTDDI_MAX, &IID_IUnknown },
102 { NTDDI_WIN7, NTDDI_MAX, &IID_IObjectWithSite },
103 { NTDDI_WIN7, NTDDI_MAX, &IID_IInputObject },
104 { NTDDI_WIN7, NTDDI_MAX, &IID_IPersistStream },
105 { NTDDI_WIN7, NTDDI_MAX, &IID_IPersist },
106 { NTDDI_WIN7, NTDDI_MAX, &IID_IOleCommandTarget },
107 { NTDDI_WIN7, NTDDI_MAX, &IID_IServiceProvider },
108 { NTDDI_WIN7, NTDDI_MAX, &IID_IWinEventHandler },
109 { NTDDI_WIN7, NTDDI_MAX, &IID_IInputObjectSite },
110 { NTDDI_WIN7, NTDDI_MAX, &IID_IShellChangeNotify },
111 }
112 },
113 {
114 ID_NAME(CLSID_TaskbarList, NTDDI_WIN7, NTDDI_MAX),
115 {
116 { NTDDI_WIN7, NTDDI_MAX, &IID_ITaskbarList3 },
117 { NTDDI_WIN7, NTDDI_MAX, &IID_ITaskbarList4 },
118 { NTDDI_WIN7, NTDDI_MAX, &IID_ITaskbarList2 },
119 { NTDDI_WIN7, NTDDI_MAX, &IID_ITaskbarList },
120 { NTDDI_WIN7, NTDDI_MAX, &IID_IUnknown },
121 }
122 },
123};
124
125START_TEST(explorerframe)
126{
127 TestClassesEx(L"explorerframe",
128 ExpectedInterfaces, RTL_NUMBER_OF(ExpectedInterfaces),
129 NTDDI_WIN7, NTDDI_MAX,
130 FALSE);
131}