mirror of
https://github.com/reactos/reactos.git
synced 2024-06-24 06:51:47 +00:00
[SHELL32_APITEST] Improve ShellHook testcase (#6582)
Make shell32:ShellHook testcase stable and trustworthy. JIRA issue: ROSTESTS-389 - Use real shell hook. - Delete HSHELL_RUDEAPPACTIVATED tests. - Add HSHELL_WINDOWDESTROYED tests.
This commit is contained in:
parent
0709dff84c
commit
b383b70089
|
@ -2,15 +2,15 @@
|
||||||
* PROJECT: ReactOS api tests
|
* PROJECT: ReactOS api tests
|
||||||
* LICENSE: LGPL-2.0-or-later (https://spdx.org/licenses/LGPL-2.0-or-later)
|
* LICENSE: LGPL-2.0-or-later (https://spdx.org/licenses/LGPL-2.0-or-later)
|
||||||
* PURPOSE: Test for Shell Hook
|
* PURPOSE: Test for Shell Hook
|
||||||
* COPYRIGHT: Copyright 2020-2021 Katayama Hirofumi MZ (katayama.hirofumi.mz@gmail.com)
|
* COPYRIGHT: Copyright 2020-2024 Katayama Hirofumi MZ (katayama.hirofumi.mz@gmail.com)
|
||||||
*/
|
*/
|
||||||
#include "shelltest.h"
|
#include "shelltest.h"
|
||||||
#include "undocshell.h"
|
|
||||||
|
|
||||||
struct TEST_ENTRY
|
struct TEST_ENTRY
|
||||||
{
|
{
|
||||||
INT lineno;
|
INT lineno;
|
||||||
UINT nCount;
|
UINT cCreated;
|
||||||
|
UINT cDestroyed;
|
||||||
BOOL bIsChild;
|
BOOL bIsChild;
|
||||||
BOOL bHasOwner;
|
BOOL bHasOwner;
|
||||||
DWORD style;
|
DWORD style;
|
||||||
|
@ -35,353 +35,228 @@ struct TEST_ENTRY
|
||||||
static const TEST_ENTRY s_entries1[] =
|
static const TEST_ENTRY s_entries1[] =
|
||||||
{
|
{
|
||||||
// TYPE_0
|
// TYPE_0
|
||||||
{ __LINE__, 0, TYPE_0, STYLE_0, EXSTYLE_0 },
|
{ __LINE__, 0, 0, TYPE_0, STYLE_0, EXSTYLE_0 },
|
||||||
{ __LINE__, 0, TYPE_0, STYLE_0, EXSTYLE_1 },
|
{ __LINE__, 0, 0, TYPE_0, STYLE_0, EXSTYLE_1 },
|
||||||
{ __LINE__, 0, TYPE_0, STYLE_0, EXSTYLE_2 },
|
{ __LINE__, 0, 0, TYPE_0, STYLE_0, EXSTYLE_2 },
|
||||||
{ __LINE__, 0, TYPE_0, STYLE_0, EXSTYLE_3 },
|
{ __LINE__, 0, 0, TYPE_0, STYLE_0, EXSTYLE_3 },
|
||||||
{ __LINE__, 1, TYPE_0, STYLE_1, EXSTYLE_0 },
|
{ __LINE__, 1, 1, TYPE_0, STYLE_1, EXSTYLE_0 },
|
||||||
{ __LINE__, 1, TYPE_0, STYLE_1, EXSTYLE_1 },
|
{ __LINE__, 1, 1, TYPE_0, STYLE_1, EXSTYLE_1 },
|
||||||
{ __LINE__, 0, TYPE_0, STYLE_1, EXSTYLE_2 },
|
{ __LINE__, 0, 0, TYPE_0, STYLE_1, EXSTYLE_2 },
|
||||||
{ __LINE__, 1, TYPE_0, STYLE_1, EXSTYLE_3 },
|
{ __LINE__, 1, 1, TYPE_0, STYLE_1, EXSTYLE_3 },
|
||||||
{ __LINE__, 1, TYPE_0, STYLE_2, EXSTYLE_0 },
|
{ __LINE__, 1, 1, TYPE_0, STYLE_2, EXSTYLE_0 },
|
||||||
{ __LINE__, 1, TYPE_0, STYLE_2, EXSTYLE_1 },
|
{ __LINE__, 1, 1, TYPE_0, STYLE_2, EXSTYLE_1 },
|
||||||
{ __LINE__, 0, TYPE_0, STYLE_2, EXSTYLE_2 },
|
{ __LINE__, 0, 0, TYPE_0, STYLE_2, EXSTYLE_2 },
|
||||||
{ __LINE__, 1, TYPE_0, STYLE_2, EXSTYLE_3 },
|
{ __LINE__, 1, 1, TYPE_0, STYLE_2, EXSTYLE_3 },
|
||||||
|
|
||||||
// TYPE_1
|
// TYPE_1
|
||||||
{ __LINE__, 0, TYPE_1, STYLE_1, EXSTYLE_0, STYLE_0, EXSTYLE_0 },
|
{ __LINE__, 0, 0, TYPE_1, STYLE_1, EXSTYLE_0, STYLE_0, EXSTYLE_0 },
|
||||||
{ __LINE__, 0, TYPE_1, STYLE_1, EXSTYLE_0, STYLE_0, EXSTYLE_1 },
|
{ __LINE__, 0, 0, TYPE_1, STYLE_1, EXSTYLE_0, STYLE_0, EXSTYLE_1 },
|
||||||
{ __LINE__, 0, TYPE_1, STYLE_1, EXSTYLE_0, STYLE_0, EXSTYLE_2 },
|
{ __LINE__, 0, 0, TYPE_1, STYLE_1, EXSTYLE_0, STYLE_0, EXSTYLE_2 },
|
||||||
{ __LINE__, 0, TYPE_1, STYLE_1, EXSTYLE_0, STYLE_0, EXSTYLE_3 },
|
{ __LINE__, 0, 0, TYPE_1, STYLE_1, EXSTYLE_0, STYLE_0, EXSTYLE_3 },
|
||||||
{ __LINE__, 0, TYPE_1, STYLE_1, EXSTYLE_0, STYLE_1, EXSTYLE_0 },
|
{ __LINE__, 0, 1, TYPE_1, STYLE_1, EXSTYLE_0, STYLE_1, EXSTYLE_0 },
|
||||||
{ __LINE__, 0, TYPE_1, STYLE_1, EXSTYLE_0, STYLE_1, EXSTYLE_1 },
|
{ __LINE__, 0, 1, TYPE_1, STYLE_1, EXSTYLE_0, STYLE_1, EXSTYLE_1 },
|
||||||
{ __LINE__, 0, TYPE_1, STYLE_1, EXSTYLE_0, STYLE_1, EXSTYLE_2 },
|
{ __LINE__, 0, 0, TYPE_1, STYLE_1, EXSTYLE_0, STYLE_1, EXSTYLE_2 },
|
||||||
{ __LINE__, 0, TYPE_1, STYLE_1, EXSTYLE_0, STYLE_1, EXSTYLE_3 },
|
{ __LINE__, 0, 1, TYPE_1, STYLE_1, EXSTYLE_0, STYLE_1, EXSTYLE_3 },
|
||||||
{ __LINE__, 0, TYPE_1, STYLE_1, EXSTYLE_0, STYLE_2, EXSTYLE_0 },
|
{ __LINE__, 0, 1, TYPE_1, STYLE_1, EXSTYLE_0, STYLE_2, EXSTYLE_0 },
|
||||||
{ __LINE__, 0, TYPE_1, STYLE_1, EXSTYLE_0, STYLE_2, EXSTYLE_1 },
|
{ __LINE__, 0, 1, TYPE_1, STYLE_1, EXSTYLE_0, STYLE_2, EXSTYLE_1 },
|
||||||
{ __LINE__, 0, TYPE_1, STYLE_1, EXSTYLE_0, STYLE_2, EXSTYLE_2 },
|
{ __LINE__, 0, 0, TYPE_1, STYLE_1, EXSTYLE_0, STYLE_2, EXSTYLE_2 },
|
||||||
{ __LINE__, 0, TYPE_1, STYLE_1, EXSTYLE_0, STYLE_2, EXSTYLE_3 },
|
{ __LINE__, 0, 1, TYPE_1, STYLE_1, EXSTYLE_0, STYLE_2, EXSTYLE_3 },
|
||||||
{ __LINE__, 1, TYPE_1, STYLE_1, EXSTYLE_1, STYLE_0, EXSTYLE_0 },
|
{ __LINE__, 1, 1, TYPE_1, STYLE_1, EXSTYLE_1, STYLE_0, EXSTYLE_0 },
|
||||||
{ __LINE__, 1, TYPE_1, STYLE_1, EXSTYLE_1, STYLE_0, EXSTYLE_1 },
|
{ __LINE__, 1, 1, TYPE_1, STYLE_1, EXSTYLE_1, STYLE_0, EXSTYLE_1 },
|
||||||
{ __LINE__, 1, TYPE_1, STYLE_1, EXSTYLE_1, STYLE_0, EXSTYLE_2 },
|
{ __LINE__, 1, 1, TYPE_1, STYLE_1, EXSTYLE_1, STYLE_0, EXSTYLE_2 },
|
||||||
{ __LINE__, 1, TYPE_1, STYLE_1, EXSTYLE_1, STYLE_0, EXSTYLE_3 },
|
{ __LINE__, 1, 1, TYPE_1, STYLE_1, EXSTYLE_1, STYLE_0, EXSTYLE_3 },
|
||||||
{ __LINE__, 1, TYPE_1, STYLE_1, EXSTYLE_1, STYLE_1, EXSTYLE_0 },
|
{ __LINE__, 1, 2, TYPE_1, STYLE_1, EXSTYLE_1, STYLE_1, EXSTYLE_0 },
|
||||||
{ __LINE__, 1, TYPE_1, STYLE_1, EXSTYLE_1, STYLE_1, EXSTYLE_1 },
|
{ __LINE__, 1, 2, TYPE_1, STYLE_1, EXSTYLE_1, STYLE_1, EXSTYLE_1 },
|
||||||
{ __LINE__, 1, TYPE_1, STYLE_1, EXSTYLE_1, STYLE_1, EXSTYLE_2 },
|
{ __LINE__, 1, 1, TYPE_1, STYLE_1, EXSTYLE_1, STYLE_1, EXSTYLE_2 },
|
||||||
{ __LINE__, 1, TYPE_1, STYLE_1, EXSTYLE_1, STYLE_1, EXSTYLE_3 },
|
{ __LINE__, 1, 2, TYPE_1, STYLE_1, EXSTYLE_1, STYLE_1, EXSTYLE_3 },
|
||||||
{ __LINE__, 1, TYPE_1, STYLE_1, EXSTYLE_1, STYLE_2, EXSTYLE_0 },
|
{ __LINE__, 1, 2, TYPE_1, STYLE_1, EXSTYLE_1, STYLE_2, EXSTYLE_0 },
|
||||||
{ __LINE__, 1, TYPE_1, STYLE_1, EXSTYLE_1, STYLE_2, EXSTYLE_1 },
|
{ __LINE__, 1, 2, TYPE_1, STYLE_1, EXSTYLE_1, STYLE_2, EXSTYLE_1 },
|
||||||
{ __LINE__, 1, TYPE_1, STYLE_1, EXSTYLE_1, STYLE_2, EXSTYLE_2 },
|
{ __LINE__, 1, 1, TYPE_1, STYLE_1, EXSTYLE_1, STYLE_2, EXSTYLE_2 },
|
||||||
{ __LINE__, 1, TYPE_1, STYLE_1, EXSTYLE_1, STYLE_2, EXSTYLE_3 },
|
{ __LINE__, 1, 2, TYPE_1, STYLE_1, EXSTYLE_1, STYLE_2, EXSTYLE_3 },
|
||||||
{ __LINE__, 0, TYPE_1, STYLE_1, EXSTYLE_2, STYLE_0, EXSTYLE_0 },
|
{ __LINE__, 0, 0, TYPE_1, STYLE_1, EXSTYLE_2, STYLE_0, EXSTYLE_0 },
|
||||||
{ __LINE__, 0, TYPE_1, STYLE_1, EXSTYLE_2, STYLE_0, EXSTYLE_1 },
|
{ __LINE__, 0, 0, TYPE_1, STYLE_1, EXSTYLE_2, STYLE_0, EXSTYLE_1 },
|
||||||
{ __LINE__, 0, TYPE_1, STYLE_1, EXSTYLE_2, STYLE_0, EXSTYLE_2 },
|
{ __LINE__, 0, 0, TYPE_1, STYLE_1, EXSTYLE_2, STYLE_0, EXSTYLE_2 },
|
||||||
{ __LINE__, 0, TYPE_1, STYLE_1, EXSTYLE_2, STYLE_0, EXSTYLE_3 },
|
{ __LINE__, 0, 0, TYPE_1, STYLE_1, EXSTYLE_2, STYLE_0, EXSTYLE_3 },
|
||||||
{ __LINE__, 0, TYPE_1, STYLE_1, EXSTYLE_2, STYLE_1, EXSTYLE_0 },
|
{ __LINE__, 0, 1, TYPE_1, STYLE_1, EXSTYLE_2, STYLE_1, EXSTYLE_0 },
|
||||||
{ __LINE__, 0, TYPE_1, STYLE_1, EXSTYLE_2, STYLE_1, EXSTYLE_1 },
|
{ __LINE__, 0, 1, TYPE_1, STYLE_1, EXSTYLE_2, STYLE_1, EXSTYLE_1 },
|
||||||
{ __LINE__, 0, TYPE_1, STYLE_1, EXSTYLE_2, STYLE_1, EXSTYLE_2 },
|
{ __LINE__, 0, 0, TYPE_1, STYLE_1, EXSTYLE_2, STYLE_1, EXSTYLE_2 },
|
||||||
{ __LINE__, 0, TYPE_1, STYLE_1, EXSTYLE_2, STYLE_1, EXSTYLE_3 },
|
{ __LINE__, 0, 1, TYPE_1, STYLE_1, EXSTYLE_2, STYLE_1, EXSTYLE_3 },
|
||||||
{ __LINE__, 0, TYPE_1, STYLE_1, EXSTYLE_2, STYLE_2, EXSTYLE_0 },
|
{ __LINE__, 0, 1, TYPE_1, STYLE_1, EXSTYLE_2, STYLE_2, EXSTYLE_0 },
|
||||||
{ __LINE__, 0, TYPE_1, STYLE_1, EXSTYLE_2, STYLE_2, EXSTYLE_1 },
|
{ __LINE__, 0, 1, TYPE_1, STYLE_1, EXSTYLE_2, STYLE_2, EXSTYLE_1 },
|
||||||
{ __LINE__, 0, TYPE_1, STYLE_1, EXSTYLE_2, STYLE_2, EXSTYLE_2 },
|
{ __LINE__, 0, 0, TYPE_1, STYLE_1, EXSTYLE_2, STYLE_2, EXSTYLE_2 },
|
||||||
{ __LINE__, 0, TYPE_1, STYLE_1, EXSTYLE_2, STYLE_2, EXSTYLE_3 },
|
{ __LINE__, 0, 1, TYPE_1, STYLE_1, EXSTYLE_2, STYLE_2, EXSTYLE_3 },
|
||||||
{ __LINE__, 1, TYPE_1, STYLE_1, EXSTYLE_3, STYLE_0, EXSTYLE_0 },
|
{ __LINE__, 1, 1, TYPE_1, STYLE_1, EXSTYLE_3, STYLE_0, EXSTYLE_0 },
|
||||||
{ __LINE__, 1, TYPE_1, STYLE_1, EXSTYLE_3, STYLE_0, EXSTYLE_1 },
|
{ __LINE__, 1, 1, TYPE_1, STYLE_1, EXSTYLE_3, STYLE_0, EXSTYLE_1 },
|
||||||
{ __LINE__, 1, TYPE_1, STYLE_1, EXSTYLE_3, STYLE_0, EXSTYLE_2 },
|
{ __LINE__, 1, 1, TYPE_1, STYLE_1, EXSTYLE_3, STYLE_0, EXSTYLE_2 },
|
||||||
{ __LINE__, 1, TYPE_1, STYLE_1, EXSTYLE_3, STYLE_0, EXSTYLE_3 },
|
{ __LINE__, 1, 1, TYPE_1, STYLE_1, EXSTYLE_3, STYLE_0, EXSTYLE_3 },
|
||||||
{ __LINE__, 1, TYPE_1, STYLE_1, EXSTYLE_3, STYLE_1, EXSTYLE_0 },
|
{ __LINE__, 1, 2, TYPE_1, STYLE_1, EXSTYLE_3, STYLE_1, EXSTYLE_0 },
|
||||||
{ __LINE__, 1, TYPE_1, STYLE_1, EXSTYLE_3, STYLE_1, EXSTYLE_1 },
|
{ __LINE__, 1, 2, TYPE_1, STYLE_1, EXSTYLE_3, STYLE_1, EXSTYLE_1 },
|
||||||
{ __LINE__, 1, TYPE_1, STYLE_1, EXSTYLE_3, STYLE_1, EXSTYLE_2 },
|
{ __LINE__, 1, 1, TYPE_1, STYLE_1, EXSTYLE_3, STYLE_1, EXSTYLE_2 },
|
||||||
{ __LINE__, 1, TYPE_1, STYLE_1, EXSTYLE_3, STYLE_1, EXSTYLE_3 },
|
{ __LINE__, 1, 2, TYPE_1, STYLE_1, EXSTYLE_3, STYLE_1, EXSTYLE_3 },
|
||||||
{ __LINE__, 1, TYPE_1, STYLE_1, EXSTYLE_3, STYLE_2, EXSTYLE_0 },
|
{ __LINE__, 1, 2, TYPE_1, STYLE_1, EXSTYLE_3, STYLE_2, EXSTYLE_0 },
|
||||||
{ __LINE__, 1, TYPE_1, STYLE_1, EXSTYLE_3, STYLE_2, EXSTYLE_1 },
|
{ __LINE__, 1, 2, TYPE_1, STYLE_1, EXSTYLE_3, STYLE_2, EXSTYLE_1 },
|
||||||
{ __LINE__, 1, TYPE_1, STYLE_1, EXSTYLE_3, STYLE_2, EXSTYLE_2 },
|
{ __LINE__, 1, 1, TYPE_1, STYLE_1, EXSTYLE_3, STYLE_2, EXSTYLE_2 },
|
||||||
{ __LINE__, 1, TYPE_1, STYLE_1, EXSTYLE_3, STYLE_2, EXSTYLE_3 },
|
{ __LINE__, 1, 2, TYPE_1, STYLE_1, EXSTYLE_3, STYLE_2, EXSTYLE_3 },
|
||||||
{ __LINE__, 0, TYPE_1, STYLE_2, EXSTYLE_0, STYLE_0, EXSTYLE_0 },
|
{ __LINE__, 0, 0, TYPE_1, STYLE_2, EXSTYLE_0, STYLE_0, EXSTYLE_0 },
|
||||||
{ __LINE__, 0, TYPE_1, STYLE_2, EXSTYLE_0, STYLE_0, EXSTYLE_1 },
|
{ __LINE__, 0, 0, TYPE_1, STYLE_2, EXSTYLE_0, STYLE_0, EXSTYLE_1 },
|
||||||
{ __LINE__, 0, TYPE_1, STYLE_2, EXSTYLE_0, STYLE_0, EXSTYLE_2 },
|
{ __LINE__, 0, 0, TYPE_1, STYLE_2, EXSTYLE_0, STYLE_0, EXSTYLE_2 },
|
||||||
{ __LINE__, 0, TYPE_1, STYLE_2, EXSTYLE_0, STYLE_0, EXSTYLE_3 },
|
{ __LINE__, 0, 0, TYPE_1, STYLE_2, EXSTYLE_0, STYLE_0, EXSTYLE_3 },
|
||||||
{ __LINE__, 0, TYPE_1, STYLE_2, EXSTYLE_0, STYLE_1, EXSTYLE_0 },
|
{ __LINE__, 0, 1, TYPE_1, STYLE_2, EXSTYLE_0, STYLE_1, EXSTYLE_0 },
|
||||||
{ __LINE__, 0, TYPE_1, STYLE_2, EXSTYLE_0, STYLE_1, EXSTYLE_1 },
|
{ __LINE__, 0, 1, TYPE_1, STYLE_2, EXSTYLE_0, STYLE_1, EXSTYLE_1 },
|
||||||
{ __LINE__, 0, TYPE_1, STYLE_2, EXSTYLE_0, STYLE_1, EXSTYLE_2 },
|
{ __LINE__, 0, 0, TYPE_1, STYLE_2, EXSTYLE_0, STYLE_1, EXSTYLE_2 },
|
||||||
{ __LINE__, 0, TYPE_1, STYLE_2, EXSTYLE_0, STYLE_1, EXSTYLE_3 },
|
{ __LINE__, 0, 1, TYPE_1, STYLE_2, EXSTYLE_0, STYLE_1, EXSTYLE_3 },
|
||||||
{ __LINE__, 0, TYPE_1, STYLE_2, EXSTYLE_0, STYLE_2, EXSTYLE_0 },
|
{ __LINE__, 0, 1, TYPE_1, STYLE_2, EXSTYLE_0, STYLE_2, EXSTYLE_0 },
|
||||||
{ __LINE__, 0, TYPE_1, STYLE_2, EXSTYLE_0, STYLE_2, EXSTYLE_1 },
|
{ __LINE__, 0, 1, TYPE_1, STYLE_2, EXSTYLE_0, STYLE_2, EXSTYLE_1 },
|
||||||
{ __LINE__, 0, TYPE_1, STYLE_2, EXSTYLE_0, STYLE_2, EXSTYLE_2 },
|
{ __LINE__, 0, 0, TYPE_1, STYLE_2, EXSTYLE_0, STYLE_2, EXSTYLE_2 },
|
||||||
{ __LINE__, 0, TYPE_1, STYLE_2, EXSTYLE_0, STYLE_2, EXSTYLE_3 },
|
{ __LINE__, 0, 1, TYPE_1, STYLE_2, EXSTYLE_0, STYLE_2, EXSTYLE_3 },
|
||||||
{ __LINE__, 1, TYPE_1, STYLE_2, EXSTYLE_1, STYLE_0, EXSTYLE_0 },
|
{ __LINE__, 1, 1, TYPE_1, STYLE_2, EXSTYLE_1, STYLE_0, EXSTYLE_0 },
|
||||||
{ __LINE__, 1, TYPE_1, STYLE_2, EXSTYLE_1, STYLE_0, EXSTYLE_1 },
|
{ __LINE__, 1, 1, TYPE_1, STYLE_2, EXSTYLE_1, STYLE_0, EXSTYLE_1 },
|
||||||
{ __LINE__, 1, TYPE_1, STYLE_2, EXSTYLE_1, STYLE_0, EXSTYLE_2 },
|
{ __LINE__, 1, 1, TYPE_1, STYLE_2, EXSTYLE_1, STYLE_0, EXSTYLE_2 },
|
||||||
{ __LINE__, 1, TYPE_1, STYLE_2, EXSTYLE_1, STYLE_0, EXSTYLE_3 },
|
{ __LINE__, 1, 1, TYPE_1, STYLE_2, EXSTYLE_1, STYLE_0, EXSTYLE_3 },
|
||||||
{ __LINE__, 1, TYPE_1, STYLE_2, EXSTYLE_1, STYLE_1, EXSTYLE_0 },
|
{ __LINE__, 1, 2, TYPE_1, STYLE_2, EXSTYLE_1, STYLE_1, EXSTYLE_0 },
|
||||||
{ __LINE__, 1, TYPE_1, STYLE_2, EXSTYLE_1, STYLE_1, EXSTYLE_1 },
|
{ __LINE__, 1, 2, TYPE_1, STYLE_2, EXSTYLE_1, STYLE_1, EXSTYLE_1 },
|
||||||
{ __LINE__, 1, TYPE_1, STYLE_2, EXSTYLE_1, STYLE_1, EXSTYLE_2 },
|
{ __LINE__, 1, 1, TYPE_1, STYLE_2, EXSTYLE_1, STYLE_1, EXSTYLE_2 },
|
||||||
{ __LINE__, 1, TYPE_1, STYLE_2, EXSTYLE_1, STYLE_1, EXSTYLE_3 },
|
{ __LINE__, 1, 2, TYPE_1, STYLE_2, EXSTYLE_1, STYLE_1, EXSTYLE_3 },
|
||||||
{ __LINE__, 1, TYPE_1, STYLE_2, EXSTYLE_1, STYLE_2, EXSTYLE_0 },
|
{ __LINE__, 1, 2, TYPE_1, STYLE_2, EXSTYLE_1, STYLE_2, EXSTYLE_0 },
|
||||||
{ __LINE__, 1, TYPE_1, STYLE_2, EXSTYLE_1, STYLE_2, EXSTYLE_1 },
|
{ __LINE__, 1, 2, TYPE_1, STYLE_2, EXSTYLE_1, STYLE_2, EXSTYLE_1 },
|
||||||
{ __LINE__, 1, TYPE_1, STYLE_2, EXSTYLE_1, STYLE_2, EXSTYLE_2 },
|
{ __LINE__, 1, 1, TYPE_1, STYLE_2, EXSTYLE_1, STYLE_2, EXSTYLE_2 },
|
||||||
{ __LINE__, 1, TYPE_1, STYLE_2, EXSTYLE_1, STYLE_2, EXSTYLE_3 },
|
{ __LINE__, 1, 2, TYPE_1, STYLE_2, EXSTYLE_1, STYLE_2, EXSTYLE_3 },
|
||||||
{ __LINE__, 0, TYPE_1, STYLE_2, EXSTYLE_2, STYLE_0, EXSTYLE_0 },
|
{ __LINE__, 0, 0, TYPE_1, STYLE_2, EXSTYLE_2, STYLE_0, EXSTYLE_0 },
|
||||||
{ __LINE__, 0, TYPE_1, STYLE_2, EXSTYLE_2, STYLE_0, EXSTYLE_1 },
|
{ __LINE__, 0, 0, TYPE_1, STYLE_2, EXSTYLE_2, STYLE_0, EXSTYLE_1 },
|
||||||
{ __LINE__, 0, TYPE_1, STYLE_2, EXSTYLE_2, STYLE_0, EXSTYLE_2 },
|
{ __LINE__, 0, 0, TYPE_1, STYLE_2, EXSTYLE_2, STYLE_0, EXSTYLE_2 },
|
||||||
{ __LINE__, 0, TYPE_1, STYLE_2, EXSTYLE_2, STYLE_0, EXSTYLE_3 },
|
{ __LINE__, 0, 0, TYPE_1, STYLE_2, EXSTYLE_2, STYLE_0, EXSTYLE_3 },
|
||||||
{ __LINE__, 0, TYPE_1, STYLE_2, EXSTYLE_2, STYLE_1, EXSTYLE_0 },
|
{ __LINE__, 0, 1, TYPE_1, STYLE_2, EXSTYLE_2, STYLE_1, EXSTYLE_0 },
|
||||||
{ __LINE__, 0, TYPE_1, STYLE_2, EXSTYLE_2, STYLE_1, EXSTYLE_1 },
|
{ __LINE__, 0, 1, TYPE_1, STYLE_2, EXSTYLE_2, STYLE_1, EXSTYLE_1 },
|
||||||
{ __LINE__, 0, TYPE_1, STYLE_2, EXSTYLE_2, STYLE_1, EXSTYLE_2 },
|
{ __LINE__, 0, 0, TYPE_1, STYLE_2, EXSTYLE_2, STYLE_1, EXSTYLE_2 },
|
||||||
{ __LINE__, 0, TYPE_1, STYLE_2, EXSTYLE_2, STYLE_1, EXSTYLE_3 },
|
{ __LINE__, 0, 1, TYPE_1, STYLE_2, EXSTYLE_2, STYLE_1, EXSTYLE_3 },
|
||||||
{ __LINE__, 0, TYPE_1, STYLE_2, EXSTYLE_2, STYLE_2, EXSTYLE_0 },
|
{ __LINE__, 0, 1, TYPE_1, STYLE_2, EXSTYLE_2, STYLE_2, EXSTYLE_0 },
|
||||||
{ __LINE__, 0, TYPE_1, STYLE_2, EXSTYLE_2, STYLE_2, EXSTYLE_1 },
|
{ __LINE__, 0, 1, TYPE_1, STYLE_2, EXSTYLE_2, STYLE_2, EXSTYLE_1 },
|
||||||
{ __LINE__, 0, TYPE_1, STYLE_2, EXSTYLE_2, STYLE_2, EXSTYLE_2 },
|
{ __LINE__, 0, 0, TYPE_1, STYLE_2, EXSTYLE_2, STYLE_2, EXSTYLE_2 },
|
||||||
{ __LINE__, 0, TYPE_1, STYLE_2, EXSTYLE_2, STYLE_2, EXSTYLE_3 },
|
{ __LINE__, 0, 1, TYPE_1, STYLE_2, EXSTYLE_2, STYLE_2, EXSTYLE_3 },
|
||||||
{ __LINE__, 1, TYPE_1, STYLE_2, EXSTYLE_3, STYLE_0, EXSTYLE_0 },
|
{ __LINE__, 1, 1, TYPE_1, STYLE_2, EXSTYLE_3, STYLE_0, EXSTYLE_0 },
|
||||||
{ __LINE__, 1, TYPE_1, STYLE_2, EXSTYLE_3, STYLE_0, EXSTYLE_1 },
|
{ __LINE__, 1, 1, TYPE_1, STYLE_2, EXSTYLE_3, STYLE_0, EXSTYLE_1 },
|
||||||
{ __LINE__, 1, TYPE_1, STYLE_2, EXSTYLE_3, STYLE_0, EXSTYLE_2 },
|
{ __LINE__, 1, 1, TYPE_1, STYLE_2, EXSTYLE_3, STYLE_0, EXSTYLE_2 },
|
||||||
{ __LINE__, 1, TYPE_1, STYLE_2, EXSTYLE_3, STYLE_0, EXSTYLE_3 },
|
{ __LINE__, 1, 1, TYPE_1, STYLE_2, EXSTYLE_3, STYLE_0, EXSTYLE_3 },
|
||||||
{ __LINE__, 1, TYPE_1, STYLE_2, EXSTYLE_3, STYLE_1, EXSTYLE_0 },
|
{ __LINE__, 1, 2, TYPE_1, STYLE_2, EXSTYLE_3, STYLE_1, EXSTYLE_0 },
|
||||||
{ __LINE__, 1, TYPE_1, STYLE_2, EXSTYLE_3, STYLE_1, EXSTYLE_1 },
|
{ __LINE__, 1, 2, TYPE_1, STYLE_2, EXSTYLE_3, STYLE_1, EXSTYLE_1 },
|
||||||
{ __LINE__, 1, TYPE_1, STYLE_2, EXSTYLE_3, STYLE_1, EXSTYLE_2 },
|
{ __LINE__, 1, 1, TYPE_1, STYLE_2, EXSTYLE_3, STYLE_1, EXSTYLE_2 },
|
||||||
{ __LINE__, 1, TYPE_1, STYLE_2, EXSTYLE_3, STYLE_1, EXSTYLE_3 },
|
{ __LINE__, 1, 2, TYPE_1, STYLE_2, EXSTYLE_3, STYLE_1, EXSTYLE_3 },
|
||||||
{ __LINE__, 1, TYPE_1, STYLE_2, EXSTYLE_3, STYLE_2, EXSTYLE_0 },
|
{ __LINE__, 1, 2, TYPE_1, STYLE_2, EXSTYLE_3, STYLE_2, EXSTYLE_0 },
|
||||||
{ __LINE__, 1, TYPE_1, STYLE_2, EXSTYLE_3, STYLE_2, EXSTYLE_1 },
|
{ __LINE__, 1, 2, TYPE_1, STYLE_2, EXSTYLE_3, STYLE_2, EXSTYLE_1 },
|
||||||
{ __LINE__, 1, TYPE_1, STYLE_2, EXSTYLE_3, STYLE_2, EXSTYLE_2 },
|
{ __LINE__, 1, 1, TYPE_1, STYLE_2, EXSTYLE_3, STYLE_2, EXSTYLE_2 },
|
||||||
{ __LINE__, 1, TYPE_1, STYLE_2, EXSTYLE_3, STYLE_2, EXSTYLE_3 },
|
{ __LINE__, 1, 2, TYPE_1, STYLE_2, EXSTYLE_3, STYLE_2, EXSTYLE_3 },
|
||||||
|
|
||||||
// TYPE_2
|
// TYPE_2
|
||||||
{ __LINE__, 0, TYPE_2, STYLE_1, EXSTYLE_0, STYLE_0, EXSTYLE_0 },
|
{ __LINE__, 0, 0, TYPE_2, STYLE_1, EXSTYLE_0, STYLE_0, EXSTYLE_0 },
|
||||||
{ __LINE__, 0, TYPE_2, STYLE_1, EXSTYLE_0, STYLE_0, EXSTYLE_1 },
|
{ __LINE__, 0, 0, TYPE_2, STYLE_1, EXSTYLE_0, STYLE_0, EXSTYLE_1 },
|
||||||
{ __LINE__, 0, TYPE_2, STYLE_1, EXSTYLE_0, STYLE_0, EXSTYLE_2 },
|
{ __LINE__, 0, 0, TYPE_2, STYLE_1, EXSTYLE_0, STYLE_0, EXSTYLE_2 },
|
||||||
{ __LINE__, 0, TYPE_2, STYLE_1, EXSTYLE_0, STYLE_0, EXSTYLE_3 },
|
{ __LINE__, 0, 0, TYPE_2, STYLE_1, EXSTYLE_0, STYLE_0, EXSTYLE_3 },
|
||||||
{ __LINE__, 0, TYPE_2, STYLE_1, EXSTYLE_0, STYLE_1, EXSTYLE_0 },
|
{ __LINE__, 0, 1, TYPE_2, STYLE_1, EXSTYLE_0, STYLE_1, EXSTYLE_0 },
|
||||||
{ __LINE__, 0, TYPE_2, STYLE_1, EXSTYLE_0, STYLE_1, EXSTYLE_1 },
|
{ __LINE__, 0, 1, TYPE_2, STYLE_1, EXSTYLE_0, STYLE_1, EXSTYLE_1 },
|
||||||
{ __LINE__, 0, TYPE_2, STYLE_1, EXSTYLE_0, STYLE_1, EXSTYLE_2 },
|
{ __LINE__, 0, 0, TYPE_2, STYLE_1, EXSTYLE_0, STYLE_1, EXSTYLE_2 },
|
||||||
{ __LINE__, 0, TYPE_2, STYLE_1, EXSTYLE_0, STYLE_1, EXSTYLE_3 },
|
{ __LINE__, 0, 1, TYPE_2, STYLE_1, EXSTYLE_0, STYLE_1, EXSTYLE_3 },
|
||||||
{ __LINE__, 0, TYPE_2, STYLE_1, EXSTYLE_0, STYLE_2, EXSTYLE_0 },
|
{ __LINE__, 0, 1, TYPE_2, STYLE_1, EXSTYLE_0, STYLE_2, EXSTYLE_0 },
|
||||||
{ __LINE__, 0, TYPE_2, STYLE_1, EXSTYLE_0, STYLE_2, EXSTYLE_1 },
|
{ __LINE__, 0, 1, TYPE_2, STYLE_1, EXSTYLE_0, STYLE_2, EXSTYLE_1 },
|
||||||
{ __LINE__, 0, TYPE_2, STYLE_1, EXSTYLE_0, STYLE_2, EXSTYLE_2 },
|
{ __LINE__, 0, 0, TYPE_2, STYLE_1, EXSTYLE_0, STYLE_2, EXSTYLE_2 },
|
||||||
{ __LINE__, 0, TYPE_2, STYLE_1, EXSTYLE_0, STYLE_2, EXSTYLE_3 },
|
{ __LINE__, 0, 1, TYPE_2, STYLE_1, EXSTYLE_0, STYLE_2, EXSTYLE_3 },
|
||||||
{ __LINE__, 1, TYPE_2, STYLE_1, EXSTYLE_1, STYLE_0, EXSTYLE_0 },
|
{ __LINE__, 1, 1, TYPE_2, STYLE_1, EXSTYLE_1, STYLE_0, EXSTYLE_0 },
|
||||||
{ __LINE__, 1, TYPE_2, STYLE_1, EXSTYLE_1, STYLE_0, EXSTYLE_1 },
|
{ __LINE__, 1, 1, TYPE_2, STYLE_1, EXSTYLE_1, STYLE_0, EXSTYLE_1 },
|
||||||
{ __LINE__, 1, TYPE_2, STYLE_1, EXSTYLE_1, STYLE_0, EXSTYLE_2 },
|
{ __LINE__, 1, 1, TYPE_2, STYLE_1, EXSTYLE_1, STYLE_0, EXSTYLE_2 },
|
||||||
{ __LINE__, 1, TYPE_2, STYLE_1, EXSTYLE_1, STYLE_0, EXSTYLE_3 },
|
{ __LINE__, 1, 1, TYPE_2, STYLE_1, EXSTYLE_1, STYLE_0, EXSTYLE_3 },
|
||||||
{ __LINE__, 1, TYPE_2, STYLE_1, EXSTYLE_1, STYLE_1, EXSTYLE_0 },
|
{ __LINE__, 1, 2, TYPE_2, STYLE_1, EXSTYLE_1, STYLE_1, EXSTYLE_0 },
|
||||||
{ __LINE__, 1, TYPE_2, STYLE_1, EXSTYLE_1, STYLE_1, EXSTYLE_1 },
|
{ __LINE__, 1, 2, TYPE_2, STYLE_1, EXSTYLE_1, STYLE_1, EXSTYLE_1 },
|
||||||
{ __LINE__, 1, TYPE_2, STYLE_1, EXSTYLE_1, STYLE_1, EXSTYLE_2 },
|
{ __LINE__, 1, 1, TYPE_2, STYLE_1, EXSTYLE_1, STYLE_1, EXSTYLE_2 },
|
||||||
{ __LINE__, 1, TYPE_2, STYLE_1, EXSTYLE_1, STYLE_1, EXSTYLE_3 },
|
{ __LINE__, 1, 2, TYPE_2, STYLE_1, EXSTYLE_1, STYLE_1, EXSTYLE_3 },
|
||||||
{ __LINE__, 1, TYPE_2, STYLE_1, EXSTYLE_1, STYLE_2, EXSTYLE_0 },
|
{ __LINE__, 1, 2, TYPE_2, STYLE_1, EXSTYLE_1, STYLE_2, EXSTYLE_0 },
|
||||||
{ __LINE__, 1, TYPE_2, STYLE_1, EXSTYLE_1, STYLE_2, EXSTYLE_1 },
|
{ __LINE__, 1, 2, TYPE_2, STYLE_1, EXSTYLE_1, STYLE_2, EXSTYLE_1 },
|
||||||
{ __LINE__, 1, TYPE_2, STYLE_1, EXSTYLE_1, STYLE_2, EXSTYLE_2 },
|
{ __LINE__, 1, 1, TYPE_2, STYLE_1, EXSTYLE_1, STYLE_2, EXSTYLE_2 },
|
||||||
{ __LINE__, 1, TYPE_2, STYLE_1, EXSTYLE_1, STYLE_2, EXSTYLE_3 },
|
{ __LINE__, 1, 2, TYPE_2, STYLE_1, EXSTYLE_1, STYLE_2, EXSTYLE_3 },
|
||||||
{ __LINE__, 0, TYPE_2, STYLE_1, EXSTYLE_2, STYLE_0, EXSTYLE_0 },
|
{ __LINE__, 0, 0, TYPE_2, STYLE_1, EXSTYLE_2, STYLE_0, EXSTYLE_0 },
|
||||||
{ __LINE__, 0, TYPE_2, STYLE_1, EXSTYLE_2, STYLE_0, EXSTYLE_1 },
|
{ __LINE__, 0, 0, TYPE_2, STYLE_1, EXSTYLE_2, STYLE_0, EXSTYLE_1 },
|
||||||
{ __LINE__, 0, TYPE_2, STYLE_1, EXSTYLE_2, STYLE_0, EXSTYLE_2 },
|
{ __LINE__, 0, 0, TYPE_2, STYLE_1, EXSTYLE_2, STYLE_0, EXSTYLE_2 },
|
||||||
{ __LINE__, 0, TYPE_2, STYLE_1, EXSTYLE_2, STYLE_0, EXSTYLE_3 },
|
{ __LINE__, 0, 0, TYPE_2, STYLE_1, EXSTYLE_2, STYLE_0, EXSTYLE_3 },
|
||||||
{ __LINE__, 0, TYPE_2, STYLE_1, EXSTYLE_2, STYLE_1, EXSTYLE_0 },
|
{ __LINE__, 0, 1, TYPE_2, STYLE_1, EXSTYLE_2, STYLE_1, EXSTYLE_0 },
|
||||||
{ __LINE__, 0, TYPE_2, STYLE_1, EXSTYLE_2, STYLE_1, EXSTYLE_1 },
|
{ __LINE__, 0, 1, TYPE_2, STYLE_1, EXSTYLE_2, STYLE_1, EXSTYLE_1 },
|
||||||
{ __LINE__, 0, TYPE_2, STYLE_1, EXSTYLE_2, STYLE_1, EXSTYLE_2 },
|
{ __LINE__, 0, 0, TYPE_2, STYLE_1, EXSTYLE_2, STYLE_1, EXSTYLE_2 },
|
||||||
{ __LINE__, 0, TYPE_2, STYLE_1, EXSTYLE_2, STYLE_1, EXSTYLE_3 },
|
{ __LINE__, 0, 1, TYPE_2, STYLE_1, EXSTYLE_2, STYLE_1, EXSTYLE_3 },
|
||||||
{ __LINE__, 0, TYPE_2, STYLE_1, EXSTYLE_2, STYLE_2, EXSTYLE_0 },
|
{ __LINE__, 0, 1, TYPE_2, STYLE_1, EXSTYLE_2, STYLE_2, EXSTYLE_0 },
|
||||||
{ __LINE__, 0, TYPE_2, STYLE_1, EXSTYLE_2, STYLE_2, EXSTYLE_1 },
|
{ __LINE__, 0, 1, TYPE_2, STYLE_1, EXSTYLE_2, STYLE_2, EXSTYLE_1 },
|
||||||
{ __LINE__, 0, TYPE_2, STYLE_1, EXSTYLE_2, STYLE_2, EXSTYLE_2 },
|
{ __LINE__, 0, 0, TYPE_2, STYLE_1, EXSTYLE_2, STYLE_2, EXSTYLE_2 },
|
||||||
{ __LINE__, 0, TYPE_2, STYLE_1, EXSTYLE_2, STYLE_2, EXSTYLE_3 },
|
{ __LINE__, 0, 1, TYPE_2, STYLE_1, EXSTYLE_2, STYLE_2, EXSTYLE_3 },
|
||||||
{ __LINE__, 1, TYPE_2, STYLE_1, EXSTYLE_3, STYLE_0, EXSTYLE_0 },
|
{ __LINE__, 1, 1, TYPE_2, STYLE_1, EXSTYLE_3, STYLE_0, EXSTYLE_0 },
|
||||||
{ __LINE__, 1, TYPE_2, STYLE_1, EXSTYLE_3, STYLE_0, EXSTYLE_1 },
|
{ __LINE__, 1, 1, TYPE_2, STYLE_1, EXSTYLE_3, STYLE_0, EXSTYLE_1 },
|
||||||
{ __LINE__, 1, TYPE_2, STYLE_1, EXSTYLE_3, STYLE_0, EXSTYLE_2 },
|
{ __LINE__, 1, 1, TYPE_2, STYLE_1, EXSTYLE_3, STYLE_0, EXSTYLE_2 },
|
||||||
{ __LINE__, 1, TYPE_2, STYLE_1, EXSTYLE_3, STYLE_0, EXSTYLE_3 },
|
{ __LINE__, 1, 1, TYPE_2, STYLE_1, EXSTYLE_3, STYLE_0, EXSTYLE_3 },
|
||||||
{ __LINE__, 1, TYPE_2, STYLE_1, EXSTYLE_3, STYLE_1, EXSTYLE_0 },
|
{ __LINE__, 1, 2, TYPE_2, STYLE_1, EXSTYLE_3, STYLE_1, EXSTYLE_0 },
|
||||||
{ __LINE__, 1, TYPE_2, STYLE_1, EXSTYLE_3, STYLE_1, EXSTYLE_1 },
|
{ __LINE__, 1, 2, TYPE_2, STYLE_1, EXSTYLE_3, STYLE_1, EXSTYLE_1 },
|
||||||
{ __LINE__, 1, TYPE_2, STYLE_1, EXSTYLE_3, STYLE_1, EXSTYLE_2 },
|
{ __LINE__, 1, 1, TYPE_2, STYLE_1, EXSTYLE_3, STYLE_1, EXSTYLE_2 },
|
||||||
{ __LINE__, 1, TYPE_2, STYLE_1, EXSTYLE_3, STYLE_1, EXSTYLE_3 },
|
{ __LINE__, 1, 2, TYPE_2, STYLE_1, EXSTYLE_3, STYLE_1, EXSTYLE_3 },
|
||||||
{ __LINE__, 1, TYPE_2, STYLE_1, EXSTYLE_3, STYLE_2, EXSTYLE_0 },
|
{ __LINE__, 1, 2, TYPE_2, STYLE_1, EXSTYLE_3, STYLE_2, EXSTYLE_0 },
|
||||||
{ __LINE__, 1, TYPE_2, STYLE_1, EXSTYLE_3, STYLE_2, EXSTYLE_1 },
|
{ __LINE__, 1, 2, TYPE_2, STYLE_1, EXSTYLE_3, STYLE_2, EXSTYLE_1 },
|
||||||
{ __LINE__, 1, TYPE_2, STYLE_1, EXSTYLE_3, STYLE_2, EXSTYLE_2 },
|
{ __LINE__, 1, 1, TYPE_2, STYLE_1, EXSTYLE_3, STYLE_2, EXSTYLE_2 },
|
||||||
{ __LINE__, 1, TYPE_2, STYLE_1, EXSTYLE_3, STYLE_2, EXSTYLE_3 },
|
{ __LINE__, 1, 2, TYPE_2, STYLE_1, EXSTYLE_3, STYLE_2, EXSTYLE_3 },
|
||||||
{ __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_0, STYLE_0, EXSTYLE_0 },
|
{ __LINE__, 0, 0, TYPE_2, STYLE_2, EXSTYLE_0, STYLE_0, EXSTYLE_0 },
|
||||||
{ __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_0, STYLE_0, EXSTYLE_1 },
|
{ __LINE__, 0, 0, TYPE_2, STYLE_2, EXSTYLE_0, STYLE_0, EXSTYLE_1 },
|
||||||
{ __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_0, STYLE_0, EXSTYLE_2 },
|
{ __LINE__, 0, 0, TYPE_2, STYLE_2, EXSTYLE_0, STYLE_0, EXSTYLE_2 },
|
||||||
{ __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_0, STYLE_0, EXSTYLE_3 },
|
{ __LINE__, 0, 0, TYPE_2, STYLE_2, EXSTYLE_0, STYLE_0, EXSTYLE_3 },
|
||||||
{ __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_0, STYLE_1, EXSTYLE_0 },
|
{ __LINE__, 0, 1, TYPE_2, STYLE_2, EXSTYLE_0, STYLE_1, EXSTYLE_0 },
|
||||||
{ __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_0, STYLE_1, EXSTYLE_1 },
|
{ __LINE__, 0, 1, TYPE_2, STYLE_2, EXSTYLE_0, STYLE_1, EXSTYLE_1 },
|
||||||
{ __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_0, STYLE_1, EXSTYLE_2 },
|
{ __LINE__, 0, 0, TYPE_2, STYLE_2, EXSTYLE_0, STYLE_1, EXSTYLE_2 },
|
||||||
{ __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_0, STYLE_1, EXSTYLE_3 },
|
{ __LINE__, 0, 1, TYPE_2, STYLE_2, EXSTYLE_0, STYLE_1, EXSTYLE_3 },
|
||||||
{ __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_0, STYLE_2, EXSTYLE_0 },
|
{ __LINE__, 0, 1, TYPE_2, STYLE_2, EXSTYLE_0, STYLE_2, EXSTYLE_0 },
|
||||||
{ __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_0, STYLE_2, EXSTYLE_1 },
|
{ __LINE__, 0, 1, TYPE_2, STYLE_2, EXSTYLE_0, STYLE_2, EXSTYLE_1 },
|
||||||
{ __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_0, STYLE_2, EXSTYLE_2 },
|
{ __LINE__, 0, 0, TYPE_2, STYLE_2, EXSTYLE_0, STYLE_2, EXSTYLE_2 },
|
||||||
{ __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_0, STYLE_2, EXSTYLE_3 },
|
{ __LINE__, 0, 1, TYPE_2, STYLE_2, EXSTYLE_0, STYLE_2, EXSTYLE_3 },
|
||||||
{ __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_1, STYLE_0, EXSTYLE_0 },
|
{ __LINE__, 0, 0, TYPE_2, STYLE_2, EXSTYLE_1, STYLE_0, EXSTYLE_0 },
|
||||||
{ __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_1, STYLE_0, EXSTYLE_1 },
|
{ __LINE__, 0, 0, TYPE_2, STYLE_2, EXSTYLE_1, STYLE_0, EXSTYLE_1 },
|
||||||
{ __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_1, STYLE_0, EXSTYLE_2 },
|
{ __LINE__, 0, 0, TYPE_2, STYLE_2, EXSTYLE_1, STYLE_0, EXSTYLE_2 },
|
||||||
{ __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_1, STYLE_0, EXSTYLE_3 },
|
{ __LINE__, 0, 0, TYPE_2, STYLE_2, EXSTYLE_1, STYLE_0, EXSTYLE_3 },
|
||||||
{ __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_1, STYLE_1, EXSTYLE_0 },
|
{ __LINE__, 0, 1, TYPE_2, STYLE_2, EXSTYLE_1, STYLE_1, EXSTYLE_0 },
|
||||||
{ __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_1, STYLE_1, EXSTYLE_1 },
|
{ __LINE__, 0, 1, TYPE_2, STYLE_2, EXSTYLE_1, STYLE_1, EXSTYLE_1 },
|
||||||
{ __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_1, STYLE_1, EXSTYLE_2 },
|
{ __LINE__, 0, 0, TYPE_2, STYLE_2, EXSTYLE_1, STYLE_1, EXSTYLE_2 },
|
||||||
{ __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_1, STYLE_1, EXSTYLE_3 },
|
{ __LINE__, 0, 1, TYPE_2, STYLE_2, EXSTYLE_1, STYLE_1, EXSTYLE_3 },
|
||||||
{ __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_1, STYLE_2, EXSTYLE_0 },
|
{ __LINE__, 0, 1, TYPE_2, STYLE_2, EXSTYLE_1, STYLE_2, EXSTYLE_0 },
|
||||||
{ __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_1, STYLE_2, EXSTYLE_1 },
|
{ __LINE__, 0, 1, TYPE_2, STYLE_2, EXSTYLE_1, STYLE_2, EXSTYLE_1 },
|
||||||
{ __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_1, STYLE_2, EXSTYLE_2 },
|
{ __LINE__, 0, 0, TYPE_2, STYLE_2, EXSTYLE_1, STYLE_2, EXSTYLE_2 },
|
||||||
{ __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_1, STYLE_2, EXSTYLE_3 },
|
{ __LINE__, 0, 1, TYPE_2, STYLE_2, EXSTYLE_1, STYLE_2, EXSTYLE_3 },
|
||||||
{ __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_2, STYLE_0, EXSTYLE_0 },
|
{ __LINE__, 0, 0, TYPE_2, STYLE_2, EXSTYLE_2, STYLE_0, EXSTYLE_0 },
|
||||||
{ __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_2, STYLE_0, EXSTYLE_1 },
|
{ __LINE__, 0, 0, TYPE_2, STYLE_2, EXSTYLE_2, STYLE_0, EXSTYLE_1 },
|
||||||
{ __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_2, STYLE_0, EXSTYLE_2 },
|
{ __LINE__, 0, 0, TYPE_2, STYLE_2, EXSTYLE_2, STYLE_0, EXSTYLE_2 },
|
||||||
{ __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_2, STYLE_0, EXSTYLE_3 },
|
{ __LINE__, 0, 0, TYPE_2, STYLE_2, EXSTYLE_2, STYLE_0, EXSTYLE_3 },
|
||||||
{ __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_2, STYLE_1, EXSTYLE_0 },
|
{ __LINE__, 0, 1, TYPE_2, STYLE_2, EXSTYLE_2, STYLE_1, EXSTYLE_0 },
|
||||||
{ __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_2, STYLE_1, EXSTYLE_1 },
|
{ __LINE__, 0, 1, TYPE_2, STYLE_2, EXSTYLE_2, STYLE_1, EXSTYLE_1 },
|
||||||
{ __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_2, STYLE_1, EXSTYLE_2 },
|
{ __LINE__, 0, 0, TYPE_2, STYLE_2, EXSTYLE_2, STYLE_1, EXSTYLE_2 },
|
||||||
{ __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_2, STYLE_1, EXSTYLE_3 },
|
{ __LINE__, 0, 1, TYPE_2, STYLE_2, EXSTYLE_2, STYLE_1, EXSTYLE_3 },
|
||||||
{ __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_2, STYLE_2, EXSTYLE_0 },
|
{ __LINE__, 0, 1, TYPE_2, STYLE_2, EXSTYLE_2, STYLE_2, EXSTYLE_0 },
|
||||||
{ __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_2, STYLE_2, EXSTYLE_1 },
|
{ __LINE__, 0, 1, TYPE_2, STYLE_2, EXSTYLE_2, STYLE_2, EXSTYLE_1 },
|
||||||
{ __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_2, STYLE_2, EXSTYLE_2 },
|
{ __LINE__, 0, 0, TYPE_2, STYLE_2, EXSTYLE_2, STYLE_2, EXSTYLE_2 },
|
||||||
{ __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_2, STYLE_2, EXSTYLE_3 },
|
{ __LINE__, 0, 1, TYPE_2, STYLE_2, EXSTYLE_2, STYLE_2, EXSTYLE_3 },
|
||||||
{ __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_3, STYLE_0, EXSTYLE_0 },
|
{ __LINE__, 0, 0, TYPE_2, STYLE_2, EXSTYLE_3, STYLE_0, EXSTYLE_0 },
|
||||||
{ __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_3, STYLE_0, EXSTYLE_1 },
|
{ __LINE__, 0, 0, TYPE_2, STYLE_2, EXSTYLE_3, STYLE_0, EXSTYLE_1 },
|
||||||
{ __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_3, STYLE_0, EXSTYLE_2 },
|
{ __LINE__, 0, 0, TYPE_2, STYLE_2, EXSTYLE_3, STYLE_0, EXSTYLE_2 },
|
||||||
{ __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_3, STYLE_0, EXSTYLE_3 },
|
{ __LINE__, 0, 0, TYPE_2, STYLE_2, EXSTYLE_3, STYLE_0, EXSTYLE_3 },
|
||||||
{ __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_3, STYLE_1, EXSTYLE_0 },
|
{ __LINE__, 0, 1, TYPE_2, STYLE_2, EXSTYLE_3, STYLE_1, EXSTYLE_0 },
|
||||||
{ __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_3, STYLE_1, EXSTYLE_1 },
|
{ __LINE__, 0, 1, TYPE_2, STYLE_2, EXSTYLE_3, STYLE_1, EXSTYLE_1 },
|
||||||
{ __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_3, STYLE_1, EXSTYLE_2 },
|
{ __LINE__, 0, 0, TYPE_2, STYLE_2, EXSTYLE_3, STYLE_1, EXSTYLE_2 },
|
||||||
{ __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_3, STYLE_1, EXSTYLE_3 },
|
{ __LINE__, 0, 1, TYPE_2, STYLE_2, EXSTYLE_3, STYLE_1, EXSTYLE_3 },
|
||||||
{ __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_3, STYLE_2, EXSTYLE_0 },
|
{ __LINE__, 0, 1, TYPE_2, STYLE_2, EXSTYLE_3, STYLE_2, EXSTYLE_0 },
|
||||||
{ __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_3, STYLE_2, EXSTYLE_1 },
|
{ __LINE__, 0, 1, TYPE_2, STYLE_2, EXSTYLE_3, STYLE_2, EXSTYLE_1 },
|
||||||
{ __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_3, STYLE_2, EXSTYLE_2 },
|
{ __LINE__, 0, 0, TYPE_2, STYLE_2, EXSTYLE_3, STYLE_2, EXSTYLE_2 },
|
||||||
{ __LINE__, 0, TYPE_2, STYLE_2, EXSTYLE_3, STYLE_2, EXSTYLE_3 },
|
{ __LINE__, 0, 1, TYPE_2, STYLE_2, EXSTYLE_3, STYLE_2, EXSTYLE_3 },
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef struct RUDEAPP_TEST_ENTRY
|
static HHOOK s_hShellHook = NULL;
|
||||||
{
|
static UINT s_cCreated = 0;
|
||||||
INT lineno;
|
static UINT s_cDestroyed = 0;
|
||||||
UINT nCount;
|
static WCHAR s_szName[] = L"ReactOS ShellHook testcase";
|
||||||
DWORD style;
|
|
||||||
DWORD exstyle;
|
|
||||||
BOOL bSetForeground;
|
|
||||||
BOOL bFullscreen;
|
|
||||||
BOOL bSetFullscreen;
|
|
||||||
} RUDEAPP_TEST_ENTRY;
|
|
||||||
|
|
||||||
static const RUDEAPP_TEST_ENTRY s_entries2[] =
|
|
||||||
{
|
|
||||||
/* STYLE_0 */
|
|
||||||
{ __LINE__, 0, STYLE_0, EXSTYLE_0, FALSE, FALSE, FALSE },
|
|
||||||
{ __LINE__, 0, STYLE_0, EXSTYLE_0, FALSE, FALSE, TRUE },
|
|
||||||
{ __LINE__, 0, STYLE_0, EXSTYLE_0, FALSE, TRUE, FALSE },
|
|
||||||
{ __LINE__, 0, STYLE_0, EXSTYLE_0, FALSE, TRUE, TRUE },
|
|
||||||
{ __LINE__, 0, STYLE_0, EXSTYLE_0, TRUE, FALSE, FALSE },
|
|
||||||
{ __LINE__, 0, STYLE_0, EXSTYLE_0, TRUE, FALSE, TRUE },
|
|
||||||
{ __LINE__, 0, STYLE_0, EXSTYLE_0, TRUE, TRUE, FALSE },
|
|
||||||
{ __LINE__, 0, STYLE_0, EXSTYLE_0, TRUE, TRUE, TRUE },
|
|
||||||
|
|
||||||
{ __LINE__, 0, STYLE_0, EXSTYLE_1, FALSE, FALSE, FALSE },
|
|
||||||
{ __LINE__, 0, STYLE_0, EXSTYLE_1, FALSE, FALSE, TRUE },
|
|
||||||
{ __LINE__, 0, STYLE_0, EXSTYLE_1, FALSE, TRUE, FALSE },
|
|
||||||
{ __LINE__, 0, STYLE_0, EXSTYLE_1, FALSE, TRUE, TRUE },
|
|
||||||
{ __LINE__, 0, STYLE_0, EXSTYLE_1, TRUE, FALSE, FALSE },
|
|
||||||
{ __LINE__, 0, STYLE_0, EXSTYLE_1, TRUE, FALSE, TRUE },
|
|
||||||
{ __LINE__, 0, STYLE_0, EXSTYLE_1, TRUE, TRUE, FALSE },
|
|
||||||
{ __LINE__, 0, STYLE_0, EXSTYLE_1, TRUE, TRUE, TRUE },
|
|
||||||
|
|
||||||
{ __LINE__, 0, STYLE_0, EXSTYLE_2, FALSE, FALSE, FALSE },
|
|
||||||
{ __LINE__, 0, STYLE_0, EXSTYLE_2, FALSE, FALSE, TRUE },
|
|
||||||
{ __LINE__, 0, STYLE_0, EXSTYLE_2, FALSE, TRUE, FALSE },
|
|
||||||
{ __LINE__, 0, STYLE_0, EXSTYLE_2, FALSE, TRUE, TRUE },
|
|
||||||
{ __LINE__, 0, STYLE_0, EXSTYLE_2, TRUE, FALSE, FALSE },
|
|
||||||
{ __LINE__, 0, STYLE_0, EXSTYLE_2, TRUE, FALSE, TRUE },
|
|
||||||
{ __LINE__, 0, STYLE_0, EXSTYLE_2, TRUE, TRUE, FALSE },
|
|
||||||
{ __LINE__, 0, STYLE_0, EXSTYLE_2, TRUE, TRUE, TRUE },
|
|
||||||
|
|
||||||
{ __LINE__, 0, STYLE_0, EXSTYLE_3, FALSE, FALSE, FALSE },
|
|
||||||
{ __LINE__, 0, STYLE_0, EXSTYLE_3, FALSE, FALSE, TRUE },
|
|
||||||
{ __LINE__, 0, STYLE_0, EXSTYLE_3, FALSE, TRUE, FALSE },
|
|
||||||
{ __LINE__, 0, STYLE_0, EXSTYLE_3, FALSE, TRUE, TRUE },
|
|
||||||
{ __LINE__, 0, STYLE_0, EXSTYLE_3, TRUE, FALSE, FALSE },
|
|
||||||
{ __LINE__, 0, STYLE_0, EXSTYLE_3, TRUE, FALSE, TRUE },
|
|
||||||
{ __LINE__, 0, STYLE_0, EXSTYLE_3, TRUE, TRUE, FALSE },
|
|
||||||
{ __LINE__, 0, STYLE_0, EXSTYLE_3, TRUE, TRUE, TRUE },
|
|
||||||
|
|
||||||
/* STYLE_1 */
|
|
||||||
{ __LINE__, 0, STYLE_1, EXSTYLE_0, FALSE, FALSE, FALSE },
|
|
||||||
{ __LINE__, 1, STYLE_1, EXSTYLE_0, FALSE, FALSE, TRUE },
|
|
||||||
{ __LINE__, 1, STYLE_1, EXSTYLE_0, FALSE, TRUE, FALSE },
|
|
||||||
{ __LINE__, 1, STYLE_1, EXSTYLE_0, FALSE, TRUE, TRUE },
|
|
||||||
{ __LINE__, 0, STYLE_1, EXSTYLE_0, TRUE, FALSE, FALSE },
|
|
||||||
{ __LINE__, 1, STYLE_1, EXSTYLE_0, TRUE, FALSE, TRUE },
|
|
||||||
{ __LINE__, 1, STYLE_1, EXSTYLE_0, TRUE, TRUE, FALSE },
|
|
||||||
{ __LINE__, 1, STYLE_1, EXSTYLE_0, TRUE, TRUE, TRUE },
|
|
||||||
|
|
||||||
{ __LINE__, 0, STYLE_1, EXSTYLE_1, FALSE, FALSE, FALSE },
|
|
||||||
{ __LINE__, 1, STYLE_1, EXSTYLE_1, FALSE, FALSE, TRUE },
|
|
||||||
{ __LINE__, 1, STYLE_1, EXSTYLE_1, FALSE, TRUE, FALSE },
|
|
||||||
{ __LINE__, 1, STYLE_1, EXSTYLE_1, FALSE, TRUE, TRUE },
|
|
||||||
{ __LINE__, 0, STYLE_1, EXSTYLE_1, TRUE, FALSE, FALSE },
|
|
||||||
{ __LINE__, 1, STYLE_1, EXSTYLE_1, TRUE, FALSE, TRUE },
|
|
||||||
{ __LINE__, 1, STYLE_1, EXSTYLE_1, TRUE, TRUE, FALSE },
|
|
||||||
{ __LINE__, 1, STYLE_1, EXSTYLE_1, TRUE, TRUE, TRUE },
|
|
||||||
|
|
||||||
{ __LINE__, 0, STYLE_1, EXSTYLE_2, FALSE, FALSE, FALSE },
|
|
||||||
{ __LINE__, 0, STYLE_1, EXSTYLE_2, FALSE, FALSE, TRUE },
|
|
||||||
{ __LINE__, 0, STYLE_1, EXSTYLE_2, FALSE, TRUE, FALSE },
|
|
||||||
{ __LINE__, 0, STYLE_1, EXSTYLE_2, FALSE, TRUE, TRUE },
|
|
||||||
{ __LINE__, 0, STYLE_1, EXSTYLE_2, TRUE, FALSE, FALSE },
|
|
||||||
{ __LINE__, 0, STYLE_1, EXSTYLE_2, TRUE, FALSE, TRUE },
|
|
||||||
{ __LINE__, 0, STYLE_1, EXSTYLE_2, TRUE, TRUE, FALSE },
|
|
||||||
{ __LINE__, 0, STYLE_1, EXSTYLE_2, TRUE, TRUE, TRUE },
|
|
||||||
|
|
||||||
{ __LINE__, 0, STYLE_1, EXSTYLE_3, FALSE, FALSE, FALSE },
|
|
||||||
{ __LINE__, 0, STYLE_1, EXSTYLE_3, FALSE, FALSE, TRUE },
|
|
||||||
{ __LINE__, 0, STYLE_1, EXSTYLE_3, FALSE, TRUE, FALSE },
|
|
||||||
{ __LINE__, 0, STYLE_1, EXSTYLE_3, FALSE, TRUE, TRUE },
|
|
||||||
{ __LINE__, 0, STYLE_1, EXSTYLE_3, TRUE, FALSE, FALSE },
|
|
||||||
{ __LINE__, 0, STYLE_1, EXSTYLE_3, TRUE, FALSE, TRUE },
|
|
||||||
{ __LINE__, 0, STYLE_1, EXSTYLE_3, TRUE, TRUE, FALSE },
|
|
||||||
{ __LINE__, 0, STYLE_1, EXSTYLE_3, TRUE, TRUE, TRUE },
|
|
||||||
|
|
||||||
/* STYLE_2 */
|
|
||||||
{ __LINE__, 0, STYLE_2, EXSTYLE_0, FALSE, FALSE, FALSE },
|
|
||||||
{ __LINE__, 1, STYLE_2, EXSTYLE_0, FALSE, FALSE, TRUE },
|
|
||||||
{ __LINE__, 1, STYLE_2, EXSTYLE_0, FALSE, TRUE, FALSE },
|
|
||||||
{ __LINE__, 1, STYLE_2, EXSTYLE_0, FALSE, TRUE, TRUE },
|
|
||||||
{ __LINE__, 0, STYLE_2, EXSTYLE_0, TRUE, FALSE, FALSE },
|
|
||||||
{ __LINE__, 1, STYLE_2, EXSTYLE_0, TRUE, FALSE, TRUE },
|
|
||||||
{ __LINE__, 1, STYLE_2, EXSTYLE_0, TRUE, TRUE, FALSE },
|
|
||||||
{ __LINE__, 1, STYLE_2, EXSTYLE_0, TRUE, TRUE, TRUE },
|
|
||||||
|
|
||||||
{ __LINE__, 0, STYLE_2, EXSTYLE_1, FALSE, FALSE, FALSE },
|
|
||||||
{ __LINE__, 1, STYLE_2, EXSTYLE_1, FALSE, FALSE, TRUE },
|
|
||||||
{ __LINE__, 1, STYLE_2, EXSTYLE_1, FALSE, TRUE, FALSE },
|
|
||||||
{ __LINE__, 1, STYLE_2, EXSTYLE_1, FALSE, TRUE, TRUE },
|
|
||||||
{ __LINE__, 0, STYLE_2, EXSTYLE_1, TRUE, FALSE, FALSE },
|
|
||||||
{ __LINE__, 1, STYLE_2, EXSTYLE_1, TRUE, FALSE, TRUE },
|
|
||||||
{ __LINE__, 1, STYLE_2, EXSTYLE_1, TRUE, TRUE, FALSE },
|
|
||||||
{ __LINE__, 1, STYLE_2, EXSTYLE_1, TRUE, TRUE, TRUE },
|
|
||||||
|
|
||||||
{ __LINE__, 0, STYLE_2, EXSTYLE_2, FALSE, FALSE, FALSE },
|
|
||||||
{ __LINE__, 0, STYLE_2, EXSTYLE_2, FALSE, FALSE, TRUE },
|
|
||||||
{ __LINE__, 0, STYLE_2, EXSTYLE_2, FALSE, TRUE, FALSE },
|
|
||||||
{ __LINE__, 0, STYLE_2, EXSTYLE_2, FALSE, TRUE, TRUE },
|
|
||||||
{ __LINE__, 0, STYLE_2, EXSTYLE_2, TRUE, FALSE, FALSE },
|
|
||||||
{ __LINE__, 0, STYLE_2, EXSTYLE_2, TRUE, FALSE, TRUE },
|
|
||||||
{ __LINE__, 0, STYLE_2, EXSTYLE_2, TRUE, TRUE, FALSE },
|
|
||||||
{ __LINE__, 0, STYLE_2, EXSTYLE_2, TRUE, TRUE, TRUE },
|
|
||||||
|
|
||||||
{ __LINE__, 0, STYLE_2, EXSTYLE_3, FALSE, FALSE, FALSE },
|
|
||||||
{ __LINE__, 0, STYLE_2, EXSTYLE_3, FALSE, FALSE, TRUE },
|
|
||||||
{ __LINE__, 0, STYLE_2, EXSTYLE_3, FALSE, TRUE, FALSE },
|
|
||||||
{ __LINE__, 0, STYLE_2, EXSTYLE_3, FALSE, TRUE, TRUE },
|
|
||||||
{ __LINE__, 0, STYLE_2, EXSTYLE_3, TRUE, FALSE, FALSE },
|
|
||||||
{ __LINE__, 0, STYLE_2, EXSTYLE_3, TRUE, FALSE, TRUE },
|
|
||||||
{ __LINE__, 0, STYLE_2, EXSTYLE_3, TRUE, TRUE, FALSE },
|
|
||||||
{ __LINE__, 0, STYLE_2, EXSTYLE_3, TRUE, TRUE, TRUE },
|
|
||||||
};
|
|
||||||
|
|
||||||
static UINT s_uShellHookMsg = 0;
|
|
||||||
static HWND s_hwndHookViewer = NULL;
|
|
||||||
static HWND s_hwndParent = NULL;
|
static HWND s_hwndParent = NULL;
|
||||||
static HWND s_hwndTarget = NULL;
|
static HWND s_hwndTarget = NULL;
|
||||||
static UINT s_nWindowCreatedCount = 0;
|
static HWND s_hwndMain = NULL;
|
||||||
static UINT s_nRudeAppActivated = 0;
|
|
||||||
static WCHAR s_szName[] = L"ReactOS ShellHook testcase";
|
|
||||||
|
|
||||||
static HWND
|
static HWND
|
||||||
DoCreateWindow(HWND hwndParent, DWORD style, DWORD exstyle, BOOL bFullscreen = FALSE)
|
DoCreateWindow(HWND hwndParent, DWORD style, DWORD exstyle, BOOL bFullscreen = FALSE)
|
||||||
{
|
{
|
||||||
INT x = CW_USEDEFAULT, y = CW_USEDEFAULT, cx = 100, cy = 100;
|
INT x = CW_USEDEFAULT, y = CW_USEDEFAULT, cx = 300, cy = 100;
|
||||||
if (bFullscreen)
|
if (bFullscreen)
|
||||||
{
|
{
|
||||||
x = y = 0;
|
x = y = 0;
|
||||||
|
@ -399,9 +274,7 @@ static void DoTestEntryPart1(const TEST_ENTRY *pEntry)
|
||||||
|
|
||||||
s_hwndParent = NULL;
|
s_hwndParent = NULL;
|
||||||
if (pEntry->bIsChild || pEntry->bHasOwner)
|
if (pEntry->bIsChild || pEntry->bHasOwner)
|
||||||
{
|
|
||||||
s_hwndParent = DoCreateWindow(NULL, pEntry->owner_style, pEntry->owner_exstyle);
|
s_hwndParent = DoCreateWindow(NULL, pEntry->owner_style, pEntry->owner_exstyle);
|
||||||
}
|
|
||||||
|
|
||||||
DWORD style = pEntry->style;
|
DWORD style = pEntry->style;
|
||||||
DWORD exstyle = pEntry->exstyle;
|
DWORD exstyle = pEntry->exstyle;
|
||||||
|
@ -410,123 +283,119 @@ static void DoTestEntryPart1(const TEST_ENTRY *pEntry)
|
||||||
else
|
else
|
||||||
style &= ~WS_CHILD;
|
style &= ~WS_CHILD;
|
||||||
|
|
||||||
s_nWindowCreatedCount = 0;
|
s_cCreated = s_cDestroyed = 0;
|
||||||
s_hwndTarget = DoCreateWindow(s_hwndParent, style, exstyle);
|
s_hwndTarget = DoCreateWindow(s_hwndParent, style, exstyle);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void DoTestEntryPart2(const TEST_ENTRY *pEntry)
|
static void DoTestEntryPart2(const TEST_ENTRY *pEntry)
|
||||||
{
|
{
|
||||||
ok(s_nWindowCreatedCount == pEntry->nCount,
|
DestroyWindow(s_hwndTarget);
|
||||||
"Line %d: s_nWindowCreatedCount expected %u but was %u\n",
|
|
||||||
pEntry->lineno, pEntry->nCount, s_nWindowCreatedCount);
|
|
||||||
|
|
||||||
PostMessageW(s_hwndTarget, WM_CLOSE, 0, 0);
|
|
||||||
s_hwndTarget = NULL;
|
s_hwndTarget = NULL;
|
||||||
|
|
||||||
if (pEntry->bIsChild || pEntry->bHasOwner)
|
if (pEntry->bIsChild || pEntry->bHasOwner)
|
||||||
{
|
{
|
||||||
PostMessageW(s_hwndParent, WM_CLOSE, 0, 0);
|
DestroyWindow(s_hwndParent);
|
||||||
s_hwndParent = NULL;
|
s_hwndParent = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ok(s_cCreated == pEntry->cCreated,
|
||||||
|
"Line %d: cCreated expected %u but was %u\n",
|
||||||
|
pEntry->lineno, pEntry->cCreated, s_cCreated);
|
||||||
|
|
||||||
|
ok(s_cDestroyed == pEntry->cDestroyed,
|
||||||
|
"Line %d: cDestroyed expected %u but was %u\n",
|
||||||
|
pEntry->lineno, pEntry->cDestroyed, s_cDestroyed);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void DoRudeAppTest1(const RUDEAPP_TEST_ENTRY *pEntry)
|
static
|
||||||
|
LRESULT CALLBACK
|
||||||
|
ShellProc(
|
||||||
|
INT nCode,
|
||||||
|
WPARAM wParam,
|
||||||
|
LPARAM lParam)
|
||||||
{
|
{
|
||||||
s_hwndParent = NULL;
|
if (nCode < 0)
|
||||||
|
return CallNextHookEx(s_hShellHook, nCode, wParam, lParam);
|
||||||
|
|
||||||
DWORD style = pEntry->style;
|
switch (nCode)
|
||||||
DWORD exstyle = pEntry->exstyle;
|
|
||||||
|
|
||||||
s_nRudeAppActivated = 0;
|
|
||||||
s_hwndTarget = DoCreateWindow(s_hwndParent, style, exstyle, pEntry->bFullscreen);
|
|
||||||
if (pEntry->bSetForeground)
|
|
||||||
SetForegroundWindow(s_hwndTarget);
|
|
||||||
if (pEntry->bSetFullscreen)
|
|
||||||
{
|
{
|
||||||
MoveWindow(s_hwndTarget, 0, 0,
|
case HSHELL_WINDOWCREATED:
|
||||||
GetSystemMetrics(SM_CXSCREEN), GetSystemMetrics(SM_CYSCREEN), TRUE);
|
s_cCreated++;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case HSHELL_WINDOWDESTROYED:
|
||||||
|
s_cDestroyed++;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return CallNextHookEx(s_hShellHook, nCode, wParam, lParam);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void DoRudeAppTest2(const RUDEAPP_TEST_ENTRY *pEntry)
|
static INT_PTR CALLBACK
|
||||||
|
DialogProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||||
{
|
{
|
||||||
ok(s_nRudeAppActivated == pEntry->nCount,
|
#define ID_TESTSTART 1000
|
||||||
"Line %d: s_nRudeAppActivated expected %u but was %u\n",
|
#define ID_TESTEND 2000
|
||||||
pEntry->lineno, pEntry->nCount, s_nRudeAppActivated);
|
switch (uMsg)
|
||||||
|
{
|
||||||
|
case WM_INITDIALOG:
|
||||||
|
ok_int(s_cCreated, 0);
|
||||||
|
ok_int(s_cDestroyed, 0);
|
||||||
|
PostMessageW(hwnd, WM_COMMAND, ID_TESTSTART, 0);
|
||||||
|
return TRUE;
|
||||||
|
|
||||||
PostMessageW(s_hwndTarget, WM_CLOSE, 0, 0);
|
case WM_COMMAND:
|
||||||
s_hwndTarget = NULL;
|
switch (LOWORD(wParam))
|
||||||
|
{
|
||||||
|
case IDOK:
|
||||||
|
case IDCANCEL:
|
||||||
|
DestroyWindow(hwnd);
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
{
|
||||||
|
if (ID_TESTSTART <= LOWORD(wParam) && LOWORD(wParam) < ID_TESTEND)
|
||||||
|
{
|
||||||
|
UINT_PTR i = (UINT_PTR)wParam - ID_TESTSTART;
|
||||||
|
|
||||||
|
if (i < _countof(s_entries1))
|
||||||
|
{
|
||||||
|
DoTestEntryPart1(&s_entries1[i]);
|
||||||
|
PostMessageW(hwnd, WM_COMMAND, ID_TESTEND + i, 0);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
DestroyWindow(hwnd);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (ID_TESTEND <= LOWORD(wParam))
|
||||||
|
{
|
||||||
|
UINT_PTR i = (UINT_PTR)wParam - ID_TESTEND;
|
||||||
|
|
||||||
|
if (i < _countof(s_entries1))
|
||||||
|
{
|
||||||
|
DoTestEntryPart2(&s_entries1[i]);
|
||||||
|
PostMessageW(hwnd, WM_COMMAND, ID_TESTSTART + i + 1, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case WM_DESTROY:
|
||||||
|
PostQuitMessage(0);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static LRESULT CALLBACK
|
static LRESULT CALLBACK
|
||||||
WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||||
{
|
{
|
||||||
if (uMsg == s_uShellHookMsg && uMsg != 0)
|
|
||||||
{
|
|
||||||
switch (wParam)
|
|
||||||
{
|
|
||||||
case HSHELL_WINDOWCREATED:
|
|
||||||
if ((HWND)lParam != s_hwndTarget)
|
|
||||||
break;
|
|
||||||
++s_nWindowCreatedCount;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case HSHELL_RUDEAPPACTIVATED:
|
|
||||||
if ((HWND)lParam != s_hwndTarget)
|
|
||||||
break;
|
|
||||||
++s_nRudeAppActivated;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#define ID_IGNITION 1000
|
|
||||||
#define ID_BURNING 2000
|
|
||||||
#define ID_RUDEAPPTEST1 3000
|
|
||||||
#define ID_RUDEAPPTEST2 4000
|
|
||||||
switch (uMsg)
|
switch (uMsg)
|
||||||
{
|
{
|
||||||
case WM_CREATE:
|
case WM_CREATE:
|
||||||
PostMessageW(hwnd, WM_COMMAND, ID_IGNITION, 0);
|
|
||||||
return DefWindowProcW(hwnd, uMsg, wParam, lParam);
|
|
||||||
case WM_COMMAND:
|
|
||||||
if (hwnd != s_hwndHookViewer)
|
|
||||||
break;
|
|
||||||
|
|
||||||
if (ID_IGNITION <= wParam && wParam < ID_BURNING)
|
|
||||||
{
|
|
||||||
INT i = (INT)wParam - ID_IGNITION;
|
|
||||||
DoTestEntryPart1(&s_entries1[i]);
|
|
||||||
PostMessageW(hwnd, WM_COMMAND, ID_BURNING + i, 0);
|
|
||||||
}
|
|
||||||
else if (ID_BURNING <= wParam && wParam < ID_RUDEAPPTEST1)
|
|
||||||
{
|
|
||||||
INT i = (INT)wParam - ID_BURNING;
|
|
||||||
DoTestEntryPart2(&s_entries1[i]);
|
|
||||||
++i;
|
|
||||||
if (i == (INT)_countof(s_entries1))
|
|
||||||
{
|
|
||||||
PostMessageW(hwnd, WM_COMMAND, ID_RUDEAPPTEST1, 0);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
PostMessageW(hwnd, WM_COMMAND, ID_IGNITION + i, 0);
|
|
||||||
}
|
|
||||||
else if (ID_RUDEAPPTEST1 <= wParam && wParam < ID_RUDEAPPTEST2)
|
|
||||||
{
|
|
||||||
INT i = (INT)wParam - ID_RUDEAPPTEST1;
|
|
||||||
DoRudeAppTest1(&s_entries2[i]);
|
|
||||||
PostMessageW(hwnd, WM_COMMAND, ID_RUDEAPPTEST2 + i, 0);
|
|
||||||
}
|
|
||||||
else if (ID_RUDEAPPTEST2 <= wParam)
|
|
||||||
{
|
|
||||||
INT i = (INT)wParam - ID_RUDEAPPTEST2;
|
|
||||||
DoRudeAppTest2(&s_entries2[i]);
|
|
||||||
++i;
|
|
||||||
if (i == (INT)_countof(s_entries2))
|
|
||||||
{
|
|
||||||
PostQuitMessage(0);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
PostMessageW(hwnd, WM_COMMAND, ID_RUDEAPPTEST1 + i, 0);
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return DefWindowProcW(hwnd, uMsg, wParam, lParam);
|
return DefWindowProcW(hwnd, uMsg, wParam, lParam);
|
||||||
|
@ -536,14 +405,11 @@ WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||||
|
|
||||||
START_TEST(ShellHook)
|
START_TEST(ShellHook)
|
||||||
{
|
{
|
||||||
WNDCLASSW wc;
|
WNDCLASSW wc = { CS_HREDRAW | CS_VREDRAW, WindowProc };
|
||||||
|
|
||||||
ZeroMemory(&wc, sizeof(wc));
|
|
||||||
wc.lpfnWndProc = WindowProc;
|
|
||||||
wc.hInstance = GetModuleHandleW(NULL);
|
wc.hInstance = GetModuleHandleW(NULL);
|
||||||
wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
|
wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
|
||||||
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
|
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
|
||||||
wc.hbrBackground = (HBRUSH)(COLOR_3DFACE + 1);
|
wc.hbrBackground = (HBRUSH)(INT_PTR)(COLOR_3DFACE + 1);
|
||||||
wc.lpszClassName = s_szName;
|
wc.lpszClassName = s_szName;
|
||||||
if (!RegisterClassW(&wc))
|
if (!RegisterClassW(&wc))
|
||||||
{
|
{
|
||||||
|
@ -551,24 +417,33 @@ START_TEST(ShellHook)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
s_hwndHookViewer = DoCreateWindow(NULL, WS_OVERLAPPEDWINDOW | WS_VISIBLE, 0);
|
s_hShellHook = SetWindowsHookEx(WH_SHELL, ShellProc, NULL, GetCurrentThreadId());
|
||||||
if (s_hwndHookViewer == NULL)
|
if (!s_hShellHook)
|
||||||
{
|
{
|
||||||
skip("CreateWindowExW failed\n");
|
skip("!s_hShellHook\n");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
s_uShellHookMsg = RegisterWindowMessageW(L"SHELLHOOK");
|
s_hwndMain = CreateDialogW(GetModuleHandleW(NULL), L"ShellHook", NULL, DialogProc);
|
||||||
RegisterShellHookWindow(s_hwndHookViewer);
|
if (!s_hShellHook)
|
||||||
|
{
|
||||||
|
skip("!s_hwndMain\n");
|
||||||
|
UnhookWindowsHookEx(s_hShellHook);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
ShowWindow(s_hwndMain, SW_SHOWNOACTIVATE);
|
||||||
|
UpdateWindow(s_hwndMain);
|
||||||
|
|
||||||
MSG msg;
|
MSG msg;
|
||||||
while (GetMessageW(&msg, NULL, 0, 0))
|
while (GetMessageW(&msg, NULL, 0, 0))
|
||||||
{
|
{
|
||||||
|
if (IsDialogMessageW(s_hwndMain, &msg))
|
||||||
|
continue;
|
||||||
|
|
||||||
TranslateMessage(&msg);
|
TranslateMessage(&msg);
|
||||||
DispatchMessageW(&msg);
|
DispatchMessageW(&msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
DeregisterShellHookWindow(s_hwndHookViewer);
|
UnhookWindowsHookEx(s_hShellHook);
|
||||||
DestroyWindow(s_hwndHookViewer);
|
|
||||||
s_hwndHookViewer = NULL;
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,3 +16,10 @@ FONT 9, "Tahoma"
|
||||||
CONTROL "edt1", edt1, "EDIT", ES_AUTOHSCROLL | ES_MULTILINE | WS_BORDER | WS_TABSTOP, 19, 18, 80, 14
|
CONTROL "edt1", edt1, "EDIT", ES_AUTOHSCROLL | ES_MULTILINE | WS_BORDER | WS_TABSTOP, 19, 18, 80, 14
|
||||||
LTEXT "stc1", stc1, 24, 49, 72, 21
|
LTEXT "stc1", stc1, 24, 49, 72, 21
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ShellHook DIALOG 0, 0, 200, 84
|
||||||
|
CAPTION "ReactOS ShellHook test dialog"
|
||||||
|
STYLE DS_MODALFRAME | WS_POPUPWINDOW | WS_CAPTION
|
||||||
|
FONT 9, "Tahoma"
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue