ReactOS 0.4.15-dev-7934-g1dc8d80
msgtrace.h
Go to the documentation of this file.
1#ifndef APITESTS_MSGTRACE_H
2#define APITESTS_MSGTRACE_H
3
4typedef enum _MSG_TYPE
5{
11 MARKER
13
14typedef struct _MSG_ENTRY
15{
16 int iwnd;
19 int param1;
20 int param2;
22
23typedef struct _MSG_CACHE
24{
27 int count;
29
30extern MSG_ENTRY empty_chain[];
32
33void record_message(MSG_CACHE* cache, int iwnd, UINT message, MSG_TYPE type, int param1,int param2);
34void compare_cache(MSG_CACHE* cache, const char* file, int line, MSG_ENTRY *msg_chain);
35void trace_cache(MSG_CACHE* cache, const char* file, int line);
37
38/* filter messages that are affected by dwm */
39static inline BOOL IsDWmMsg(UINT msg)
40{
41 switch(msg)
42 {
43 case WM_NCPAINT:
44 case WM_ERASEBKGND:
45 case WM_PAINT:
46 case 0x031f: /*WM_DWMNCRENDERINGCHANGED*/
47 return TRUE;
48 }
49 return FALSE;
50}
51
52static inline BOOL IseKeyMsg(UINT msg)
53{
54 return (msg == WM_KEYUP || msg == WM_KEYDOWN);
55}
56
57#define COMPARE_CACHE(msg_chain) compare_cache(&default_cache, __FILE__, __LINE__, msg_chain)
58#define TRACE_CACHE() trace_cache(&default_cache, __FILE__, __LINE__)
59#define EMPTY_CACHE() empty_message_cache(&default_cache);
60#define RECORD_MESSAGE(...) record_message(&default_cache, ##__VA_ARGS__);
61
62#define COMPARE_CACHE_(cache, msg_chain) compare_cache(cache, __FILE__, __LINE__, msg_chain)
63#define TRACE_CACHE_(cache) trace_cache(cache, __FILE__, __LINE__)
64#define EMPTY_CACHE_(cache) empty_message_cache(cache);
65
66#define EXPECT_QUEUE_STATUS(expected, notexpected) \
67 { \
68 DWORD status = HIWORD(GetQueueStatus(QS_ALLEVENTS)); \
69 ok(((status) & (expected))== (expected),"wrong queue status. expected %li, and got %li\n", (DWORD)(expected), status); \
70 if(notexpected) \
71 ok((status & (notexpected))!=(notexpected), "wrong queue status. got non expected %li\n", (DWORD)(notexpected)); \
72 }
73
74#endif
#define msg(x)
Definition: auth_time.c:54
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
unsigned int BOOL
Definition: ntddk_ex.h:94
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
MSG_ENTRY empty_chain[]
Definition: msgtrace.c:20
enum _MSG_TYPE MSG_TYPE
void trace_cache(MSG_CACHE *cache, const char *file, int line)
Definition: msgtrace.c:130
void record_message(MSG_CACHE *cache, int iwnd, UINT message, MSG_TYPE type, int param1, int param2)
Definition: msgtrace.c:179
static BOOL IsDWmMsg(UINT msg)
Definition: msgtrace.h:39
MSG_CACHE default_cache
Definition: msgtrace.c:15
void compare_cache(MSG_CACHE *cache, const char *file, int line, MSG_ENTRY *msg_chain)
Definition: msgtrace.c:143
_MSG_TYPE
Definition: msgtrace.h:5
@ EVENT
Definition: msgtrace.h:9
@ POST
Definition: msgtrace.h:7
@ HOOK
Definition: msgtrace.h:8
@ MARKER
Definition: msgtrace.h:11
@ SENT_RET
Definition: msgtrace.h:10
@ SENT
Definition: msgtrace.h:6
static BOOL IseKeyMsg(UINT msg)
Definition: msgtrace.h:52
struct _MSG_CACHE MSG_CACHE
struct _MSG_ENTRY MSG_ENTRY
void empty_message_cache(MSG_CACHE *cache)
Definition: msgtrace.c:83
unsigned int UINT
Definition: ndis.h:50
MSG_ENTRY message_cache[100]
Definition: msgtrace.h:26
MSG_ENTRY last_post_message
Definition: msgtrace.h:25
int count
Definition: msgtrace.h:27
Definition: msgtrace.h:15
int iwnd
Definition: msgtrace.h:16
UINT msg
Definition: msgtrace.h:17
MSG_TYPE type
Definition: msgtrace.h:18
int param2
Definition: msgtrace.h:20
int param1
Definition: msgtrace.h:19
Definition: cache.c:49
Definition: fci.c:127
Definition: parser.c:49
Definition: tftpd.h:60
#define WM_PAINT
Definition: winuser.h:1620
#define WM_ERASEBKGND
Definition: winuser.h:1625
#define WM_KEYUP
Definition: winuser.h:1716
#define WM_KEYDOWN
Definition: winuser.h:1715
#define WM_NCPAINT
Definition: winuser.h:1687