Author: gadamopoulos
Date: Tue Mar  7 22:29:48 2017
New Revision: 74123
URL: 
http://svn.reactos.org/svn/reactos?rev=74123&view=rev
Log:
[USER32_APITEST] -Move the helper functions in the common include directory
[UXTHEME_APITEST] -Use the helper functions to test the messages sent by
DrawThemeParentBackground
Added:
    trunk/rostests/apitests/include/msgtrace.c
      - copied, changed from r74111, trunk/rostests/apitests/user32/helper.c
    trunk/rostests/apitests/include/msgtrace.h
      - copied, changed from r74111, trunk/rostests/apitests/user32/helper.h
    trunk/rostests/apitests/include/user32testhelpers.h   (with props)
    trunk/rostests/apitests/uxtheme/
    trunk/rostests/apitests/uxtheme/CMakeLists.txt   (with props)
    trunk/rostests/apitests/uxtheme/DrawThemeParentBackground.c   (with props)
    trunk/rostests/apitests/uxtheme/testlist.c   (with props)
Removed:
    trunk/rostests/apitests/user32/helper.c
    trunk/rostests/apitests/user32/helper.h
Modified:
    trunk/rostests/apitests/CMakeLists.txt
    trunk/rostests/apitests/user32/AttachThreadInput.c
    trunk/rostests/apitests/user32/CMakeLists.txt
    trunk/rostests/apitests/user32/DeferWindowPos.c
    trunk/rostests/apitests/user32/GetDCEx.c
    trunk/rostests/apitests/user32/RegisterClassEx.c
    trunk/rostests/apitests/user32/SendMessageTimeout.c
    trunk/rostests/apitests/user32/SetActiveWindow.c
    trunk/rostests/apitests/user32/SetParent.c
    trunk/rostests/apitests/user32/SetProp.c
    trunk/rostests/apitests/user32/SystemParametersInfo.c
    trunk/rostests/apitests/user32/TrackMouseEvent.c
    trunk/rostests/apitests/user32/desktop.c
Modified: trunk/rostests/apitests/CMakeLists.txt
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/CMakeLists.txt?r…
==============================================================================
--- trunk/rostests/apitests/CMakeLists.txt      [iso-8859-1] (original)
+++ trunk/rostests/apitests/CMakeLists.txt      [iso-8859-1] Tue Mar  7 22:29:48 2017
@@ -34,6 +34,7 @@
 add_subdirectory(user32)
 add_subdirectory(user32_dynamic)
 add_subdirectory(userenv)
+add_subdirectory(uxtheme)
 if(NOT ARCH STREQUAL "amd64" AND NOT CMAKE_BUILD_TYPE STREQUAL
"Release")
     add_subdirectory(win32kdll)
     add_subdirectory(win32nt)
Copied: trunk/rostests/apitests/include/msgtrace.c (from r74111,
trunk/rostests/apitests/user32/helper.c)
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/include/msgtrace…
==============================================================================
--- trunk/rostests/apitests/user32/helper.c     [iso-8859-1] (original)
+++ trunk/rostests/apitests/include/msgtrace.c  [iso-8859-1] Tue Mar  7 22:29:48 2017
@@ -9,7 +9,7 @@
 #include <stdio.h>
 #include <winuser.h>
-#include "helper.h"
+#include <msgtrace.h>
 #include <undocuser.h>
 MSG_CACHE default_cache = {
@@ -58,6 +58,10 @@
         case WM_SETICON: return "WM_SETICON";
         case WM_KEYDOWN: return "WM_KEYDOWN";
         case WM_KEYUP: return "WM_KEYUP";
+        case WM_NOTIFY: return "WM_NOTIFY";
+        case WM_COMMAND: return "WM_COMMAND";
+        case WM_PRINTCLIENT: return "WM_PRINTCLIENT";
+        case WM_CTLCOLORSTATIC: return "WM_CTLCOLORSTATIC";
         default: return NULL;
     }
 }
@@ -203,16 +207,3 @@
     cache->count++;
 }
-
-ATOM RegisterSimpleClass(WNDPROC lpfnWndProc, LPCWSTR lpszClassName)
-{
-    WNDCLASSEXW wcex;
-
-    memset(&wcex, 0, sizeof(wcex));
-    wcex.cbSize = sizeof(WNDCLASSEX);
-    wcex.lpfnWndProc    = lpfnWndProc;
-    wcex.hCursor        = LoadCursor(NULL, IDC_ARROW);
-    wcex.hbrBackground  = (HBRUSH)(COLOR_WINDOW+1);
-    wcex.lpszClassName  = lpszClassName;
-    return RegisterClassExW(&wcex);
-}
Copied: trunk/rostests/apitests/include/msgtrace.h (from r74111,
trunk/rostests/apitests/user32/helper.h)
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/include/msgtrace…
==============================================================================
--- trunk/rostests/apitests/user32/helper.h     [iso-8859-1] (original)
+++ trunk/rostests/apitests/include/msgtrace.h  [iso-8859-1] Tue Mar  7 22:29:48 2017
@@ -1,3 +1,5 @@
+#ifndef APITESTS_MSGTRACE_H
+#define APITESTS_MSGTRACE_H
 typedef enum _MSG_TYPE
 {
@@ -30,8 +32,6 @@
 void compare_cache(MSG_CACHE* cache, const char* file, int line, MSG_ENTRY *msg_chain);
 void trace_cache(MSG_CACHE* cache, const char* file, int line);
 void empty_message_cache(MSG_CACHE* cache);
-
-ATOM RegisterSimpleClass(WNDPROC lpfnWndProc, LPCWSTR lpszClassName);
 /* filter messages that are affected by dwm */
 static inline BOOL IsDWmMsg(UINT msg)
@@ -68,3 +68,5 @@
         if(notexpected)
\
             ok((status & (notexpected))!=(notexpected), "wrong queue status. got
non expected %li\n", (DWORD)(notexpected));    \
     }
+
+#endif
Added: trunk/rostests/apitests/include/user32testhelpers.h
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/include/user32te…
==============================================================================
--- trunk/rostests/apitests/include/user32testhelpers.h (added)
+++ trunk/rostests/apitests/include/user32testhelpers.h [iso-8859-1] Tue Mar  7 22:29:48
2017
@@ -0,0 +1,13 @@
+
+static __inline ATOM RegisterSimpleClass(WNDPROC lpfnWndProc, LPCWSTR lpszClassName)
+{
+    WNDCLASSEXW wcex;
+
+    memset(&wcex, 0, sizeof(wcex));
+    wcex.cbSize = sizeof(WNDCLASSEX);
+    wcex.lpfnWndProc    = lpfnWndProc;
+    wcex.hCursor        = LoadCursor(NULL, IDC_ARROW);
+    wcex.hbrBackground  = (HBRUSH)(COLOR_WINDOW+1);
+    wcex.lpszClassName  = lpszClassName;
+    return RegisterClassExW(&wcex);
+}
Propchange: trunk/rostests/apitests/include/user32testhelpers.h
------------------------------------------------------------------------------
    svn:eol-style = native
Modified: trunk/rostests/apitests/user32/AttachThreadInput.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/user32/AttachThr…
==============================================================================
--- trunk/rostests/apitests/user32/AttachThreadInput.c  [iso-8859-1] (original)
+++ trunk/rostests/apitests/user32/AttachThreadInput.c  [iso-8859-1] Tue Mar  7 22:29:48
2017
@@ -9,7 +9,8 @@
 #include <wingdi.h>
 #include <winuser.h>
-#include "helper.h"
+#include <msgtrace.h>
+#include <user32testhelpers.h>
 #define DESKTOP_ALL_ACCESS 0x01ff
Modified: trunk/rostests/apitests/user32/CMakeLists.txt
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/user32/CMakeList…
==============================================================================
--- trunk/rostests/apitests/user32/CMakeLists.txt       [iso-8859-1] (original)
+++ trunk/rostests/apitests/user32/CMakeLists.txt       [iso-8859-1] Tue Mar  7 22:29:48
2017
@@ -1,7 +1,7 @@
 list(APPEND SOURCE
     AttachThreadInput.c
-    helper.c
+    ../include/msgtrace.c
     CreateDialog.c
     CreateIconFromResourceEx.c
     CreateWindowEx.c
Modified: trunk/rostests/apitests/user32/DeferWindowPos.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/user32/DeferWind…
==============================================================================
--- trunk/rostests/apitests/user32/DeferWindowPos.c     [iso-8859-1] (original)
+++ trunk/rostests/apitests/user32/DeferWindowPos.c     [iso-8859-1] Tue Mar  7 22:29:48
2017
@@ -8,8 +8,9 @@
 #include <apitest.h>
 #include <winuser.h>
-#include "helper.h"
 #include <undocuser.h>
+#include <msgtrace.h>
+#include <user32testhelpers.h>
 HWND hWnd1, hWnd2, hWnd3, hWnd4;
Modified: trunk/rostests/apitests/user32/GetDCEx.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/user32/GetDCEx.c…
==============================================================================
--- trunk/rostests/apitests/user32/GetDCEx.c    [iso-8859-1] (original)
+++ trunk/rostests/apitests/user32/GetDCEx.c    [iso-8859-1] Tue Mar  7 22:29:48 2017
@@ -8,7 +8,6 @@
 #include <stdio.h>
 #include <wine/test.h>
 #include <windows.h>
-#include "helper.h"
 #define DCX_USESTYLE 0x00010000
Modified: trunk/rostests/apitests/user32/RegisterClassEx.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/user32/RegisterC…
==============================================================================
--- trunk/rostests/apitests/user32/RegisterClassEx.c    [iso-8859-1] (original)
+++ trunk/rostests/apitests/user32/RegisterClassEx.c    [iso-8859-1] Tue Mar  7 22:29:48
2017
@@ -12,7 +12,6 @@
 #include <wchar.h>
 #include <wingdi.h>
 #include <winuser.h>
-#include "helper.h"
 #include <undocuser.h>
 static ATOM _RegisterClass(LPCWSTR lpwszClassName, HINSTANCE hInstance, UINT style,
WNDPROC lpfnWndProc)
Modified: trunk/rostests/apitests/user32/SendMessageTimeout.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/user32/SendMessa…
==============================================================================
--- trunk/rostests/apitests/user32/SendMessageTimeout.c [iso-8859-1] (original)
+++ trunk/rostests/apitests/user32/SendMessageTimeout.c [iso-8859-1] Tue Mar  7 22:29:48
2017
@@ -7,7 +7,9 @@
 #include <apitest.h>
 #include <winuser.h>
-#include "helper.h"
+
+#include <msgtrace.h>
+#include <user32testhelpers.h>
 static DWORD dwThread1;
 static DWORD dwThread2;
Modified: trunk/rostests/apitests/user32/SetActiveWindow.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/user32/SetActive…
==============================================================================
--- trunk/rostests/apitests/user32/SetActiveWindow.c    [iso-8859-1] (original)
+++ trunk/rostests/apitests/user32/SetActiveWindow.c    [iso-8859-1] Tue Mar  7 22:29:48
2017
@@ -9,8 +9,10 @@
 #include <wingdi.h>
 #include <winuser.h>
-#include "helper.h"
 #include <undocuser.h>
+
+#include <msgtrace.h>
+#include <user32testhelpers.h>
 HWND hWnd1, hWnd2;
Modified: trunk/rostests/apitests/user32/SetParent.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/user32/SetParent…
==============================================================================
--- trunk/rostests/apitests/user32/SetParent.c  [iso-8859-1] (original)
+++ trunk/rostests/apitests/user32/SetParent.c  [iso-8859-1] Tue Mar  7 22:29:48 2017
@@ -8,7 +8,8 @@
 #include <apitest.h>
 #include <winuser.h>
-#include "helper.h"
+#include <msgtrace.h>
+#include <user32testhelpers.h>
 static HWND hWndList[5 + 1];
 static const int hWndCount = sizeof(hWndList) / sizeof(hWndList[0]) - 1;
Modified: trunk/rostests/apitests/user32/SetProp.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/user32/SetProp.c…
==============================================================================
--- trunk/rostests/apitests/user32/SetProp.c    [iso-8859-1] (original)
+++ trunk/rostests/apitests/user32/SetProp.c    [iso-8859-1] Tue Mar  7 22:29:48 2017
@@ -6,9 +6,8 @@
  */
 #include <apitest.h>
-
 #include <winuser.h>
-#include "helper.h"
+#include <user32testhelpers.h>
 static ATOM Atom1, Atom2, Atom3;
Modified: trunk/rostests/apitests/user32/SystemParametersInfo.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/user32/SystemPar…
==============================================================================
--- trunk/rostests/apitests/user32/SystemParametersInfo.c       [iso-8859-1] (original)
+++ trunk/rostests/apitests/user32/SystemParametersInfo.c       [iso-8859-1] Tue Mar  7
22:29:48 2017
@@ -9,8 +9,10 @@
 #include <wingdi.h>
 #include <winuser.h>
-#include "helper.h"
 #include <undocuser.h>
+
+#include <msgtrace.h>
+#include <user32testhelpers.h>
 HWND hWnd1, hWnd2;
Modified: trunk/rostests/apitests/user32/TrackMouseEvent.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/user32/TrackMous…
==============================================================================
--- trunk/rostests/apitests/user32/TrackMouseEvent.c    [iso-8859-1] (original)
+++ trunk/rostests/apitests/user32/TrackMouseEvent.c    [iso-8859-1] Tue Mar  7 22:29:48
2017
@@ -6,11 +6,12 @@
  */
 #include <apitest.h>
-
 #include <wingdi.h>
 #include <winuser.h>
-#include "helper.h"
 #include <undocuser.h>
+
+#include <msgtrace.h>
+#include <user32testhelpers.h>
 HWND hWnd1, hWnd2, hWnd3;
 HHOOK hMouseHookLL, hMouseHook;
Modified: trunk/rostests/apitests/user32/desktop.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/user32/desktop.c…
==============================================================================
--- trunk/rostests/apitests/user32/desktop.c    [iso-8859-1] (original)
+++ trunk/rostests/apitests/user32/desktop.c    [iso-8859-1] Tue Mar  7 22:29:48 2017
@@ -12,7 +12,7 @@
 #include <stdio.h>
 #include <wingdi.h>
 #include <winuser.h>
-#include "helper.h"
+#include <user32testhelpers.h>
 #include <ndk/umtypes.h>
 #include <ndk/obfuncs.h>
Removed: trunk/rostests/apitests/user32/helper.c
URL: 
http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/user32/helper.c?…
==============================================================================
--- trunk/rostests/apitests/user32/helper.c     [iso-8859-1] (original)
+++ trunk/rostests/apitests/user32/helper.c     (removed)
@@ -1,218 +0,0 @@
-/*
- * PROJECT:         ReactOS api tests
- * LICENSE:         GPL - See COPYING in the top level directory
- * PURPOSE:         helper functions
- * PROGRAMMERS:     Giannis Adamopoulos
- */
-
-#include <apitest.h>
-
-#include <stdio.h>
-#include <winuser.h>
-#include "helper.h"
-#include <undocuser.h>
-
-MSG_CACHE default_cache = {
-#ifdef _MSC_VER
-    0
-#endif
-};
-MSG_ENTRY empty_chain[]= {{0,0}};
-
-static char* get_msg_name(UINT msg)
-{
-    switch(msg)
-    {
-        case WM_CREATE: return "WM_CREATE";
-        case WM_NCCREATE: return "WM_NCCREATE";
-        case WM_PARENTNOTIFY: return "WM_PARENTNOTIFY";
-        case WM_DESTROY: return "WM_DESTROY";
-        case WM_NCDESTROY: return "WM_NCDESTROY";
-        case WM_CHILDACTIVATE: return "WM_CHILDACTIVATE";
-        case WM_NCACTIVATE: return "WM_NCACTIVATE";
-        case WM_ACTIVATE: return "WM_ACTIVATE";
-        case WM_ACTIVATEAPP: return "WM_ACTIVATEAPP";
-        case WM_WINDOWPOSCHANGING: return "WM_WINDOWPOSCHANGING";
-        case WM_WINDOWPOSCHANGED: return "WM_WINDOWPOSCHANGED";
-        case WM_SETFOCUS: return "WM_SETFOCUS";
-        case WM_KILLFOCUS: return "WM_KILLFOCUS";
-        case WM_NCPAINT: return "WM_NCPAINT";
-        case WM_PAINT: return "WM_PAINT";
-        case WM_ERASEBKGND: return "WM_ERASEBKGND";
-        case WM_SIZE: return "WM_SIZE";
-        case WM_MOVE: return "WM_MOVE";
-        case WM_SHOWWINDOW: return "WM_SHOWWINDOW";
-        case WM_QUERYNEWPALETTE: return "WM_QUERYNEWPALETTE";
-        case WM_MOUSELEAVE: return "WM_MOUSELEAVE";
-        case WM_MOUSEHOVER: return "WM_MOUSEHOVER";
-        case WM_NCMOUSELEAVE: return "WM_NCMOUSELEAVE";
-        case WM_NCMOUSEHOVER: return "WM_NCMOUSEHOVER";
-        case WM_NCHITTEST: return "WM_NCHITTEST";
-        case WM_SETCURSOR: return "WM_SETCURSOR";
-        case WM_MOUSEMOVE: return "WM_MOUSEMOVE";
-        case WM_SYSTIMER: return "WM_SYSTIMER";
-        case WM_GETMINMAXINFO: return "WM_GETMINMAXINFO";
-        case WM_NCCALCSIZE: return "WM_NCCALCSIZE";
-        case WM_SETTINGCHANGE: return "WM_SETTINGCHANGE";
-        case WM_GETICON: return "WM_GETICON";
-        case WM_SETICON: return "WM_SETICON";
-        case WM_KEYDOWN: return "WM_KEYDOWN";
-        case WM_KEYUP: return "WM_KEYUP";
-        default: return NULL;
-    }
-}
-
-static char* get_hook_name(UINT id)
-{
-    switch (id)
-    {
-        case WH_KEYBOARD: return "WH_KEYBOARD";
-        case WH_KEYBOARD_LL: return "WH_KEYBOARD_LL";
-        case WH_MOUSE: return "WH_MOUSE";
-        case WH_MOUSE_LL: return "WH_MOUSE_LL";
-        default: return NULL;
-    }
-}
-
-void empty_message_cache(MSG_CACHE* cache)
-{
-    memset(cache, 0, sizeof(MSG_CACHE));
-}
-
-void sprintf_msg_entry(char* buffer, MSG_ENTRY* msg)
-{
-    if(!msg->iwnd && !msg->msg)
-    {
-        sprintf(buffer, "nothing");
-    }
-    else
-    {
-        char* msgName;
-        char* msgType;
-
-        switch (msg->type)
-        {
-        case POST:
-            msgName = get_msg_name(msg->msg);
-            msgType = "post msg";
-            break;
-        case SENT:
-            msgName = get_msg_name(msg->msg);
-            msgType = "sent msg";
-            break;
-        case HOOK:
-            msgName = get_hook_name(msg->msg);
-            msgType = "hook";
-            break;
-        case EVENT:
-            msgName = NULL;
-            msgType = "event";
-            break;
-        default:
-            return;
-        }
-
-        if(msgName)
-            sprintf(buffer, "hwnd%d %s %s %d %d", msg->iwnd, msgType,
msgName, msg->param1, msg->param2);
-        else
-            sprintf(buffer, "hwnd%d %s %d %d %d", msg->iwnd, msgType,
msg->msg, msg->param1, msg->param2);
-    }
-}
-
-void trace_cache(MSG_CACHE* cache, const char* file, int line)
-{
-    int i;
-    char buff[100];
-
-    for (i=0; i < cache->count; i++)
-    {
-        sprintf_msg_entry(buff, &cache->message_cache[i]);
-        trace_(file,line)("%d: %s\n", i, buff);
-    }
-    trace_(file,line)("\n");
-}
-
-void compare_cache(MSG_CACHE* cache, const char* file, int line, MSG_ENTRY *msg_chain)
-{
-    int i = 0;
-    char buffGot[100], buffExp[100];
-    BOOL got_error = FALSE;
-
-    while(1)
-    {
-        BOOL same = !memcmp(&cache->message_cache[i],msg_chain,
sizeof(MSG_ENTRY));
-
-        sprintf_msg_entry(buffGot, &cache->message_cache[i]);
-        sprintf_msg_entry(buffExp, msg_chain);
-        ok_(file,line)(same,"%d: got %s, expected %s\n",i, buffGot, buffExp);
-
-        if(!got_error && !same)
-            got_error = TRUE;
-
-        if(msg_chain->msg !=0 || msg_chain->iwnd != 0)
-            msg_chain++;
-        else
-        {
-            if(i > cache->count)
-                break;
-        }
-        i++;
-    }
-
-    if(got_error )
-    {
-        trace_(file,line)("The complete list of messages got is:\n");
-        trace_cache(cache, file,line);
-    }
-
-    empty_message_cache(cache);
-}
-
-void record_message(MSG_CACHE* cache, int iwnd, UINT message, MSG_TYPE type, int
param1,int param2)
-{
-    if(cache->count >= 100)
-    {
-        return;
-    }
-
-    /* do not report a post message a second time */
-    if(type == SENT &&
-       cache->last_post_message.iwnd == iwnd &&
-       cache->last_post_message.msg == message &&
-       cache->last_post_message.param1 == param1 &&
-       cache->last_post_message.param2 == param2)
-    {
-        memset(&cache->last_post_message, 0, sizeof(MSG_ENTRY));
-        return;
-    }
-
-    cache->message_cache[cache->count].iwnd = iwnd;
-    cache->message_cache[cache->count].msg = message;
-    cache->message_cache[cache->count].type = type;
-    cache->message_cache[cache->count].param1 = param1;
-    cache->message_cache[cache->count].param2 = param2;
-
-    if(cache->message_cache[cache->count].type == POST)
-    {
-        cache->last_post_message = cache->message_cache[cache->count];
-    }
-    else
-    {
-        memset(&cache->last_post_message, 0, sizeof(MSG_ENTRY));
-    }
-
-    cache->count++;
-}
-
-ATOM RegisterSimpleClass(WNDPROC lpfnWndProc, LPCWSTR lpszClassName)
-{
-    WNDCLASSEXW wcex;
-
-    memset(&wcex, 0, sizeof(wcex));
-    wcex.cbSize = sizeof(WNDCLASSEX);
-    wcex.lpfnWndProc    = lpfnWndProc;
-    wcex.hCursor        = LoadCursor(NULL, IDC_ARROW);
-    wcex.hbrBackground  = (HBRUSH)(COLOR_WINDOW+1);
-    wcex.lpszClassName  = lpszClassName;
-    return RegisterClassExW(&wcex);
-}
Removed: trunk/rostests/apitests/user32/helper.h
URL: 
http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/user32/helper.h?…
==============================================================================
--- trunk/rostests/apitests/user32/helper.h     [iso-8859-1] (original)
+++ trunk/rostests/apitests/user32/helper.h     (removed)
@@ -1,70 +0,0 @@
-
-typedef enum _MSG_TYPE
-{
-    SENT,
-    POST,
-    HOOK,
-    EVENT
-} MSG_TYPE;
-
-typedef struct _MSG_ENTRY
-{
-    int iwnd;
-    UINT msg;
-    MSG_TYPE type;
-    int param1;
-    int param2;
-} MSG_ENTRY;
-
-typedef struct _MSG_CACHE
-{
-    MSG_ENTRY last_post_message;
-    MSG_ENTRY message_cache[100];
-    int count;
-} MSG_CACHE;
-
-extern MSG_ENTRY empty_chain[];
-extern MSG_CACHE default_cache;
-
-void record_message(MSG_CACHE* cache, int iwnd, UINT message, MSG_TYPE type, int
param1,int param2);
-void compare_cache(MSG_CACHE* cache, const char* file, int line, MSG_ENTRY *msg_chain);
-void trace_cache(MSG_CACHE* cache, const char* file, int line);
-void empty_message_cache(MSG_CACHE* cache);
-
-ATOM RegisterSimpleClass(WNDPROC lpfnWndProc, LPCWSTR lpszClassName);
-
-/* filter messages that are affected by dwm */
-static inline BOOL IsDWmMsg(UINT msg)
-{
-    switch(msg)
-    {
-    case WM_NCPAINT:
-    case WM_ERASEBKGND:
-    case WM_PAINT:
-    case 0x031f:  /*WM_DWMNCRENDERINGCHANGED*/
-        return TRUE;
-    }
-    return FALSE;
-}
-
-static inline BOOL IseKeyMsg(UINT msg)
-{
-    return (msg == WM_KEYUP || msg == WM_KEYDOWN);
-}
-
-#define COMPARE_CACHE(msg_chain) compare_cache(&default_cache, __FILE__, __LINE__,
msg_chain)
-#define TRACE_CACHE() trace_cache(&default_cache, __FILE__, __LINE__)
-#define EMPTY_CACHE() empty_message_cache(&default_cache);
-#define RECORD_MESSAGE(...) record_message(&default_cache, ##__VA_ARGS__);
-
-#define COMPARE_CACHE_(cache, msg_chain) compare_cache(cache, __FILE__, __LINE__,
msg_chain)
-#define TRACE_CACHE_(cache) trace_cache(cache, __FILE__, __LINE__)
-#define EMPTY_CACHE_(cache) empty_message_cache(cache);
-
-#define EXPECT_QUEUE_STATUS(expected, notexpected)
\
-    {
\
-        DWORD status = HIWORD(GetQueueStatus(QS_ALLEVENTS));
\
-        ok(((status) & (expected))== (expected),"wrong queue status. expected
%li, and got %li\n", (DWORD)(expected), status);  \
-        if(notexpected)
\
-            ok((status & (notexpected))!=(notexpected), "wrong queue status. got
non expected %li\n", (DWORD)(notexpected));    \
-    }
Added: trunk/rostests/apitests/uxtheme/CMakeLists.txt
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/uxtheme/CMakeLis…
==============================================================================
--- trunk/rostests/apitests/uxtheme/CMakeLists.txt      (added)
+++ trunk/rostests/apitests/uxtheme/CMakeLists.txt      [iso-8859-1] Tue Mar  7 22:29:48
2017
@@ -0,0 +1,11 @@
+
+list(APPEND SOURCE
+    DrawThemeParentBackground.c
+    ../include/msgtrace.c
+    testlist.c)
+
+add_executable(uxtheme_apitest ${SOURCE})
+target_link_libraries(uxtheme_apitest wine ${PSEH_LIB})
+set_module_type(uxtheme_apitest win32cui)
+add_importlibs(uxtheme_apitest uxtheme comctl32 user32 msvcrt kernel32)
+add_rostests_file(TARGET uxtheme_apitest)
Propchange: trunk/rostests/apitests/uxtheme/CMakeLists.txt
------------------------------------------------------------------------------
    svn:eol-style = native
Added: trunk/rostests/apitests/uxtheme/DrawThemeParentBackground.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/uxtheme/DrawThem…
==============================================================================
--- trunk/rostests/apitests/uxtheme/DrawThemeParentBackground.c (added)
+++ trunk/rostests/apitests/uxtheme/DrawThemeParentBackground.c [iso-8859-1] Tue Mar  7
22:29:48 2017
@@ -0,0 +1,105 @@
+/*
+ * PROJECT:         ReactOS api tests
+ * LICENSE:         GPL - See COPYING in the top level directory
+ * PURPOSE:         Test for DrawThemeParentBackground
+ * PROGRAMMERS:     Giannis Adamopoulos
+ */
+
+#include <apitest.h>
+#include <stdio.h>
+#include <windows.h>
+#include <uxtheme.h>
+#include <undocuser.h>
+#include <msgtrace.h>
+#include <user32testhelpers.h>
+
+HWND hWnd1, hWnd2;
+
+static int get_iwnd(HWND hWnd)
+{
+    if(hWnd == hWnd1) return 1;
+    else if(hWnd == hWnd2) return 2;
+    else return 0;
+}
+
+static LRESULT CALLBACK TestProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
+{
+    int iwnd = get_iwnd(hwnd);
+
+    if(message > WM_USER || !iwnd || message == WM_GETICON)
+        return DefWindowProc(hwnd, message, wParam, lParam);
+
+    RECORD_MESSAGE(iwnd, message, SENT, 0,0);
+    return DefWindowProc(hwnd, message, wParam, lParam);
+}
+
+static void FlushMessages()
+{
+    MSG msg;
+
+    while (PeekMessage( &msg, 0, 0, 0, PM_REMOVE ))
+    {
+        int iwnd = get_iwnd(msg.hwnd);
+        if(iwnd && msg.message <= WM_USER)
+            RECORD_MESSAGE(iwnd, msg.message, POST,0,0);
+        DispatchMessageW( &msg );
+    }
+}
+
+MSG_ENTRY draw_parent_chain[]={{1, WM_ERASEBKGND},
+                               {1, WM_PRINTCLIENT},
+                               {0,0}};
+
+void Test_Messages()
+{
+    HDC hdc;
+    RECT rc;
+
+    RegisterSimpleClass(TestProc, L"testClass");
+
+    hWnd1 = CreateWindowW(L"testClass", L"Test parent",
WS_OVERLAPPEDWINDOW | WS_VISIBLE, 100, 100, 200, 200, 0, NULL, NULL, NULL);
+    ok (hWnd1 != NULL, "Expected CreateWindowW to succeed\n");
+    ShowWindow(hWnd1, SW_SHOW);
+    UpdateWindow(hWnd1);
+
+    hWnd2 = CreateWindowW(L"testClass", L"test window", WS_CHILD |
WS_VISIBLE, 0, 0, 100, 100, hWnd1, NULL, NULL, NULL);
+    ok (hWnd2 != NULL, "Expected CreateWindowW to succeed\n");
+    ShowWindow(hWnd2, SW_SHOW);
+    UpdateWindow(hWnd2);
+
+    FlushMessages();
+    EMPTY_CACHE();
+
+    DrawThemeParentBackground(hWnd2, NULL, NULL);
+    FlushMessages();
+    COMPARE_CACHE(empty_chain);
+
+    DrawThemeParentBackground(hWnd1, NULL, NULL);
+    FlushMessages();
+    COMPARE_CACHE(empty_chain);
+
+    hdc = GetDC(hWnd1);
+
+    DrawThemeParentBackground(hWnd2, hdc, NULL);
+    FlushMessages();
+    COMPARE_CACHE(draw_parent_chain);
+
+    DrawThemeParentBackground(hWnd1, hdc, NULL);
+    FlushMessages();
+    COMPARE_CACHE(empty_chain);
+
+    memset(&rc, 0, sizeof(rc));
+
+    DrawThemeParentBackground(hWnd2, hdc, &rc);
+    FlushMessages();
+    COMPARE_CACHE(draw_parent_chain);
+
+    DrawThemeParentBackground(hWnd1, hdc, &rc);
+    FlushMessages();
+    COMPARE_CACHE(empty_chain);
+}
+
+START_TEST(DrawThemeParentBackground)
+{
+    Test_Messages();
+}
Propchange: trunk/rostests/apitests/uxtheme/DrawThemeParentBackground.c
------------------------------------------------------------------------------
    svn:eol-style = native
Added: trunk/rostests/apitests/uxtheme/testlist.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/uxtheme/testlist…
==============================================================================
--- trunk/rostests/apitests/uxtheme/testlist.c  (added)
+++ trunk/rostests/apitests/uxtheme/testlist.c  [iso-8859-1] Tue Mar  7 22:29:48 2017
@@ -0,0 +1,12 @@
+#define __ROS_LONG64__
+
+#define STANDALONE
+#include <apitest.h>
+
+extern void func_DrawThemeParentBackground(void);
+
+const struct test winetest_testlist[] =
+{
+    { "DrawThemeParentBackground", func_DrawThemeParentBackground },
+    { 0, 0 }
+};
Propchange: trunk/rostests/apitests/uxtheme/testlist.c
------------------------------------------------------------------------------
    svn:eol-style = native