ReactOS 0.4.15-dev-6661-gcc6e444
ShellHook.cpp
Go to the documentation of this file.
1/*
2 * PROJECT: ReactOS api tests
3 * LICENSE: LGPL-2.0-or-later (https://spdx.org/licenses/LGPL-2.0-or-later)
4 * PURPOSE: Test for Shell Hook
5 * COPYRIGHT: Copyright 2020-2021 Katayama Hirofumi MZ (katayama.hirofumi.mz@gmail.com)
6 */
7#include "shelltest.h"
8#include "undocshell.h"
9
10struct TEST_ENTRY
11{
12 INT lineno;
20};
21
22#define STYLE_0 WS_POPUP
23#define STYLE_1 (WS_POPUP | WS_VISIBLE)
24#define STYLE_2 (WS_OVERLAPPED | WS_VISIBLE)
25
26#define EXSTYLE_0 0
27#define EXSTYLE_1 WS_EX_APPWINDOW
28#define EXSTYLE_2 WS_EX_TOOLWINDOW
29#define EXSTYLE_3 (WS_EX_APPWINDOW | WS_EX_TOOLWINDOW)
30
31#define TYPE_0 FALSE, FALSE
32#define TYPE_1 FALSE, TRUE
33#define TYPE_2 TRUE, TRUE
34
35static const TEST_ENTRY s_entries1[] =
36{
37 // TYPE_0
38 { __LINE__, 0, TYPE_0, STYLE_0, EXSTYLE_0 },
39 { __LINE__, 0, TYPE_0, STYLE_0, EXSTYLE_1 },
40 { __LINE__, 0, TYPE_0, STYLE_0, EXSTYLE_2 },
41 { __LINE__, 0, TYPE_0, STYLE_0, EXSTYLE_3 },
42 { __LINE__, 1, TYPE_0, STYLE_1, EXSTYLE_0 },
43 { __LINE__, 1, TYPE_0, STYLE_1, EXSTYLE_1 },
44 { __LINE__, 0, TYPE_0, STYLE_1, EXSTYLE_2 },
45 { __LINE__, 1, TYPE_0, STYLE_1, EXSTYLE_3 },
46 { __LINE__, 1, TYPE_0, STYLE_2, EXSTYLE_0 },
47 { __LINE__, 1, TYPE_0, STYLE_2, EXSTYLE_1 },
48 { __LINE__, 0, TYPE_0, STYLE_2, EXSTYLE_2 },
49 { __LINE__, 1, TYPE_0, STYLE_2, EXSTYLE_3 },
50
51 // TYPE_1
52 { __LINE__, 0, TYPE_1, STYLE_1, EXSTYLE_0, STYLE_0, EXSTYLE_0 },
53 { __LINE__, 0, TYPE_1, STYLE_1, EXSTYLE_0, STYLE_0, EXSTYLE_1 },
54 { __LINE__, 0, TYPE_1, STYLE_1, EXSTYLE_0, STYLE_0, EXSTYLE_2 },
55 { __LINE__, 0, TYPE_1, STYLE_1, EXSTYLE_0, STYLE_0, EXSTYLE_3 },
56 { __LINE__, 0, TYPE_1, STYLE_1, EXSTYLE_0, STYLE_1, EXSTYLE_0 },
57 { __LINE__, 0, TYPE_1, STYLE_1, EXSTYLE_0, STYLE_1, EXSTYLE_1 },
58 { __LINE__, 0, TYPE_1, STYLE_1, EXSTYLE_0, STYLE_1, EXSTYLE_2 },
59 { __LINE__, 0, TYPE_1, STYLE_1, EXSTYLE_0, STYLE_1, EXSTYLE_3 },
60 { __LINE__, 0, TYPE_1, STYLE_1, EXSTYLE_0, STYLE_2, EXSTYLE_0 },
61 { __LINE__, 0, TYPE_1, STYLE_1, EXSTYLE_0, STYLE_2, EXSTYLE_1 },
62 { __LINE__, 0, TYPE_1, STYLE_1, EXSTYLE_0, STYLE_2, EXSTYLE_2 },
63 { __LINE__, 0, TYPE_1, STYLE_1, EXSTYLE_0, STYLE_2, EXSTYLE_3 },
64 { __LINE__, 1, TYPE_1, STYLE_1, EXSTYLE_1, STYLE_0, EXSTYLE_0 },
65 { __LINE__, 1, TYPE_1, STYLE_1, EXSTYLE_1, STYLE_0, EXSTYLE_1 },
66 { __LINE__, 1, TYPE_1, STYLE_1, EXSTYLE_1, STYLE_0, EXSTYLE_2 },
67 { __LINE__, 1, TYPE_1, STYLE_1, EXSTYLE_1, STYLE_0, EXSTYLE_3 },
68 { __LINE__, 1, TYPE_1, STYLE_1, EXSTYLE_1, STYLE_1, EXSTYLE_0 },
69 { __LINE__, 1, TYPE_1, STYLE_1, EXSTYLE_1, STYLE_1, EXSTYLE_1 },
70 { __LINE__, 1, TYPE_1, STYLE_1, EXSTYLE_1, STYLE_1, EXSTYLE_2 },
71 { __LINE__, 1, TYPE_1, STYLE_1, EXSTYLE_1, STYLE_1, EXSTYLE_3 },
72 { __LINE__, 1, TYPE_1, STYLE_1, EXSTYLE_1, STYLE_2, EXSTYLE_0 },
73 { __LINE__, 1, TYPE_1, STYLE_1, EXSTYLE_1, STYLE_2, EXSTYLE_1 },
74 { __LINE__, 1, TYPE_1, STYLE_1, EXSTYLE_1, STYLE_2, EXSTYLE_2 },
75 { __LINE__, 1, TYPE_1, STYLE_1, EXSTYLE_1, STYLE_2, EXSTYLE_3 },
76 { __LINE__, 0, TYPE_1, STYLE_1, EXSTYLE_2, STYLE_0, EXSTYLE_0 },
77 { __LINE__, 0, TYPE_1, STYLE_1, EXSTYLE_2, STYLE_0, EXSTYLE_1 },
78 { __LINE__, 0, TYPE_1, STYLE_1, EXSTYLE_2, STYLE_0, EXSTYLE_2 },
79 { __LINE__, 0, TYPE_1, STYLE_1, EXSTYLE_2, STYLE_0, EXSTYLE_3 },
80 { __LINE__, 0, TYPE_1, STYLE_1, EXSTYLE_2, STYLE_1, EXSTYLE_0 },
81 { __LINE__, 0, TYPE_1, STYLE_1, EXSTYLE_2, STYLE_1, EXSTYLE_1 },
82 { __LINE__, 0, TYPE_1, STYLE_1, EXSTYLE_2, STYLE_1, EXSTYLE_2 },
83 { __LINE__, 0, TYPE_1, STYLE_1, EXSTYLE_2, STYLE_1, EXSTYLE_3 },
84 { __LINE__, 0, TYPE_1, STYLE_1, EXSTYLE_2, STYLE_2, EXSTYLE_0 },
85 { __LINE__, 0, TYPE_1, STYLE_1, EXSTYLE_2, STYLE_2, EXSTYLE_1 },
86 { __LINE__, 0, TYPE_1, STYLE_1, EXSTYLE_2, STYLE_2, EXSTYLE_2 },
87 { __LINE__, 0, TYPE_1, STYLE_1, EXSTYLE_2, STYLE_2, EXSTYLE_3 },
88 { __LINE__, 1, TYPE_1, STYLE_1, EXSTYLE_3, STYLE_0, EXSTYLE_0 },
89 { __LINE__, 1, TYPE_1, STYLE_1, EXSTYLE_3, STYLE_0, EXSTYLE_1 },
90 { __LINE__, 1, TYPE_1, STYLE_1, EXSTYLE_3, STYLE_0, EXSTYLE_2 },
91 { __LINE__, 1, TYPE_1, STYLE_1, EXSTYLE_3, STYLE_0, EXSTYLE_3 },
92 { __LINE__, 1, TYPE_1, STYLE_1, EXSTYLE_3, STYLE_1, EXSTYLE_0 },
93 { __LINE__, 1, TYPE_1, STYLE_1, EXSTYLE_3, STYLE_1, EXSTYLE_1 },
94 { __LINE__, 1, TYPE_1, STYLE_1, EXSTYLE_3, STYLE_1, EXSTYLE_2 },
95 { __LINE__, 1, TYPE_1, STYLE_1, EXSTYLE_3, STYLE_1, EXSTYLE_3 },
96 { __LINE__, 1, TYPE_1, STYLE_1, EXSTYLE_3, STYLE_2, EXSTYLE_0 },
97 { __LINE__, 1, TYPE_1, STYLE_1, EXSTYLE_3, STYLE_2, EXSTYLE_1 },
98 { __LINE__, 1, TYPE_1, STYLE_1, EXSTYLE_3, STYLE_2, EXSTYLE_2 },
99 { __LINE__, 1, TYPE_1, STYLE_1, EXSTYLE_3, STYLE_2, EXSTYLE_3 },
100 { __LINE__, 0, TYPE_1, STYLE_2, EXSTYLE_0, STYLE_0, EXSTYLE_0 },
101 { __LINE__, 0, TYPE_1, STYLE_2, EXSTYLE_0, STYLE_0, EXSTYLE_1 },
102 { __LINE__, 0, TYPE_1, STYLE_2, EXSTYLE_0, STYLE_0, EXSTYLE_2 },
103 { __LINE__, 0, TYPE_1, STYLE_2, EXSTYLE_0, STYLE_0, EXSTYLE_3 },
104 { __LINE__, 0, TYPE_1, STYLE_2, EXSTYLE_0, STYLE_1, EXSTYLE_0 },
105 { __LINE__, 0, TYPE_1, STYLE_2, EXSTYLE_0, STYLE_1, EXSTYLE_1 },
106 { __LINE__, 0, TYPE_1, STYLE_2, EXSTYLE_0, STYLE_1, EXSTYLE_2 },
107 { __LINE__, 0, TYPE_1, STYLE_2, EXSTYLE_0, STYLE_1, EXSTYLE_3 },
108 { __LINE__, 0, TYPE_1, STYLE_2, EXSTYLE_0, STYLE_2, EXSTYLE_0 },
109 { __LINE__, 0, TYPE_1, STYLE_2, EXSTYLE_0, STYLE_2, EXSTYLE_1 },
110 { __LINE__, 0, TYPE_1, STYLE_2, EXSTYLE_0, STYLE_2, EXSTYLE_2 },
111 { __LINE__, 0, TYPE_1, STYLE_2, EXSTYLE_0, STYLE_2, EXSTYLE_3 },
112 { __LINE__, 1, TYPE_1, STYLE_2, EXSTYLE_1, STYLE_0, EXSTYLE_0 },
113 { __LINE__, 1, TYPE_1, STYLE_2, EXSTYLE_1, STYLE_0, EXSTYLE_1 },
114 { __LINE__, 1, TYPE_1, STYLE_2, EXSTYLE_1, STYLE_0, EXSTYLE_2 },
115 { __LINE__, 1, TYPE_1, STYLE_2, EXSTYLE_1, STYLE_0, EXSTYLE_3 },
116 { __LINE__, 1, TYPE_1, STYLE_2, EXSTYLE_1, STYLE_1, EXSTYLE_0 },
117 { __LINE__, 1, TYPE_1, STYLE_2, EXSTYLE_1, STYLE_1, EXSTYLE_1 },
118 { __LINE__, 1, TYPE_1, STYLE_2, EXSTYLE_1, STYLE_1, EXSTYLE_2 },
119 { __LINE__, 1, TYPE_1, STYLE_2, EXSTYLE_1, STYLE_1, EXSTYLE_3 },
120 { __LINE__, 1, TYPE_1, STYLE_2, EXSTYLE_1, STYLE_2, EXSTYLE_0 },
121 { __LINE__, 1, TYPE_1, STYLE_2, EXSTYLE_1, STYLE_2, EXSTYLE_1 },
122 { __LINE__, 1, TYPE_1, STYLE_2, EXSTYLE_1, STYLE_2, EXSTYLE_2 },
123 { __LINE__, 1, TYPE_1, STYLE_2, EXSTYLE_1, STYLE_2, EXSTYLE_3 },
124 { __LINE__, 0, TYPE_1, STYLE_2, EXSTYLE_2, STYLE_0, EXSTYLE_0 },
125 { __LINE__, 0, TYPE_1, STYLE_2, EXSTYLE_2, STYLE_0, EXSTYLE_1 },
126 { __LINE__, 0, TYPE_1, STYLE_2, EXSTYLE_2, STYLE_0, EXSTYLE_2 },
127 { __LINE__, 0, TYPE_1, STYLE_2, EXSTYLE_2, STYLE_0, EXSTYLE_3 },
128 { __LINE__, 0, TYPE_1, STYLE_2, EXSTYLE_2, STYLE_1, EXSTYLE_0 },
129 { __LINE__, 0, TYPE_1, STYLE_2, EXSTYLE_2, STYLE_1, EXSTYLE_1 },
130 { __LINE__, 0, TYPE_1, STYLE_2, EXSTYLE_2, STYLE_1, EXSTYLE_2 },
131 { __LINE__, 0, TYPE_1, STYLE_2, EXSTYLE_2, STYLE_1, EXSTYLE_3 },
132 { __LINE__, 0, TYPE_1, STYLE_2, EXSTYLE_2, STYLE_2, EXSTYLE_0 },
133 { __LINE__, 0, TYPE_1, STYLE_2, EXSTYLE_2, STYLE_2, EXSTYLE_1 },
134 { __LINE__, 0, TYPE_1, STYLE_2, EXSTYLE_2, STYLE_2, EXSTYLE_2 },
135 { __LINE__, 0, TYPE_1, STYLE_2, EXSTYLE_2, STYLE_2, EXSTYLE_3 },
136 { __LINE__, 1, TYPE_1, STYLE_2, EXSTYLE_3, STYLE_0, EXSTYLE_0 },
137 { __LINE__, 1, TYPE_1, STYLE_2, EXSTYLE_3, STYLE_0, EXSTYLE_1 },
138 { __LINE__, 1, TYPE_1, STYLE_2, EXSTYLE_3, STYLE_0, EXSTYLE_2 },
139 { __LINE__, 1, TYPE_1, STYLE_2, EXSTYLE_3, STYLE_0, EXSTYLE_3 },
140 { __LINE__, 1, TYPE_1, STYLE_2, EXSTYLE_3, STYLE_1, EXSTYLE_0 },
141 { __LINE__, 1, TYPE_1, STYLE_2, EXSTYLE_3, STYLE_1, EXSTYLE_1 },
142 { __LINE__, 1, TYPE_1, STYLE_2, EXSTYLE_3, STYLE_1, EXSTYLE_2 },
143 { __LINE__, 1, TYPE_1, STYLE_2, EXSTYLE_3, STYLE_1, EXSTYLE_3 },
144 { __LINE__, 1, TYPE_1, STYLE_2, EXSTYLE_3, STYLE_2, EXSTYLE_0 },
145 { __LINE__, 1, TYPE_1, STYLE_2, EXSTYLE_3, STYLE_2, EXSTYLE_1 },
146 { __LINE__, 1, TYPE_1, STYLE_2, EXSTYLE_3, STYLE_2, EXSTYLE_2 },
147 { __LINE__, 1, TYPE_1, STYLE_2, EXSTYLE_3, STYLE_2, EXSTYLE_3 },
148
149 // TYPE_2
150 { __LINE__, 0, TYPE_2, STYLE_1, EXSTYLE_0, STYLE_0, EXSTYLE_0 },
151 { __LINE__, 0, TYPE_2, STYLE_1, EXSTYLE_0, STYLE_0, EXSTYLE_1 },
152 { __LINE__, 0, TYPE_2, STYLE_1, EXSTYLE_0, STYLE_0, EXSTYLE_2 },
153 { __LINE__, 0, TYPE_2, STYLE_1, EXSTYLE_0, STYLE_0, EXSTYLE_3 },
154 { __LINE__, 0, TYPE_2, STYLE_1, EXSTYLE_0, STYLE_1, EXSTYLE_0 },
155 { __LINE__, 0, TYPE_2, STYLE_1, EXSTYLE_0, STYLE_1, EXSTYLE_1 },
156 { __LINE__, 0, TYPE_2, STYLE_1, EXSTYLE_0, STYLE_1, EXSTYLE_2 },
157 { __LINE__, 0, TYPE_2, STYLE_1, EXSTYLE_0, STYLE_1, EXSTYLE_3 },
158 { __LINE__, 0, TYPE_2, STYLE_1, EXSTYLE_0, STYLE_2, EXSTYLE_0 },
159 { __LINE__, 0, TYPE_2, STYLE_1, EXSTYLE_0, STYLE_2, EXSTYLE_1 },
160 { __LINE__, 0, TYPE_2, STYLE_1, EXSTYLE_0, STYLE_2, EXSTYLE_2 },
161 { __LINE__, 0, TYPE_2, STYLE_1, EXSTYLE_0, STYLE_2, EXSTYLE_3 },
162 { __LINE__, 1, TYPE_2, STYLE_1, EXSTYLE_1, STYLE_0, EXSTYLE_0 },
163 { __LINE__, 1, TYPE_2, STYLE_1, EXSTYLE_1, STYLE_0, EXSTYLE_1 },
164 { __LINE__, 1, TYPE_2, STYLE_1, EXSTYLE_1, STYLE_0, EXSTYLE_2 },
165 { __LINE__, 1, TYPE_2, STYLE_1, EXSTYLE_1, STYLE_0, EXSTYLE_3 },
166 { __LINE__, 1, TYPE_2, STYLE_1, EXSTYLE_1, STYLE_1, EXSTYLE_0 },
167 { __LINE__, 1, TYPE_2, STYLE_1, EXSTYLE_1, STYLE_1, EXSTYLE_1 },
168 { __LINE__, 1, TYPE_2, STYLE_1, EXSTYLE_1, STYLE_1, EXSTYLE_2 },
169 { __LINE__, 1, TYPE_2, STYLE_1, EXSTYLE_1, STYLE_1, EXSTYLE_3 },
170 { __LINE__, 1, TYPE_2, STYLE_1, EXSTYLE_1, STYLE_2, EXSTYLE_0 },
171 { __LINE__, 1, TYPE_2, STYLE_1, EXSTYLE_1, STYLE_2, EXSTYLE_1 },
172 { __LINE__, 1, TYPE_2, STYLE_1, EXSTYLE_1, STYLE_2, EXSTYLE_2 },
173 { __LINE__, 1, TYPE_2, STYLE_1, EXSTYLE_1, STYLE_2, EXSTYLE_3 },
174 { __LINE__, 0, TYPE_2, STYLE_1, EXSTYLE_2, STYLE_0, EXSTYLE_0 },
175 { __LINE__, 0, TYPE_2, STYLE_1, EXSTYLE_2, STYLE_0, EXSTYLE_1 },
176 { __LINE__, 0, TYPE_2, STYLE_1, EXSTYLE_2, STYLE_0, EXSTYLE_2 },
177 { __LINE__, 0, TYPE_2, STYLE_1, EXSTYLE_2, STYLE_0, EXSTYLE_3 },
178 { __LINE__, 0, TYPE_2, STYLE_1, EXSTYLE_2, STYLE_1, EXSTYLE_0 },
179 { __LINE__, 0, TYPE_2, STYLE_1, EXSTYLE_2, STYLE_1, EXSTYLE_1 },
180 { __LINE__, 0, TYPE_2, STYLE_1, EXSTYLE_2, STYLE_1, EXSTYLE_2 },
181 { __LINE__, 0, TYPE_2, STYLE_1, EXSTYLE_2, STYLE_1, EXSTYLE_3 },
182 { __LINE__, 0, TYPE_2, STYLE_1, EXSTYLE_2, STYLE_2, EXSTYLE_0 },
183 { __LINE__, 0, TYPE_2, STYLE_1, EXSTYLE_2, STYLE_2, EXSTYLE_1 },
184 { __LINE__, 0, TYPE_2, STYLE_1, EXSTYLE_2, STYLE_2, EXSTYLE_2 },
185 { __LINE__, 0, TYPE_2, STYLE_1, EXSTYLE_2, STYLE_2, EXSTYLE_3 },
186 { __LINE__, 1, TYPE_2, STYLE_1, EXSTYLE_3, STYLE_0, EXSTYLE_0 },
187 { __LINE__, 1, TYPE_2, STYLE_1, EXSTYLE_3, STYLE_0, EXSTYLE_1 },
188 { __LINE__, 1, TYPE_2, STYLE_1, EXSTYLE_3, STYLE_0, EXSTYLE_2 },
189 { __LINE__, 1, TYPE_2, STYLE_1, EXSTYLE_3, STYLE_0, EXSTYLE_3 },
190 { __LINE__, 1, TYPE_2, STYLE_1, EXSTYLE_3, STYLE_1, EXSTYLE_0 },
191 { __LINE__, 1, TYPE_2, STYLE_1, EXSTYLE_3, STYLE_1, EXSTYLE_1 },
192 { __LINE__, 1, TYPE_2, STYLE_1, EXSTYLE_3, STYLE_1, EXSTYLE_2 },
193 { __LINE__, 1, TYPE_2, STYLE_1, EXSTYLE_3, STYLE_1, EXSTYLE_3 },
194 { __LINE__, 1, TYPE_2, STYLE_1, EXSTYLE_3, STYLE_2, EXSTYLE_0 },
195 { __LINE__, 1, TYPE_2, STYLE_1, EXSTYLE_3, STYLE_2, EXSTYLE_1 },
196 { __LINE__, 1, TYPE_2, STYLE_1, EXSTYLE_3, STYLE_2, EXSTYLE_2 },
197 { __LINE__, 1, TYPE_2, STYLE_1, EXSTYLE_3, STYLE_2, EXSTYLE_3 },
198 { __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_0, STYLE_0, EXSTYLE_0 },
199 { __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_0, STYLE_0, EXSTYLE_1 },
200 { __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_0, STYLE_0, EXSTYLE_2 },
201 { __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_0, STYLE_0, EXSTYLE_3 },
202 { __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_0, STYLE_1, EXSTYLE_0 },
203 { __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_0, STYLE_1, EXSTYLE_1 },
204 { __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_0, STYLE_1, EXSTYLE_2 },
205 { __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_0, STYLE_1, EXSTYLE_3 },
206 { __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_0, STYLE_2, EXSTYLE_0 },
207 { __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_0, STYLE_2, EXSTYLE_1 },
208 { __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_0, STYLE_2, EXSTYLE_2 },
209 { __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_0, STYLE_2, EXSTYLE_3 },
210 { __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_1, STYLE_0, EXSTYLE_0 },
211 { __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_1, STYLE_0, EXSTYLE_1 },
212 { __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_1, STYLE_0, EXSTYLE_2 },
213 { __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_1, STYLE_0, EXSTYLE_3 },
214 { __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_1, STYLE_1, EXSTYLE_0 },
215 { __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_1, STYLE_1, EXSTYLE_1 },
216 { __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_1, STYLE_1, EXSTYLE_2 },
217 { __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_1, STYLE_1, EXSTYLE_3 },
218 { __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_1, STYLE_2, EXSTYLE_0 },
219 { __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_1, STYLE_2, EXSTYLE_1 },
220 { __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_1, STYLE_2, EXSTYLE_2 },
221 { __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_1, STYLE_2, EXSTYLE_3 },
222 { __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_2, STYLE_0, EXSTYLE_0 },
223 { __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_2, STYLE_0, EXSTYLE_1 },
224 { __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_2, STYLE_0, EXSTYLE_2 },
225 { __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_2, STYLE_0, EXSTYLE_3 },
226 { __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_2, STYLE_1, EXSTYLE_0 },
227 { __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_2, STYLE_1, EXSTYLE_1 },
228 { __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_2, STYLE_1, EXSTYLE_2 },
229 { __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_2, STYLE_1, EXSTYLE_3 },
230 { __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_2, STYLE_2, EXSTYLE_0 },
231 { __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_2, STYLE_2, EXSTYLE_1 },
232 { __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_2, STYLE_2, EXSTYLE_2 },
233 { __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_2, STYLE_2, EXSTYLE_3 },
234 { __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_3, STYLE_0, EXSTYLE_0 },
235 { __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_3, STYLE_0, EXSTYLE_1 },
236 { __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_3, STYLE_0, EXSTYLE_2 },
237 { __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_3, STYLE_0, EXSTYLE_3 },
238 { __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_3, STYLE_1, EXSTYLE_0 },
239 { __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_3, STYLE_1, EXSTYLE_1 },
240 { __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_3, STYLE_1, EXSTYLE_2 },
241 { __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_3, STYLE_1, EXSTYLE_3 },
242 { __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_3, STYLE_2, EXSTYLE_0 },
243 { __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_3, STYLE_2, EXSTYLE_1 },
244 { __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_3, STYLE_2, EXSTYLE_2 },
245 { __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_3, STYLE_2, EXSTYLE_3 },
246};
247
248typedef struct RUDEAPP_TEST_ENTRY
249{
258
260{
261 /* STYLE_0 */
262 { __LINE__, 0, STYLE_0, EXSTYLE_0, FALSE, FALSE, FALSE },
263 { __LINE__, 0, STYLE_0, EXSTYLE_0, FALSE, FALSE, TRUE },
264 { __LINE__, 0, STYLE_0, EXSTYLE_0, FALSE, TRUE, FALSE },
265 { __LINE__, 0, STYLE_0, EXSTYLE_0, FALSE, TRUE, TRUE },
266 { __LINE__, 0, STYLE_0, EXSTYLE_0, TRUE, FALSE, FALSE },
267 { __LINE__, 0, STYLE_0, EXSTYLE_0, TRUE, FALSE, TRUE },
268 { __LINE__, 0, STYLE_0, EXSTYLE_0, TRUE, TRUE, FALSE },
269 { __LINE__, 0, STYLE_0, EXSTYLE_0, TRUE, TRUE, TRUE },
270
271 { __LINE__, 0, STYLE_0, EXSTYLE_1, FALSE, FALSE, FALSE },
272 { __LINE__, 0, STYLE_0, EXSTYLE_1, FALSE, FALSE, TRUE },
273 { __LINE__, 0, STYLE_0, EXSTYLE_1, FALSE, TRUE, FALSE },
274 { __LINE__, 0, STYLE_0, EXSTYLE_1, FALSE, TRUE, TRUE },
275 { __LINE__, 0, STYLE_0, EXSTYLE_1, TRUE, FALSE, FALSE },
276 { __LINE__, 0, STYLE_0, EXSTYLE_1, TRUE, FALSE, TRUE },
277 { __LINE__, 0, STYLE_0, EXSTYLE_1, TRUE, TRUE, FALSE },
278 { __LINE__, 0, STYLE_0, EXSTYLE_1, TRUE, TRUE, TRUE },
279
280 { __LINE__, 0, STYLE_0, EXSTYLE_2, FALSE, FALSE, FALSE },
281 { __LINE__, 0, STYLE_0, EXSTYLE_2, FALSE, FALSE, TRUE },
282 { __LINE__, 0, STYLE_0, EXSTYLE_2, FALSE, TRUE, FALSE },
283 { __LINE__, 0, STYLE_0, EXSTYLE_2, FALSE, TRUE, TRUE },
284 { __LINE__, 0, STYLE_0, EXSTYLE_2, TRUE, FALSE, FALSE },
285 { __LINE__, 0, STYLE_0, EXSTYLE_2, TRUE, FALSE, TRUE },
286 { __LINE__, 0, STYLE_0, EXSTYLE_2, TRUE, TRUE, FALSE },
287 { __LINE__, 0, STYLE_0, EXSTYLE_2, TRUE, TRUE, TRUE },
288
289 { __LINE__, 0, STYLE_0, EXSTYLE_3, FALSE, FALSE, FALSE },
290 { __LINE__, 0, STYLE_0, EXSTYLE_3, FALSE, FALSE, TRUE },
291 { __LINE__, 0, STYLE_0, EXSTYLE_3, FALSE, TRUE, FALSE },
292 { __LINE__, 0, STYLE_0, EXSTYLE_3, FALSE, TRUE, TRUE },
293 { __LINE__, 0, STYLE_0, EXSTYLE_3, TRUE, FALSE, FALSE },
294 { __LINE__, 0, STYLE_0, EXSTYLE_3, TRUE, FALSE, TRUE },
295 { __LINE__, 0, STYLE_0, EXSTYLE_3, TRUE, TRUE, FALSE },
296 { __LINE__, 0, STYLE_0, EXSTYLE_3, TRUE, TRUE, TRUE },
297
298 /* STYLE_1 */
299 { __LINE__, 0, STYLE_1, EXSTYLE_0, FALSE, FALSE, FALSE },
300 { __LINE__, 1, STYLE_1, EXSTYLE_0, FALSE, FALSE, TRUE },
301 { __LINE__, 1, STYLE_1, EXSTYLE_0, FALSE, TRUE, FALSE },
302 { __LINE__, 1, STYLE_1, EXSTYLE_0, FALSE, TRUE, TRUE },
303 { __LINE__, 0, STYLE_1, EXSTYLE_0, TRUE, FALSE, FALSE },
304 { __LINE__, 1, STYLE_1, EXSTYLE_0, TRUE, FALSE, TRUE },
305 { __LINE__, 1, STYLE_1, EXSTYLE_0, TRUE, TRUE, FALSE },
306 { __LINE__, 1, STYLE_1, EXSTYLE_0, TRUE, TRUE, TRUE },
307
308 { __LINE__, 0, STYLE_1, EXSTYLE_1, FALSE, FALSE, FALSE },
309 { __LINE__, 1, STYLE_1, EXSTYLE_1, FALSE, FALSE, TRUE },
310 { __LINE__, 1, STYLE_1, EXSTYLE_1, FALSE, TRUE, FALSE },
311 { __LINE__, 1, STYLE_1, EXSTYLE_1, FALSE, TRUE, TRUE },
312 { __LINE__, 0, STYLE_1, EXSTYLE_1, TRUE, FALSE, FALSE },
313 { __LINE__, 1, STYLE_1, EXSTYLE_1, TRUE, FALSE, TRUE },
314 { __LINE__, 1, STYLE_1, EXSTYLE_1, TRUE, TRUE, FALSE },
315 { __LINE__, 1, STYLE_1, EXSTYLE_1, TRUE, TRUE, TRUE },
316
317 { __LINE__, 0, STYLE_1, EXSTYLE_2, FALSE, FALSE, FALSE },
318 { __LINE__, 0, STYLE_1, EXSTYLE_2, FALSE, FALSE, TRUE },
319 { __LINE__, 0, STYLE_1, EXSTYLE_2, FALSE, TRUE, FALSE },
320 { __LINE__, 0, STYLE_1, EXSTYLE_2, FALSE, TRUE, TRUE },
321 { __LINE__, 0, STYLE_1, EXSTYLE_2, TRUE, FALSE, FALSE },
322 { __LINE__, 0, STYLE_1, EXSTYLE_2, TRUE, FALSE, TRUE },
323 { __LINE__, 0, STYLE_1, EXSTYLE_2, TRUE, TRUE, FALSE },
324 { __LINE__, 0, STYLE_1, EXSTYLE_2, TRUE, TRUE, TRUE },
325
326 { __LINE__, 0, STYLE_1, EXSTYLE_3, FALSE, FALSE, FALSE },
327 { __LINE__, 0, STYLE_1, EXSTYLE_3, FALSE, FALSE, TRUE },
328 { __LINE__, 0, STYLE_1, EXSTYLE_3, FALSE, TRUE, FALSE },
329 { __LINE__, 0, STYLE_1, EXSTYLE_3, FALSE, TRUE, TRUE },
330 { __LINE__, 0, STYLE_1, EXSTYLE_3, TRUE, FALSE, FALSE },
331 { __LINE__, 0, STYLE_1, EXSTYLE_3, TRUE, FALSE, TRUE },
332 { __LINE__, 0, STYLE_1, EXSTYLE_3, TRUE, TRUE, FALSE },
333 { __LINE__, 0, STYLE_1, EXSTYLE_3, TRUE, TRUE, TRUE },
334
335 /* STYLE_2 */
336 { __LINE__, 0, STYLE_2, EXSTYLE_0, FALSE, FALSE, FALSE },
337 { __LINE__, 1, STYLE_2, EXSTYLE_0, FALSE, FALSE, TRUE },
338 { __LINE__, 1, STYLE_2, EXSTYLE_0, FALSE, TRUE, FALSE },
339 { __LINE__, 1, STYLE_2, EXSTYLE_0, FALSE, TRUE, TRUE },
340 { __LINE__, 0, STYLE_2, EXSTYLE_0, TRUE, FALSE, FALSE },
341 { __LINE__, 1, STYLE_2, EXSTYLE_0, TRUE, FALSE, TRUE },
342 { __LINE__, 1, STYLE_2, EXSTYLE_0, TRUE, TRUE, FALSE },
343 { __LINE__, 1, STYLE_2, EXSTYLE_0, TRUE, TRUE, TRUE },
344
345 { __LINE__, 0, STYLE_2, EXSTYLE_1, FALSE, FALSE, FALSE },
346 { __LINE__, 1, STYLE_2, EXSTYLE_1, FALSE, FALSE, TRUE },
347 { __LINE__, 1, STYLE_2, EXSTYLE_1, FALSE, TRUE, FALSE },
348 { __LINE__, 1, STYLE_2, EXSTYLE_1, FALSE, TRUE, TRUE },
349 { __LINE__, 0, STYLE_2, EXSTYLE_1, TRUE, FALSE, FALSE },
350 { __LINE__, 1, STYLE_2, EXSTYLE_1, TRUE, FALSE, TRUE },
351 { __LINE__, 1, STYLE_2, EXSTYLE_1, TRUE, TRUE, FALSE },
352 { __LINE__, 1, STYLE_2, EXSTYLE_1, TRUE, TRUE, TRUE },
353
354 { __LINE__, 0, STYLE_2, EXSTYLE_2, FALSE, FALSE, FALSE },
355 { __LINE__, 0, STYLE_2, EXSTYLE_2, FALSE, FALSE, TRUE },
356 { __LINE__, 0, STYLE_2, EXSTYLE_2, FALSE, TRUE, FALSE },
357 { __LINE__, 0, STYLE_2, EXSTYLE_2, FALSE, TRUE, TRUE },
358 { __LINE__, 0, STYLE_2, EXSTYLE_2, TRUE, FALSE, FALSE },
359 { __LINE__, 0, STYLE_2, EXSTYLE_2, TRUE, FALSE, TRUE },
360 { __LINE__, 0, STYLE_2, EXSTYLE_2, TRUE, TRUE, FALSE },
361 { __LINE__, 0, STYLE_2, EXSTYLE_2, TRUE, TRUE, TRUE },
362
363 { __LINE__, 0, STYLE_2, EXSTYLE_3, FALSE, FALSE, FALSE },
364 { __LINE__, 0, STYLE_2, EXSTYLE_3, FALSE, FALSE, TRUE },
365 { __LINE__, 0, STYLE_2, EXSTYLE_3, FALSE, TRUE, FALSE },
366 { __LINE__, 0, STYLE_2, EXSTYLE_3, FALSE, TRUE, TRUE },
367 { __LINE__, 0, STYLE_2, EXSTYLE_3, TRUE, FALSE, FALSE },
368 { __LINE__, 0, STYLE_2, EXSTYLE_3, TRUE, FALSE, TRUE },
369 { __LINE__, 0, STYLE_2, EXSTYLE_3, TRUE, TRUE, FALSE },
370 { __LINE__, 0, STYLE_2, EXSTYLE_3, TRUE, TRUE, TRUE },
371};
372
379static WCHAR s_szName[] = L"ReactOS ShellHook testcase";
380
381static HWND
383{
384 INT x = CW_USEDEFAULT, y = CW_USEDEFAULT, cx = 100, cy = 100;
385 if (bFullscreen)
386 {
387 x = y = 0;
390 }
391 return CreateWindowExW(exstyle, s_szName, s_szName, style, x, y, cx, cy,
393}
394
396{
397 ok(!pEntry->bIsChild || pEntry->bHasOwner,
398 "Line %d: bIsChild && !bHasOwner\n", pEntry->lineno);
399
401 if (pEntry->bIsChild || pEntry->bHasOwner)
402 {
403 s_hwndParent = DoCreateWindow(NULL, pEntry->owner_style, pEntry->owner_exstyle);
404 }
405
406 DWORD style = pEntry->style;
407 DWORD exstyle = pEntry->exstyle;
408 if (pEntry->bIsChild)
409 style |= WS_CHILD;
410 else
411 style &= ~WS_CHILD;
412
415}
416
418{
420 "Line %d: s_nWindowCreatedCount expected %u but was %u\n",
421 pEntry->lineno, pEntry->nCount, s_nWindowCreatedCount);
422
425
426 if (pEntry->bIsChild || pEntry->bHasOwner)
427 {
430 }
431}
432
434{
436
437 DWORD style = pEntry->style;
438 DWORD exstyle = pEntry->exstyle;
439
441 s_hwndTarget = DoCreateWindow(s_hwndParent, style, exstyle, pEntry->bFullscreen);
442 if (pEntry->bSetForeground)
444 if (pEntry->bSetFullscreen)
445 {
448 }
449}
450
452{
453 ok(s_nRudeAppActivated == pEntry->nCount,
454 "Line %d: s_nRudeAppActivated expected %u but was %u\n",
455 pEntry->lineno, pEntry->nCount, s_nRudeAppActivated);
456
459}
460
461static LRESULT CALLBACK
463{
464 if (uMsg == s_uShellHookMsg && uMsg != 0)
465 {
466 switch (wParam)
467 {
469 if ((HWND)lParam != s_hwndTarget)
470 break;
472 break;
473
475 if ((HWND)lParam != s_hwndTarget)
476 break;
478 break;
479 }
480 }
481#define ID_IGNITION 1000
482#define ID_BURNING 2000
483#define ID_RUDEAPPTEST1 3000
484#define ID_RUDEAPPTEST2 4000
485 switch (uMsg)
486 {
487 case WM_CREATE:
489 return DefWindowProcW(hwnd, uMsg, wParam, lParam);
490 case WM_COMMAND:
491 if (hwnd != s_hwndHookViewer)
492 break;
493
495 {
499 }
500 else if (ID_BURNING <= wParam && wParam < ID_RUDEAPPTEST1)
501 {
504 ++i;
505 if (i == (INT)_countof(s_entries1))
506 {
508 break;
509 }
511 }
513 {
517 }
518 else if (ID_RUDEAPPTEST2 <= wParam)
519 {
522 ++i;
523 if (i == (INT)_countof(s_entries2))
524 {
526 break;
527 }
529 }
530 break;
531 default:
532 return DefWindowProcW(hwnd, uMsg, wParam, lParam);
533 }
534 return 0;
535}
536
537START_TEST(ShellHook)
538{
539 WNDCLASSW wc;
540
541 ZeroMemory(&wc, sizeof(wc));
546 wc.hbrBackground = (HBRUSH)(COLOR_3DFACE + 1);
548 if (!RegisterClassW(&wc))
549 {
550 skip("RegisterClassW failed\n");
551 return;
552 }
553
555 if (s_hwndHookViewer == NULL)
556 {
557 skip("CreateWindowExW failed\n");
558 return;
559 }
560
563
564 MSG msg;
565 while (GetMessageW(&msg, NULL, 0, 0))
566 {
569 }
570
574}
static UINT s_nRudeAppActivated
Definition: ShellHook.cpp:378
#define ID_BURNING
static void DoTestEntryPart2(const TEST_ENTRY *pEntry)
Definition: ShellHook.cpp:417
static void DoTestEntryPart1(const TEST_ENTRY *pEntry)
Definition: ShellHook.cpp:395
#define ID_RUDEAPPTEST2
static WCHAR s_szName[]
Definition: ShellHook.cpp:379
static UINT s_nWindowCreatedCount
Definition: ShellHook.cpp:377
static void DoRudeAppTest1(const RUDEAPP_TEST_ENTRY *pEntry)
Definition: ShellHook.cpp:433
#define ID_IGNITION
#define TYPE_0
Definition: ShellHook.cpp:31
static HWND s_hwndParent
Definition: ShellHook.cpp:375
#define EXSTYLE_0
Definition: ShellHook.cpp:26
static LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: ShellHook.cpp:462
#define TYPE_2
Definition: ShellHook.cpp:33
#define EXSTYLE_1
Definition: ShellHook.cpp:27
static const TEST_ENTRY s_entries1[]
Definition: ShellHook.cpp:35
static HWND DoCreateWindow(HWND hwndParent, DWORD style, DWORD exstyle, BOOL bFullscreen=FALSE)
Definition: ShellHook.cpp:382
static const RUDEAPP_TEST_ENTRY s_entries2[]
Definition: ShellHook.cpp:259
#define STYLE_0
Definition: ShellHook.cpp:22
#define STYLE_1
Definition: ShellHook.cpp:23
#define ID_RUDEAPPTEST1
static HWND s_hwndTarget
Definition: ShellHook.cpp:376
#define STYLE_2
Definition: ShellHook.cpp:24
#define EXSTYLE_2
Definition: ShellHook.cpp:28
static void DoRudeAppTest2(const RUDEAPP_TEST_ENTRY *pEntry)
Definition: ShellHook.cpp:451
#define TYPE_1
Definition: ShellHook.cpp:32
static UINT s_uShellHookMsg
Definition: ShellHook.cpp:373
#define EXSTYLE_3
Definition: ShellHook.cpp:29
static HWND s_hwndHookViewer
Definition: ShellHook.cpp:374
Arabic default style
Definition: afstyles.h:94
#define ok(value,...)
Definition: atltest.h:57
#define skip(...)
Definition: atltest.h:64
#define START_TEST(x)
Definition: atltest.h:75
#define msg(x)
Definition: auth_time.c:54
WPARAM wParam
Definition: combotst.c:138
LPARAM lParam
Definition: combotst.c:139
static HWND hwndParent
Definition: cryptui.c:300
#define NULL
Definition: types.h:112
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
#define CALLBACK
Definition: compat.h:35
HMODULE WINAPI GetModuleHandleW(LPCWSTR lpModuleName)
Definition: loader.c:838
unsigned int BOOL
Definition: ntddk_ex.h:94
unsigned long DWORD
Definition: ntddk_ex.h:95
PLIST_ENTRY pEntry
Definition: fxioqueue.cpp:4484
GLint GLint GLint GLint GLint x
Definition: gl.h:1548
GLint GLint GLint GLint GLint GLint y
Definition: gl.h:1548
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
unsigned int UINT
Definition: ndis.h:50
#define L(x)
Definition: ntvdm.h:50
#define WS_CHILD
Definition: pedump.c:617
#define WS_OVERLAPPEDWINDOW
Definition: pedump.c:637
#define WS_VISIBLE
Definition: pedump.c:620
#define INT
Definition: polytest.cpp:20
_Out_opt_ int _Out_opt_ int * cy
Definition: commctrl.h:586
_Out_opt_ int * cx
Definition: commctrl.h:585
#define _countof(array)
Definition: sndvol32.h:68
Definition: ShellHook.cpp:249
INT lineno
Definition: ShellHook.cpp:250
BOOL bFullscreen
Definition: ShellHook.cpp:255
UINT nCount
Definition: ShellHook.cpp:251
DWORD style
Definition: ShellHook.cpp:252
DWORD exstyle
Definition: ShellHook.cpp:253
BOOL bSetFullscreen
Definition: ShellHook.cpp:256
BOOL bSetForeground
Definition: ShellHook.cpp:254
Definition: cmd.c:13
BOOL bHasOwner
Definition: ShellHook.cpp:15
INT lineno
Definition: fc.c:16
DWORD exstyle
Definition: ShellHook.cpp:17
DWORD style
Definition: ShellHook.cpp:16
BOOL bIsChild
Definition: ShellHook.cpp:14
DWORD owner_exstyle
Definition: ShellHook.cpp:19
DWORD owner_style
Definition: ShellHook.cpp:18
UINT nCount
Definition: ShellHook.cpp:13
LPCWSTR lpszClassName
Definition: winuser.h:3175
HBRUSH hbrBackground
Definition: winuser.h:3173
HICON hIcon
Definition: winuser.h:3171
HINSTANCE hInstance
Definition: winuser.h:3170
WNDPROC lpfnWndProc
Definition: winuser.h:3167
HCURSOR hCursor
Definition: winuser.h:3172
TW_UINT32 TW_UINT16 TW_UINT16 MSG
Definition: twain.h:1829
int32_t INT
Definition: typedefs.h:58
#define ZeroMemory
Definition: winbase.h:1700
_In_ LONG _In_ HWND hwnd
Definition: winddi.h:4023
LONG_PTR LPARAM
Definition: windef.h:208
LONG_PTR LRESULT
Definition: windef.h:209
UINT_PTR WPARAM
Definition: windef.h:207
BOOL WINAPI DeregisterShellHookWindow(_In_ HWND)
#define HSHELL_RUDEAPPACTIVATED
Definition: winuser.h:1271
#define WM_CLOSE
Definition: winuser.h:1611
BOOL WINAPI TranslateMessage(_In_ const MSG *)
#define SM_CYSCREEN
Definition: winuser.h:954
LRESULT WINAPI DefWindowProcW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
BOOL WINAPI GetMessageW(_Out_ LPMSG, _In_opt_ HWND, _In_ UINT, _In_ UINT)
BOOL WINAPI PostMessageW(_In_opt_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
#define WM_CREATE
Definition: winuser.h:1598
#define HSHELL_WINDOWCREATED
Definition: winuser.h:1245
__analysis_noreturn void WINAPI PostQuitMessage(_In_ int)
BOOL WINAPI RegisterShellHookWindow(_In_ HWND)
#define WM_COMMAND
Definition: winuser.h:1730
ATOM WINAPI RegisterClassW(_In_ CONST WNDCLASSW *)
BOOL WINAPI SetForegroundWindow(_In_ HWND)
#define IDC_ARROW
Definition: winuser.h:682
#define IDI_APPLICATION
Definition: winuser.h:699
HWND WINAPI CreateWindowExW(_In_ DWORD dwExStyle, _In_opt_ LPCWSTR lpClassName, _In_opt_ LPCWSTR lpWindowName, _In_ DWORD dwStyle, _In_ int X, _In_ int Y, _In_ int nWidth, _In_ int nHeight, _In_opt_ HWND hWndParent, _In_opt_ HMENU hMenu, _In_opt_ HINSTANCE hInstance, _In_opt_ LPVOID lpParam)
#define LoadIcon
Definition: winuser.h:5803
UINT WINAPI RegisterWindowMessageW(_In_ LPCWSTR)
#define LoadCursor
Definition: winuser.h:5802
#define CW_USEDEFAULT
Definition: winuser.h:225
LRESULT WINAPI DispatchMessageW(_In_ const MSG *)
#define SM_CXSCREEN
Definition: winuser.h:953
BOOL WINAPI DestroyWindow(_In_ HWND)
int WINAPI GetSystemMetrics(_In_ int)
BOOL WINAPI MoveWindow(_In_ HWND, _In_ int, _In_ int, _In_ int, _In_ int, _In_ BOOL)
#define COLOR_3DFACE
Definition: winuser.h:923
__wchar_t WCHAR
Definition: xmlstorage.h:180