ReactOS  0.4.14-dev-583-g2a1ba2c
msg.c File Reference
#include <assert.h>
#include <limits.h>
#include <stdarg.h>
#include <stdio.h>
#include "windef.h"
#include "winbase.h"
#include "wingdi.h"
#include "winuser.h"
#include "winnls.h"
#include "dbt.h"
#include "wine/test.h"
Include dependency graph for msg.c:

Go to the source code of this file.

Classes

struct  DRAW_ITEM_STRUCT
 
struct  MEASURE_ITEM_STRUCT
 
struct  message
 
struct  recvd_message
 
struct  wnd_event
 
struct  timer_info
 
struct  sendmsg_info
 
struct  peekmsg_info
 
struct  rbuttonup_thread_data
 
struct  layered_window_info
 

Macros

#define _WIN32_WINNT   0x0600 /* For WM_CHANGEUISTATE,QS_RAWINPUT,WM_DWMxxxx */
 
#define WINVER   0x0600 /* for WM_GETTITLEBARINFOEX */
 
#define MDI_FIRST_CHILD_ID   2004
 
#define SWP_NOCLIENTSIZE   0x0800
 
#define SWP_NOCLIENTMOVE   0x1000
 
#define SWP_STATECHANGED   0x8000
 
#define SW_NORMALNA   0xCC /* undoc. flag in MinMaximize */
 
#define WM_KEYF1   0x004d
 
#define WM_SYSTIMER   0x0118
 
#define WND_PARENT_ID   1
 
#define WND_POPUP_ID   2
 
#define WND_CHILD_ID   3
 
#define WM_LBTRACKPOINT   0x0131
 
#define ARCH   "none"
 
#define GET_PROC(dll, func)
 
#define DUMP(flag)   do { if (flags & flag) { strcat( buffer, "|" #flag ); flags &= ~flag; } } while(0)
 
#define add_message(msg)   add_message_(__LINE__,msg);
 
#define ok_sequence(exp, contx, todo)   ok_sequence_( (exp), (contx), (todo), __FILE__, __LINE__)
 
#define expect(EXPECTED, GOT)   ok((GOT)==(EXPECTED), "Expected %d, got %d\n", (EXPECTED), (GOT))
 
#define test_msg_setpos(expected_list, flags, todo)   test_msg_setpos_( (expected_list), (flags), (todo), __FILE__, __LINE__)
 
#define ID_BUTTON   0x000e
 
#define ID_RADIO1   501
 
#define ID_RADIO2   502
 
#define ID_RADIO3   503
 
#define ID_TEXT   504
 
#define test_radio(r1, s1, r2, s2, r3, s3)   test_radio_dbg(r1, s1, r2, s2, r3, s3, __LINE__)
 
#define ID_COMBOBOX   0x000f
 
#define check_update_rgn(hwnd, hrgn)   check_update_rgn_( __LINE__, hwnd, hrgn )
 
#define TIMER_ID   0x19
 
#define TIMER_COUNT_EXPECTED   100
 
#define TIMER_COUNT_TOLERANCE   10
 
#define ID_EDIT   0x1234
 
#define EV_STOP   0
 
#define EV_SENDMSG   1
 
#define EV_ACK   2
 
#define STEP   5
 
#define track_hover(track_hwnd, track_hover_time)
 
#define track_query(expected_track_flags, expected_track_hwnd, expected_hover_time)
 
#define track_hover_cancel(track_hwnd)
 
#define WS_BASE   (WS_CAPTION|WS_SYSMENU|WS_MINIMIZEBOX|WS_MAXIMIZEBOX|WS_POPUP|WS_CLIPSIBLINGS)
 
#define set_selection(hctl, start, end)
 
#define check_selection(hctl, start, end)
 
#define ID_LISTBOX   0x000f
 
#define check_lb_state(a1, a2, a3, a4, a5)   check_lb_state_dbg(a1, a2, a3, a4, a5, __LINE__)
 
#define clear_clipboard(hwnd)   clear_clipboard_(__LINE__, (hwnd))
 
#define expect_HWND(expected, got)   expect_HWND_(__LINE__, (expected), (got))
 
#define X(f)   p##f = (void*)GetProcAddress(hKernel32, #f)
 

Typedefs

typedef BOOL(WINAPIIS_WINEVENT_HOOK_INSTALLED) (DWORD)
 

Enumerations

enum  msg_flags_t {
  sent = 0x1, posted = 0x2, parent = 0x4, wparam = 0x8,
  lparam = 0x10, defwinproc = 0x20, beginpaint = 0x40, optional = 0x80,
  hook = 0x100, winevent_hook =0x200, id = 0x400, custdraw = 0x800,
  sent = 0x1, posted = 0x2, parent = 0x4, wparam = 0x8,
  lparam = 0x10, defwinproc = 0x20, beginpaint = 0x40, optional = 0x80,
  hook = 0x100, winevent_hook =0x200, id = 0x400, sent =0x1,
  posted =0x2, parent =0x4, wparam =0x8, lparam =0x10,
  defwinproc =0x20, beginpaint =0x40, optional =0x80, hook =0x100,
  winevent_hook =0x200, sent =0x1, posted =0x2, parent =0x4,
  wparam =0x8, lparam =0x10, defwinproc =0x20, beginpaint =0x40,
  optional =0x80, hook =0x100, winevent_hook =0x200, kbd_hook =0x400
}
 

Functions

static BOOL (WINAPI *pActivateActCtx)(HANDLE
 
static ULONG_PTR *static HANDLE (WINAPI *pCreateActCtxW)(PCACTCTXW)
 
static void void SIZE_T *static void (WINAPI *pReleaseActCtx)(HANDLE)
 
static LRESULT WINAPI ParentMsgCheckProcA (HWND, UINT, WPARAM, LPARAM)
 
static HWND (WINAPI *pGetAncestor)(HWND
 
static HWINEVENTHOOK (WINAPI *pSetWinEventHook)(DWORD
 
static HMONITOR (WINAPI *pMonitorFromPoint)(POINT
 
static UINT_PTR (WINAPI *pSetSystemTimer)(HWND
 
static void init_procs (void)
 
static const charget_winpos_flags (UINT flags)
 
static BOOL ignore_message (UINT message)
 
static unsigned hash_Ly_W (const WCHAR *str)
 
static unsigned hash_Ly (const char *str)
 
static void add_message_ (int line, const struct recvd_message *msg)
 
static void flush_events (void)
 
static void flush_sequence (void)
 
static void dump_sequence (const struct message *expected, const char *context, const char *file, int line)
 
static void ok_sequence_ (const struct message *expected_list, const char *context, BOOL todo, const char *file, int line)
 
static LRESULT WINAPI mdi_client_hook_proc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
 
static LRESULT WINAPI mdi_child_wnd_proc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
 
static LRESULT WINAPI mdi_frame_wnd_proc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
 
static BOOL mdi_RegisterWindowClasses (void)
 
static void test_mdi_messages (void)
 
static void test_WM_SETREDRAW (HWND hwnd)
 
static INT_PTR CALLBACK TestModalDlgProcA (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
 
static INT_PTR CALLBACK TestModalDlgProc2 (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
 
static void test_hv_scroll_1 (HWND hwnd, INT ctl, DWORD clear, DWORD set, INT min, INT max)
 
static void test_hv_scroll_2 (HWND hwnd, INT ctl, DWORD clear, DWORD set, INT min, INT max)
 
static void test_scroll_messages (HWND hwnd)
 
static void test_showwindow (void)
 
static void test_recursive_activation (void)
 
static void test_sys_menu (void)
 
static void CALLBACK apc_test_proc (ULONG_PTR param)
 
static void test_MsgWaitForMultipleObjects (HWND hwnd)
 
static void test_WM_DEVICECHANGE (HWND hwnd)
 
static DWORD CALLBACK show_window_thread (LPVOID arg)
 
static void test_msg_setpos_ (const struct message *expected_list, UINT flags, BOOL todo, const char *file, int line)
 
static void test_messages (void)
 
static void test_setwindowpos (void)
 
static void invisible_parent_tests (void)
 
static LRESULT CALLBACK button_hook_proc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
 
static void subclass_button (void)
 
static void test_button_messages (void)
 
static void test_button_bm_get_set_image (void)
 
static INT_PTR WINAPI radio_test_dlg_proc (HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
 
static void test_autoradio_BM_CLICK (void)
 
static void test_radio_dbg (HWND radio1, int state1, HWND radio2, int state2, HWND radio3, int state3, int line)
 
static void set_radio (HWND radio1, int state1, HWND radio2, int state2, HWND radio3, int state3)
 
static void test_autoradio_kbd_move (void)
 
static LRESULT CALLBACK static_hook_proc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
 
static void subclass_static (void)
 
static void test_static_messages (void)
 
static LRESULT CALLBACK combobox_edit_subclass_proc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
 
static LRESULT CALLBACK combobox_lbox_subclass_proc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
 
static LRESULT CALLBACK combobox_hook_proc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
 
static void subclass_combobox (void)
 
static void test_combobox_messages (void)
 
static LRESULT WINAPI wmime_keydown_procA (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
 
static void register_wmime_keydown_class (void)
 
static void test_wmime_keydown_message (void)
 
void dump_region (HRGN hrgn)
 
static void check_update_rgn_ (int line, HWND hwnd, HRGN hrgn)
 
static void test_paint_messages (void)
 
static DWORD WINAPI thread_proc (void *param)
 
static DWORD CALLBACK create_grand_child_thread (void *param)
 
static DWORD CALLBACK create_child_thread (void *param)
 
static void create_manifest_file (const char *filename, const char *manifest)
 
static HANDLE test_create (const char *file)
 
static void test_interthread_messages (void)
 
static void pump_msg_loop (HWND hwnd, HACCEL hAccel)
 
static void test_accelerators (void)
 
static LRESULT MsgCheckProc (BOOL unicode, HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
 
static LRESULT WINAPI MsgCheckProcA (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
 
static LRESULT WINAPI MsgCheckProcW (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
 
static LRESULT WINAPI PopupMsgCheckProcA (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
 
static INT_PTR CALLBACK StopQuitMsgCheckProcA (HWND hwnd, UINT message, WPARAM wp, LPARAM lp)
 
static LRESULT WINAPI TestDlgProcA (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
 
static LRESULT WINAPI ShowWindowProcA (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
 
static LRESULT WINAPI recursive_activation_wndprocA (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
 
static LRESULT WINAPI PaintLoopProcA (HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
 
static LRESULT WINAPI HotkeyMsgCheckProcA (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
 
static BOOL RegisterWindowClasses (void)
 
static BOOL is_our_logged_class (HWND hwnd)
 
static LRESULT CALLBACK cbt_hook_proc (int nCode, WPARAM wParam, LPARAM lParam)
 
static void CALLBACK win_event_proc (HWINEVENTHOOK hevent, DWORD event, HWND hwnd, LONG object_id, LONG child_id, DWORD thread_id, DWORD event_time)
 
static LRESULT CALLBACK MsgConversionProcW (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
 
static LRESULT CALLBACK get_text_len_proc (HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
 
static void test_message_conversion (void)
 
static VOID CALLBACK tfunc (HWND hwnd, UINT uMsg, UINT_PTR id, DWORD dwTime)
 
static void CALLBACK callback_count (HWND hwnd, UINT uMsg, UINT_PTR idEvent, DWORD dwTime)
 
static void CALLBACK callback_exception (HWND hwnd, UINT uMsg, UINT_PTR idEvent, DWORD dwTime)
 
static DWORD WINAPI timer_thread_proc (LPVOID x)
 
static void test_timers (void)
 
static void test_timers_no_wnd (void)
 
static void test_timers_exception (DWORD code)
 
static void test_timers_exceptions (void)
 
static void CALLBACK win_event_global_hook_proc (HWINEVENTHOOK hevent, DWORD event, HWND hwnd, LONG object_id, LONG child_id, DWORD thread_id, DWORD event_time)
 
static LRESULT CALLBACK cbt_global_hook_proc (int nCode, WPARAM wParam, LPARAM lParam)
 
static DWORD WINAPI win_event_global_thread_proc (void *param)
 
static DWORD WINAPI cbt_global_hook_thread_proc (void *param)
 
static DWORD WINAPI mouse_ll_global_thread_proc (void *param)
 
static void test_winevents (void)
 
static void test_set_hook (void)
 
static LRESULT WINAPI rec_get_message_hook (int code, WPARAM w, LPARAM l)
 
static void test_recursive_hook (void)
 
static void test_scrollwindowex (void)
 
static void test_DestroyWindow (void)
 
static LRESULT WINAPI DispatchMessageCheckProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
 
static void test_DispatchMessage (void)
 
static DWORD CALLBACK send_msg_thread (LPVOID arg)
 
static void wait_for_thread (HANDLE thread)
 
static LRESULT WINAPI send_msg_delay_proc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
 
static void test_SendMessageTimeout (void)
 
static LRESULT CALLBACK edit_hook_proc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
 
static void subclass_edit (void)
 
static void test_edit_messages (void)
 
static DWORD CALLBACK send_msg_thread_2 (void *param)
 
static void test_PeekMessage (void)
 
static void wait_move_event (HWND hwnd, int x, int y)
 
static void test_PeekMessage2 (void)
 
static void test_PeekMessage3 (void)
 
static INT_PTR CALLBACK wm_quit_dlg_proc (HWND hwnd, UINT message, WPARAM wp, LPARAM lp)
 
static void test_quit_message (void)
 
static void test_notify_message (void)
 
static void pump_msg_loop_timeout (DWORD timeout, BOOL inject_mouse_move)
 
static void test_TrackMouseEvent (void)
 
static void test_SetWindowRgn (void)
 
static void test_ShowWindow (void)
 
static INT_PTR WINAPI test_dlg_proc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
 
static LRESULT WINAPI dlg_creation_edit_proc (HWND hwnd, UINT message, WPARAM wp, LPARAM lp)
 
static INT_PTR WINAPI test_dlg_proc2 (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
 
static INT_PTR WINAPI test_dlg_proc3 (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
 
static LRESULT WINAPI test_dlg_proc4 (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
 
static void test_dialog_messages (void)
 
static void test_enddialog_seq (HWND dialog, HWND owner)
 
static void test_enddialog_seq2 (HWND dialog, HWND owner)
 
static void test_EndDialog (void)
 
static void test_nullCallback (void)
 
static void test_SetActiveWindow (void)
 
static void test_SetForegroundWindow (void)
 
static DWORD get_input_codepage (void)
 
static void test_dbcs_wm_char (void)
 
static void test_unicode_wm_char (void)
 
static LRESULT (WINAPI *listbox_orig_proc)(HWND
 
static LRESULT WINAPI listbox_hook_proc (HWND hwnd, UINT message, WPARAM wp, LPARAM lp)
 
static void check_lb_state_dbg (HWND listbox, int count, int cur_sel, int caret_index, int top_index, int line)
 
static void test_listbox_messages (void)
 
static LRESULT WINAPI parent_menu_proc (HWND hwnd, UINT message, WPARAM wp, LPARAM lp)
 
static void set_menu_style (HMENU hmenu, DWORD style)
 
static DWORD get_menu_style (HMENU hmenu)
 
static void test_menu_messages (void)
 
static void test_paintingloop (void)
 
static DWORD CALLBACK post_rbuttonup_msg (void *arg)
 
static void test_defwinproc (void)
 
static void test_desktop_winproc (void)
 
static void clear_clipboard_ (int line, HWND hWnd)
 
static void expect_HWND_ (int line, HWND expected, HWND got)
 
static LRESULT CALLBACK recursive_viewer_proc (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
 
static void test_clipboard_viewers (void)
 
static void test_PostMessage (void)
 
static LRESULT WINAPI broadcast_test_proc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
 
static void test_broadcast (void)
 
static DWORD CALLBACK do_wait_idle_child_thread (void *arg)
 
static void do_wait_idle_child (int arg)
 
static LRESULT CALLBACK wait_idle_proc (HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
 
static DWORD CALLBACK wait_idle_thread (void *arg)
 
static void test_WaitForInputIdle (char *argv0)
 
static void test_SetParent (void)
 
static void test_keyflags (void)
 
static LRESULT CALLBACK KeyboardHookProc (int nCode, WPARAM wParam, LPARAM lParam)
 
static void test_hotkey (void)
 
static void test_SetFocus (void)
 
static DWORD CALLBACK update_layered_proc (void *param)
 
static void test_layered_window (void)
 
static LRESULT WINAPI cancel_popup_proc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
 
static LRESULT WINAPI cancel_init_proc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
 
static void test_TrackPopupMenu (void)
 
static void test_TrackPopupMenuEmpty (void)
 
static DWORD WINAPI SendMessage_thread_1 (void *param)
 
static DWORD WINAPI SendMessage_thread_2 (void *param)
 
static void test_SendMessage_other_thread (int thread_n)
 
static LRESULT CALLBACK insendmessage_wnd_proc (HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
 
static void CALLBACK msg_callback (HWND hwnd, UINT msg, ULONG_PTR arg, LRESULT result)
 
static DWORD WINAPI send_message_thread (void *arg)
 
static void test_InSendMessage (void)
 
static void test_DoubleSetCapture (void)
 
static void test_restore_messages (void)
 
static void test_invalid_window (void)
 
static void init_funcs (void)
 
 START_TEST (msg)
 
static void init_tests ()
 
static void cleanup_tests ()
 
 START_TEST (msg_queue)
 
 START_TEST (msg_messages)
 
 START_TEST (msg_focus)
 
 START_TEST (msg_winpos)
 
 START_TEST (msg_paint)
 
 START_TEST (msg_input)
 
 START_TEST (msg_timer)
 
 START_TEST (msg_hook)
 
 START_TEST (msg_menu)
 
 START_TEST (msg_mdi)
 
 START_TEST (msg_controls)
 
 START_TEST (msg_layered_window)
 
 START_TEST (msg_dialog)
 
 START_TEST (msg_clipboard)
 

Variables

static ULONG_PTR
 
static HANDLE
 
static void ULONG
 
static void void SIZE_T
 
static BOOL test_DestroyWindow_flag
 
static HWINEVENTHOOK hEvent_hook
 
static HHOOK hKBD_hook
 
static HHOOK hCBT_hook
 
static DWORD cbt_hook_thread_id
 
static const WCHAR testWindowClassW []
 
static const struct message WmEmptySeq []
 
static const struct message WmCreateOverlappedSeq []
 
static const struct message WmSWP_ShowOverlappedSeq []
 
static const struct message WmSWP_HideOverlappedSeq []
 
static const struct message WmSWP_ResizeSeq []
 
static const struct message WmSWP_ResizePopupSeq []
 
static const struct message WmSWP_MoveSeq []
 
static const struct message WmSWP_ResizeNoZOrder []
 
static const struct message WmSwitchChild []
 
static const struct message WmSwitchNotMaximizedChild []
 
static const struct message WmSWP_FrameChanged_clip []
 
static const struct message WmSWP_FrameChangedDeferErase []
 
static const struct message WmSWP_FrameChanged_noclip []
 
static const struct message WmShowOverlappedSeq []
 
static const struct message WmShowMaxOverlappedSeq []
 
static const struct message WmShowRestoreMaxOverlappedSeq []
 
static const struct message WmShowRestoreMinOverlappedSeq []
 
static const struct message WmShowMinOverlappedSeq []
 
static const struct message WmHideOverlappedSeq []
 
static const struct message WmDestroyOverlappedSeq []
 
static const struct message WmCreateMaxPopupSeq []
 
static const struct message WmCreateInvisibleMaxPopupSeq []
 
static const struct message WmShowMaxPopupResizedSeq []
 
static const struct message WmShowMaxPopupSeq []
 
static const struct message WmCreatePopupSeq []
 
static const struct message WmShowVisMaxPopupSeq []
 
static const struct message WmCreateChildPopupSeq []
 
static const struct message WmCreateInvisiblePopupSeq []
 
static const struct message WmShowVisiblePopupSeq_2 []
 
static const struct message WmShowVisiblePopupSeq_3 []
 
static const struct message WmShowPopupExtremeLocationSeq []
 
static const struct message WmShowPopupFirstDrawSeq_1 []
 
static const struct message WmShowPopupFirstDrawSeq_2 []
 
static const struct message WmFirstDrawSetWindowPosSeq1 []
 
static const struct message WmFirstDrawSetWindowPosSeq2 []
 
static const struct message WmFirstDrawSetWindowPosSeq3 []
 
static const struct message WmFirstDrawSetWindowPosSeq4 []
 
static const struct message WmFirstDrawSetWindowPosSeq5 []
 
static const struct message WmFirstDrawChildSeq1 []
 
static const struct message WmFirstDrawChildSeq2 []
 
static const struct message WmCreateChildSeq []
 
static const struct message WmCreateMaximizedChildSeq []
 
static const struct message WmCreateVisibleChildSeq []
 
static const struct message WmShowChildSeq []
 
static const struct message WmHideChildSeq []
 
static const struct message WmHideChildSeq2 []
 
static const struct message WmShowChildSeq_2 []
 
static const struct message WmShowChildSeq_3 []
 
static const struct message WmShowChildSeq_4 []
 
static const struct message WmShowChildInvisibleParentSeq_1 []
 
static const struct message WmShowChildInvisibleParentSeq_1r []
 
static const struct message WmShowChildInvisibleParentSeq_2 []
 
static const struct message WmShowChildInvisibleParentSeq_2r []
 
static const struct message WmShowChildInvisibleParentSeq_3 []
 
static const struct message WmShowChildInvisibleParentSeq_3r []
 
static const struct message WmShowChildInvisibleParentSeq_4 []
 
static const struct message WmShowChildInvisibleParentSeq_4r []
 
static const struct message WmShowChildInvisibleParentSeq_5 []
 
static const struct message WmHideChildInvisibleParentSeq []
 
static const struct message WmShowChildInvisibleParentSeq_6 []
 
static const struct message WmHideChildInvisibleParentSeq_2 []
 
static const struct message WmDestroyChildSeq []
 
static const struct message WmExitThreadSeq []
 
static const struct message WmDestroyInvisibleChildSeq []
 
static const struct message WmResizingChildWithMoveWindowSeq []
 
static const struct message WmCreateCustomDialogSeq []
 
static const struct message WmEndCustomDialogSeq []
 
static const struct message WmShowCustomDialogSeq []
 
static const struct message WmModalDialogSeq []
 
static const struct message WmModalDialogSeq_2 []
 
static const struct message WmSetMenuNonVisibleSizeChangeSeq []
 
static const struct message WmSetMenuNonVisibleNoSizeChangeSeq []
 
static const struct message WmSetMenuVisibleSizeChangeSeq []
 
static const struct message WmSetMenuVisibleNoSizeChangeSeq []
 
static const struct message WmDrawMenuBarSeq []
 
static const struct message WmSetRedrawFalseSeq []
 
static const struct message WmSetRedrawTrueSeq []
 
static const struct message WmEnableWindowSeq_1 []
 
static const struct message WmEnableWindowSeq_2 []
 
static const struct message WmEnableWindowSeq_3 []
 
static const struct message WmEnableWindowSeq_4 []
 
static const struct message WmGetScrollRangeSeq []
 
static const struct message WmGetScrollInfoSeq []
 
static const struct message WmSetScrollRangeSeq []
 
static const struct message WmSetScrollRangeHSeq_empty []
 
static const struct message WmSetScrollRangeVSeq_empty []
 
static const struct message WmSetScrollRangeHVSeq []
 
static const struct message WmSetScrollRangeHV_NC_Seq []
 
static const struct message WmSHOWNAChildInvisParInvis []
 
static const struct message WmSHOWNAChildVisParInvis []
 
static const struct message WmSHOWNAChildVisParVis []
 
static const struct message WmSHOWNAChildInvisParVis []
 
static const struct message WmSHOWNATopVisible []
 
static const struct message WmSHOWNATopInvisible []
 
static const struct message WmTrackPopupMenu []
 
static const struct message WmTrackPopupMenuEsc []
 
static const struct message WmTrackPopupMenuCapture []
 
static const struct message WmTrackPopupMenuEmpty []
 
static const struct message WmTrackPopupMenuAbort []
 
static BOOL after_end_dialog
 
static BOOL test_def_id
 
static BOOL paint_loop_done
 
static int sequence_cnt
 
static int sequence_size
 
static struct recvd_messagesequence
 
static int log_all_parent_messages
 
static CRITICAL_SECTION sequence_cs
 
static UINT
 
static LPCMENUINFO
 
static HWND
 
static LONG
 
static DWORD
 
static HMODULE
 
static WINEVENTPROC
 
static LPMONITORINFO
 
static HDC
 
static POINT SIZE POINT COLORREF
 
static UINT_PTR
 
static TIMERPROC
 
static LPCPINFOEXA
 
static const struct message WmCreateMDIframeSeq []
 
static const struct message WmDestroyMDIframeSeq []
 
static const struct message WmCreateMDIclientSeq []
 
static const struct message WmShowMDIclientSeq []
 
static const struct message WmHideMDIclientSeq []
 
static const struct message WmDestroyMDIclientSeq []
 
static const struct message WmCreateMDIchildVisibleSeq []
 
static const struct message WmChildActivateDisabledWindowSeq []
 
static const struct message WmChildActivateWindowSeq []
 
static const struct message WmCreateMDIchildInvisibleParentSeq []
 
static const struct message WmDestroyMDIchildVisibleSeq []
 
static const struct message WmCreateMDIchildInvisibleSeq []
 
static const struct message WmDestroyMDIchildInvisibleSeq []
 
static const struct message WmCreateMDIchildVisibleMaxSeq1 []
 
static const struct message WmCreateMDIchildVisibleMaxSeq2 []
 
static const struct message WmCreateMDIchildVisibleMaxSeq3 []
 
static const struct message WmCreateMDIchildInvisibleMaxSeq4 []
 
static const struct message WmDestroyMDIchildVisibleMaxSeq2 []
 
static const struct message WmDestroyMDIchildVisibleMaxSeq1 []
 
static const struct message WmMaximizeMDIchildInvisibleSeq []
 
static const struct message WmMaximizeMDIchildInvisibleSeq2 []
 
static const struct message WmMaximizeMDIchildInvisibleParentSeq []
 
static const struct message WmMaximizeMDIchildVisibleSeq []
 
static const struct message WmRestoreMDIchildVisibleSeq []
 
static const struct message WmRestoreMDIchildVisibleSeq_2 []
 
static const struct message WmMinimizeMDIchildVisibleSeq []
 
static const struct message WmRestoreMDIchildInvisibleSeq []
 
static HWND mdi_client
 
static WNDPROC old_mdi_client_proc
 
static const struct message WmSetIcon_1 []
 
static const struct message WmSetIcon_2 []
 
static const struct message WmInitEndSession []
 
static const struct message WmInitEndSession_2 []
 
static const struct message WmInitEndSession_3 []
 
static const struct message WmInitEndSession_4 []
 
static const struct message WmInitEndSession_5 []
 
static const struct message WmOptionalPaint []
 
static const struct message WmZOrder []
 
static const struct message WmSetFocusButtonSeq []
 
static const struct message WmKillFocusButtonSeq []
 
static const struct message WmSetFocusStaticSeq []
 
static const struct message WmKillFocusStaticSeq []
 
static const struct message WmSetFocusOwnerdrawSeq []
 
static const struct message WmKillFocusOwnerdrawSeq []
 
static const struct message WmLButtonDownSeq []
 
static const struct message WmLButtonDownStaticSeq []
 
static const struct message WmLButtonUpSeq []
 
static const struct message WmLButtonUpStaticSeq []
 
static const struct message WmLButtonUpAutoSeq []
 
static const struct message WmLButtonUpBrokenSeq []
 
static const struct message WmSetFontButtonSeq []
 
static const struct message WmSetFontStaticSeq []
 
static const struct message WmSetTextButtonSeq []
 
static const struct message WmSetTextStaticSeq []
 
static const struct message WmSetTextGroupSeq []
 
static const struct message WmSetTextInvisibleSeq []
 
static const struct message WmSetStyleButtonSeq []
 
static const struct message WmSetStyleStaticSeq []
 
static const struct message WmSetStyleUserSeq []
 
static const struct message WmSetStyleOwnerdrawSeq []
 
static const struct message WmSetStateButtonSeq []
 
static const struct message WmSetStateStaticSeq []
 
static const struct message WmSetStateUserSeq []
 
static const struct message WmSetStateOwnerdrawSeq []
 
static const struct message WmClearStateButtonSeq []
 
static const struct message WmDisableButtonSeq []
 
static const struct message WmClearStateOwnerdrawSeq []
 
static const struct message WmSetCheckIgnoredSeq []
 
static const struct message WmSetCheckStaticSeq []
 
static WNDPROC old_button_proc
 
static const struct message auto_radio_button_BM_CLICK []
 
static const struct message auto_radio_button_VK_UP_child []
 
static const struct message auto_radio_button_VK_UP_parent []
 
static const struct message auto_radio_button_VK_UP_dialog []
 
static const struct message auto_radio_button_VK_DOWN_dialog []
 
static const struct message auto_radio_button_VK_DOWN_radio3 []
 
static const struct message auto_radio_button_VK_UP_radio1 []
 
static const struct message WmSetFontStaticSeq2 []
 
static WNDPROC old_static_proc
 
static const struct message SetCurSelComboSeq []
 
static const struct message SetCurSelComboSeq2 []
 
static const struct message SetCurSelComboSeq_edit []
 
static const struct message WmKeyDownComboSeq []
 
static const struct message WmSetPosComboSeq []
 
static const struct message WMSetFocusComboBoxSeq []
 
static const struct message SetFocusButtonSeq []
 
static const struct message SetFocusComboBoxSeq []
 
static const struct message SetFocusButtonSeq2 []
 
static WNDPROC old_combobox_proc
 
static WNDPROC edit_window_proc
 
static WNDPROC lbox_window_proc
 
static const struct message WmImeKeydownMsgSeq_0 []
 
static const struct message WmImeKeydownMsgSeq_1 []
 
static const struct message WmInvalidateRgn []
 
static const struct message WmGetUpdateRect []
 
static const struct message WmInvalidateFull []
 
static const struct message WmInvalidateErase []
 
static const struct message WmInvalidatePaint []
 
static const struct message WmInvalidateErasePaint []
 
static const struct message WmInvalidateErasePaint2 []
 
static const struct message WmErase []
 
static const struct message WmPaint []
 
static const struct message WmParentOnlyPaint []
 
static const struct message WmInvalidateParent []
 
static const struct message WmInvalidateParentChild []
 
static const struct message WmInvalidateParentChild2 []
 
static const struct message WmParentPaint []
 
static const struct message WmParentPaintNc []
 
static const struct message WmChildPaintNc []
 
static const struct message WmParentErasePaint []
 
static const struct message WmParentOnlyNcPaint []
 
static const struct message WmSetParentStyle []
 
static const char manifest_dep []
 
static const char manifest_main []
 
static const struct message WmVkN []
 
static const struct message WmShiftVkN []
 
static const struct message WmCtrlVkN []
 
static const struct message WmCtrlVkN_2 []
 
static const struct message WmAltVkN []
 
static const struct message WmAltVkN_2 []
 
static const struct message WmCtrlAltVkN []
 
static const struct message WmCtrlShiftVkN []
 
static const struct message WmCtrlAltShiftVkN []
 
static const struct message WmAltPressRelease []
 
static const struct message WmShiftMouseButton []
 
static const struct message WmF1Seq []
 
static const struct message WmVkAppsSeq []
 
static const struct message WmVkF10Seq []
 
static const struct message WmShiftF10Seq []
 
static const WCHAR wszUnicode [] = {'U','n','i','c','o','d','e',0}
 
static const WCHAR wszAnsi [] = {'U',0}
 
static const struct message WmGetTextLengthAfromW []
 
static const WCHAR dummy_window_text [] = {'d','u','m','m','y',' ','t','e','x','t',0}
 
static int count = 0
 
static DWORD exception
 
static const struct message WmWinEventsSeq []
 
static const struct message WmWinEventCaretSeq []
 
static const struct message WmWinEventCaretSeq_2 []
 
static const struct message WmWinEventAlertSeq []
 
static const struct message WmWinEventAlertSeq_2 []
 
static const struct message WmGlobalHookSeq_1 []
 
static const struct message WmGlobalHookSeq_2 []
 
static const struct message WmMouseLLHookSeq []
 
static HHOOK hCBT_global_hook
 
static DWORD cbt_global_hook_thread_id
 
static HWND hook_hwnd
 
static HHOOK recursive_hook
 
static int hook_depth
 
static int max_hook_depth
 
static const struct message ScrollWindowPaint1 []
 
static const struct message ScrollWindowPaint2 []
 
static const struct message destroy_window_with_children []
 
static const struct message WmDispatchPaint []
 
static const struct message WmUser []
 
static const struct message sl_edit_setfocus []
 
static const struct message sl_edit_invisible []
 
static const struct message ml_edit_setfocus []
 
static const struct message sl_edit_killfocus []
 
static const struct message sl_edit_lbutton_dblclk []
 
static const struct message sl_edit_lbutton_down []
 
static const struct message ml_edit_lbutton_down []
 
static const struct message sl_edit_lbutton_up []
 
static const struct message ml_edit_lbutton_up []
 
static WNDPROC old_edit_proc
 
static const struct message WmKeyDownSkippedSeq []
 
static const struct message WmKeyDownWasDownSkippedSeq []
 
static const struct message WmKeyUpSkippedSeq []
 
static const struct message WmUserKeyUpSkippedSeq []
 
static const struct message WmQuitDialogSeq []
 
static const struct message WmStopQuitSeq []
 
static const struct message WmNotifySeq []
 
static const struct message WmMouseHoverSeq []
 
static const struct message WmSetWindowRgn []
 
static const struct message WmSetWindowRgn_no_redraw []
 
static const struct message WmSetWindowRgn_clear []
 
static const struct message WmShowNormal []
 
static const struct message WmShow []
 
static const struct message WmShowNoActivate_1 []
 
static const struct message WmShowNoActivate_2 []
 
static const struct message WmShowNA_1 []
 
static const struct message WmShowNA_2 []
 
static const struct message WmRestore_1 []
 
static const struct message WmRestore_2 []
 
static const struct message WmRestore_3 []
 
static const struct message WmRestore_4 []
 
static const struct message WmRestore_5 []
 
static const struct message WmHide_1 []
 
static const struct message WmHide_2 []
 
static const struct message WmHide_3 []
 
static const struct message WmShowMinimized_1 []
 
static const struct message WmMinimize_1 []
 
static const struct message WmMinimize_2 []
 
static const struct message WmMinimize_3 []
 
static const struct message WmShowMinNoActivate []
 
static const struct message WmMinMax_1 []
 
static const struct message WmMinMax_2 []
 
static const struct message WmMinMax_3 []
 
static const struct message WmMinMax_4 []
 
static const struct message WmShowMaximized_1 []
 
static const struct message WmShowMaximized_2 []
 
static const struct message WmShowMaximized_3 []
 
static WNDPROC orig_edit_proc
 
static const struct message WmDefDlgSetFocus_1 []
 
static const struct message WmDefDlgSetFocus_2 []
 
static const struct message WmCreateDialogParamSeq_0 []
 
static const struct message WmCreateDialogParamSeq_1 []
 
static const struct message WmCreateDialogParamSeq_2 []
 
static const struct message WmCreateDialogParamSeq_3 []
 
static const struct message WmCreateDialogParamSeq_4 []
 
static const struct message SetActiveWindowSeq0 []
 
static const struct message SetActiveWindowSeq1 []
 
static const struct message SetActiveWindowSeq2 []
 
static const struct message SetActiveWindowSeq3 []
 
static const struct message SetActiveWindowSeq4 []
 
static const struct message SetForegroundWindowSeq []
 
static const struct message wm_lb_setcursel_0 []
 
static const struct message wm_lb_setcursel_1 []
 
static const struct message wm_lb_setcursel_2 []
 
static const struct message wm_lb_click_0 []
 
static const struct message wm_lb_deletestring []
 
static const struct message wm_lb_deletestring_reset []
 
static const struct message wm_lb_addstring []
 
static const struct message wm_lb_addstring_ownerdraw []
 
static const struct message wm_lb_addstring_sort_ownerdraw []
 
static WPARAM
 
static LPARAM
 
static const struct message wm_popup_menu_1 []
 
static const struct message wm_popup_menu_2 []
 
static const struct message wm_popup_menu_3 []
 
static const struct message wm_single_menu_item []
 
static const struct message NCRBUTTONDOWNSeq []
 
static const struct message NCXBUTTONUPSeq1 []
 
static const struct message NCXBUTTONUPSeq2 []
 
static const struct message WmRestoreMinimizedOverlappedSeq []
 
static WNDPROC pOldViewerProc
 
static LPARAM g_broadcast_lparam
 
struct {
   DWORD   exp
 
   DWORD   broken
 
   BOOL   todo
 
wait_idle_expect []
 
static const struct message WmSetParentSeq_1 []
 
static const struct message WmSetParentSeq_2 []
 
static const struct message WmKeyReleaseOnly []
 
static const struct message WmKeyPressNormal []
 
static const struct message WmKeyPressRepeat []
 
static const struct message WmKeyReleaseNormal []
 
static const struct message WmHotkeyPressLWIN []
 
static const struct message WmHotkeyPress []
 
static const struct message WmHotkeyRelease []
 
static const struct message WmHotkeyReleaseLWIN []
 
static const struct message WmHotkeyCombined []
 
static const struct message WmHotkeyPrevious []
 
static const struct message WmHotkeyNew []
 
static int hotkey_letter
 
static const struct message WmSetFocus_1 []
 
static const struct message WmSetFocus_2 []
 
static const struct message WmSetFocus_3 []
 
static const struct message WmSetLayeredStyle []
 
static const struct message WmSetLayeredStyle2 []
 
static HMENU hpopupmenu
 
static const struct message send_message_1 []
 
static const struct message send_message_2 []
 
static const struct message send_message_3 []
 
static const struct message DoubleSetCaptureSeq []
 
static const struct message WmRestoreMinimizedSeq []
 

Macro Definition Documentation

◆ _WIN32_WINNT

#define _WIN32_WINNT   0x0600 /* For WM_CHANGEUISTATE,QS_RAWINPUT,WM_DWMxxxx */

Definition at line 24 of file msg.c.

◆ add_message

#define add_message (   msg)    add_message_(__LINE__,msg);

Definition at line 2113 of file msg.c.

◆ ARCH

#define ARCH   "none"

Definition at line 76 of file msg.c.

◆ check_lb_state

#define check_lb_state (   a1,
  a2,
  a3,
  a4,
  a5 
)    check_lb_state_dbg(a1, a2, a3, a4, a5, __LINE__)

Definition at line 14862 of file msg.c.

◆ check_selection

#define check_selection (   hctl,
  start,
  end 
)
Value:
ret = SendMessageA(hctl, EM_GETSEL, 0, 0); \
ok(ret == MAKELRESULT(start, end), "wrong selection (%d - %d)\n", LOWORD(ret), HIWORD(ret));
LRESULT WINAPI SendMessageA(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
#define MAKELRESULT(l, h)
Definition: winuser.h:3985
GLuint GLuint end
Definition: gl.h:1545
#define EM_GETSEL
Definition: winuser.h:1979
int ret
GLuint start
Definition: gl.h:1545
#define HIWORD(l)
Definition: typedefs.h:246
#define LOWORD(l)
Definition: pedump.c:82

◆ check_update_rgn

#define check_update_rgn (   hwnd,
  hrgn 
)    check_update_rgn_( __LINE__, hwnd, hrgn )

Definition at line 7720 of file msg.c.

◆ clear_clipboard

#define clear_clipboard (   hwnd)    clear_clipboard_(__LINE__, (hwnd))

Definition at line 15693 of file msg.c.

◆ DUMP

#define DUMP (   flag)    do { if (flags & flag) { strcat( buffer, "|" #flag ); flags &= ~flag; } } while(0)

◆ EV_ACK

#define EV_ACK   2

Definition at line 11766 of file msg.c.

◆ EV_SENDMSG

#define EV_SENDMSG   1

Definition at line 11765 of file msg.c.

◆ EV_STOP

#define EV_STOP   0

Definition at line 11764 of file msg.c.

◆ expect

#define expect (   EXPECTED,
  GOT 
)    ok((GOT)==(EXPECTED), "Expected %d, got %d\n", (EXPECTED), (GOT))

Definition at line 2579 of file msg.c.

◆ expect_HWND

#define expect_HWND (   expected,
  got 
)    expect_HWND_(__LINE__, (expected), (got))

Definition at line 15705 of file msg.c.

◆ GET_PROC

#define GET_PROC (   dll,
  func 
)
Value:
p ## func = (void*)GetProcAddress(dll, #func); \
if(!p ## func) { \
trace("GetProcAddress(%s) failed\n", #func); \
}
GLenum func
Definition: glext.h:6028
static HMODULE dll
Definition: str.c:188
#define GetProcAddress(x, y)
Definition: compat.h:418
GLfloat GLfloat p
Definition: glext.h:8902

◆ ID_BUTTON

#define ID_BUTTON   0x000e

Definition at line 5897 of file msg.c.

◆ ID_COMBOBOX

#define ID_COMBOBOX   0x000f

Definition at line 7253 of file msg.c.

◆ ID_EDIT

#define ID_EDIT   0x1234

Definition at line 11486 of file msg.c.

◆ ID_LISTBOX

#define ID_LISTBOX   0x000f

Definition at line 14749 of file msg.c.

◆ ID_RADIO1

#define ID_RADIO1   501

Definition at line 6730 of file msg.c.

◆ ID_RADIO2

#define ID_RADIO2   502

Definition at line 6731 of file msg.c.

◆ ID_RADIO3

#define ID_RADIO3   503

Definition at line 6732 of file msg.c.

◆ ID_TEXT

#define ID_TEXT   504

Definition at line 6733 of file msg.c.

◆ MDI_FIRST_CHILD_ID

#define MDI_FIRST_CHILD_ID   2004

Definition at line 42 of file msg.c.

◆ ok_sequence

#define ok_sequence (   exp,
  contx,
  todo 
)    ok_sequence_( (exp), (contx), (todo), __FILE__, __LINE__)

Definition at line 2393 of file msg.c.

◆ set_selection

#define set_selection (   hctl,
  start,
  end 
)
Value:
ok(ret == 1, "EM_SETSEL returned %ld\n", ret);
LRESULT WINAPI SendMessageA(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
GLuint GLuint end
Definition: gl.h:1545
#define EM_SETSEL
Definition: winuser.h:2000
int ret
GLuint start
Definition: gl.h:1545

◆ STEP

#define STEP   5

Definition at line 12315 of file msg.c.

◆ SW_NORMALNA

#define SW_NORMALNA   0xCC /* undoc. flag in MinMaximize */

Definition at line 49 of file msg.c.

◆ SWP_NOCLIENTMOVE

#define SWP_NOCLIENTMOVE   0x1000

Definition at line 46 of file msg.c.

◆ SWP_NOCLIENTSIZE

#define SWP_NOCLIENTSIZE   0x0800

Definition at line 45 of file msg.c.

◆ SWP_STATECHANGED

#define SWP_STATECHANGED   0x8000

Definition at line 47 of file msg.c.

◆ test_msg_setpos

#define test_msg_setpos (   expected_list,
  flags,
  todo 
)    test_msg_setpos_( (expected_list), (flags), (todo), __FILE__, __LINE__)

Definition at line 5093 of file msg.c.

◆ test_radio

#define test_radio (   r1,
  s1,
  r2,
  s2,
  r3,
  s3 
)    test_radio_dbg(r1, s1, r2, s2, r3, s3, __LINE__)

Definition at line 6979 of file msg.c.

◆ TIMER_COUNT_EXPECTED

#define TIMER_COUNT_EXPECTED   100

Definition at line 10222 of file msg.c.

◆ TIMER_COUNT_TOLERANCE

#define TIMER_COUNT_TOLERANCE   10

Definition at line 10223 of file msg.c.

◆ TIMER_ID

#define TIMER_ID   0x19

Definition at line 10221 of file msg.c.

◆ track_hover

#define track_hover (   track_hwnd,
  track_hover_time 
)
Value:
tme.cbSize = sizeof(tme); \
tme.dwFlags = TME_HOVER; \
tme.hwndTrack = track_hwnd; \
tme.dwHoverTime = track_hover_time; \
SetLastError(0xdeadbeef); \
ret = pTrackMouseEvent(&tme); \
ok(ret, "TrackMouseEvent(TME_HOVER) error %d\n", GetLastError())
DWORD WINAPI GetLastError(VOID)
Definition: except.c:1059
int ret
#define TME_HOVER
Definition: commctrl.h:4976

◆ track_hover_cancel

#define track_hover_cancel (   track_hwnd)
Value:
tme.cbSize = sizeof(tme); \
tme.dwFlags = TME_HOVER | TME_CANCEL; \
tme.hwndTrack = track_hwnd; \
tme.dwHoverTime = 0xdeadbeef; \
SetLastError(0xdeadbeef); \
ret = pTrackMouseEvent(&tme); \
ok(ret, "TrackMouseEvent(TME_HOVER | TME_CANCEL) error %d\n", GetLastError())
DWORD WINAPI GetLastError(VOID)
Definition: except.c:1059
int ret
#define TME_HOVER
Definition: commctrl.h:4976
#define TME_CANCEL
Definition: commctrl.h:4980

◆ track_query

#define track_query (   expected_track_flags,
  expected_track_hwnd,
  expected_hover_time 
)
Value:
tme.cbSize = sizeof(tme); \
tme.dwFlags = TME_QUERY; \
tme.hwndTrack = (HWND)0xdeadbeef; \
tme.dwHoverTime = 0xdeadbeef; \
SetLastError(0xdeadbeef); \
ret = pTrackMouseEvent(&tme); \
ok(ret, "TrackMouseEvent(TME_QUERY) error %d\n", GetLastError());\
ok(tme.cbSize == sizeof(tme), "wrong tme.cbSize %u\n", tme.cbSize); \
ok(tme.dwFlags == (expected_track_flags), \
"wrong tme.dwFlags %08x, expected %08x\n", tme.dwFlags, (expected_track_flags)); \
ok(tme.hwndTrack == (expected_track_hwnd), \
"wrong tme.hwndTrack %p, expected %p\n", tme.hwndTrack, (expected_track_hwnd)); \
ok(tme.dwHoverTime == (expected_hover_time), \
"wrong tme.dwHoverTime %u, expected %u\n", tme.dwHoverTime, (expected_hover_time))
DWORD WINAPI GetLastError(VOID)
Definition: except.c:1059
#define TME_QUERY
Definition: commctrl.h:4979
static HWND
Definition: msg.c:2011
int ret

◆ WINVER

#define WINVER   0x0600 /* for WM_GETTITLEBARINFOEX */

Definition at line 25 of file msg.c.

◆ WM_KEYF1

#define WM_KEYF1   0x004d

Definition at line 52 of file msg.c.

◆ WM_LBTRACKPOINT

#define WM_LBTRACKPOINT   0x0131

Definition at line 64 of file msg.c.

◆ WM_SYSTIMER

#define WM_SYSTIMER   0x0118

Definition at line 56 of file msg.c.

◆ WND_CHILD_ID

#define WND_CHILD_ID   3

Definition at line 61 of file msg.c.

◆ WND_PARENT_ID

#define WND_PARENT_ID   1

Definition at line 59 of file msg.c.

◆ WND_POPUP_ID

#define WND_POPUP_ID   2

Definition at line 60 of file msg.c.

◆ WS_BASE

◆ X

#define X (   f)    p##f = (void*)GetProcAddress(hKernel32, #f)

Typedef Documentation

◆ IS_WINEVENT_HOOK_INSTALLED

typedef BOOL(WINAPI * IS_WINEVENT_HOOK_INSTALLED) (DWORD)

Definition at line 18157 of file msg.c.

Enumeration Type Documentation

◆ msg_flags_t

Enumerator
sent 
posted 
parent 
wparam 
lparam 
defwinproc 
beginpaint 
optional 
hook 
winevent_hook 
id 
custdraw 
sent 
posted 
parent 
wparam 
lparam 
defwinproc 
beginpaint 
optional 
hook 
winevent_hook 
id 
sent 
posted 
parent 
wparam 
lparam 
defwinproc 
beginpaint 
optional 
hook 
winevent_hook 
sent 
posted 
parent 
wparam 
lparam 
defwinproc 
beginpaint 
optional 
hook 
winevent_hook 
kbd_hook 

Definition at line 140 of file msg.c.

140  {
141  sent=0x1,
142  posted=0x2,
143  parent=0x4,
144  wparam=0x8,
145  lparam=0x10,
146  defwinproc=0x20,
147  beginpaint=0x40,
148  optional=0x80,
149  hook=0x100,
150  winevent_hook=0x200,
151  kbd_hook=0x400
152 } msg_flags_t;
Definition: msg.c:142
msg_flags_t
Definition: msg.c:140
Definition: msg.c:149
Definition: msg.c:145
Definition: msg.c:151
Definition: msg.c:144
Definition: msg.c:141
Definition: msg.c:143
Definition: msg.c:148

Function Documentation

◆ add_message_()

static void add_message_ ( int  line,
const struct recvd_message msg 
)
static

Definition at line 2114 of file msg.c.

2115 {
2116  struct recvd_message *seq;
2117 
2119  if (!sequence)
2120  {
2121  sequence_size = 10;
2122  sequence = HeapAlloc( GetProcessHeap(), 0, sequence_size * sizeof(*sequence) );
2123  }
2124  if (sequence_cnt == sequence_size)
2125  {
2126  sequence_size *= 2;
2128  }
2129  assert(sequence);
2130 
2131  seq = &sequence[sequence_cnt++];
2132  seq->hwnd = msg->hwnd;
2133  seq->message = msg->message;
2134  seq->flags = msg->flags;
2135  seq->wParam = msg->wParam;
2136  seq->lParam = msg->lParam;
2137  seq->line = line;
2138  seq->descr = msg->descr;
2139  seq->output[0] = 0;
2141 
2142  if (msg->descr)
2143  {
2144  if (msg->flags & hook)
2145  {
2146  static const char * const CBT_code_name[10] =
2147  {
2148  "HCBT_MOVESIZE",
2149  "HCBT_MINMAX",
2150  "HCBT_QS",
2151  "HCBT_CREATEWND",
2152  "HCBT_DESTROYWND",
2153  "HCBT_ACTIVATE",
2154  "HCBT_CLICKSKIPPED",
2155  "HCBT_KEYSKIPPED",
2156  "HCBT_SYSCOMMAND",
2157  "HCBT_SETFOCUS"
2158  };
2159  const char *code_name = (msg->message <= HCBT_SETFOCUS) ? CBT_code_name[msg->message] : "Unknown";
2160 
2161  sprintf( seq->output, "%s: hook %d (%s) wp %08lx lp %08lx",
2162  msg->descr, msg->message, code_name, msg->wParam, msg->lParam );
2163  }
2164  else if (msg->flags & winevent_hook)
2165  {
2166  sprintf( seq->output, "%s: winevent %p %08x %08lx %08lx",
2167  msg->descr, msg->hwnd, msg->message, msg->wParam, msg->lParam );
2168  }
2169  else
2170  {
2171  switch (msg->message)
2172  {
2173  case WM_WINDOWPOSCHANGING:
2174  case WM_WINDOWPOSCHANGED:
2175  {
2176  WINDOWPOS *winpos = (WINDOWPOS *)msg->lParam;
2177 
2178  sprintf( seq->output, "%s: %p WM_WINDOWPOS%s wp %08lx lp %08lx after %p x %d y %d cx %d cy %d flags %s",
2179  msg->descr, msg->hwnd,
2180  (msg->message == WM_WINDOWPOSCHANGING) ? "CHANGING" : "CHANGED",
2181  msg->wParam, msg->lParam, winpos->hwndInsertAfter,
2182  winpos->x, winpos->y, winpos->cx, winpos->cy,
2183  get_winpos_flags(winpos->flags) );
2184 
2185  /* Log only documented flags, win2k uses 0x1000 and 0x2000
2186  * in the high word for internal purposes
2187  */
2188  seq->wParam = winpos->flags & 0xffff;
2189  /* We are not interested in the flags that don't match under XP and Win9x */
2190  seq->wParam &= ~SWP_NOZORDER;
2191  break;
2192  }
2193 
2194  case WM_DRAWITEM:
2195  {
2196  DRAW_ITEM_STRUCT di;
2197  DRAWITEMSTRUCT *dis = (DRAWITEMSTRUCT *)msg->lParam;
2198 
2199  sprintf( seq->output, "%s: %p WM_DRAWITEM: type %x, ctl_id %x, item_id %x, action %x, state %x",
2200  msg->descr, msg->hwnd, dis->CtlType, dis->CtlID,
2201  dis->itemID, dis->itemAction, dis->itemState);
2202 
2203  di.u.lp = 0;
2204  di.u.item.type = dis->CtlType;
2205  di.u.item.ctl_id = dis->CtlID;
2206  if (dis->CtlType == ODT_LISTBOX ||
2207  dis->CtlType == ODT_COMBOBOX ||
2208  dis->CtlType == ODT_MENU)
2209  di.u.item.item_id = dis->itemID;
2210  di.u.item.action = dis->itemAction;
2211  di.u.item.state = dis->itemState;
2212 
2213  seq->lParam = di.u.lp;
2214  break;
2215  }
2216 
2217  case WM_MEASUREITEM:
2218  {
2220  MEASUREITEMSTRUCT *mis = (MEASUREITEMSTRUCT *)msg->lParam;
2221  BOOL is_unicode_data = TRUE;
2222 
2223  sprintf( seq->output, "%s: %p WM_MEASUREITEM: CtlType %#x, CtlID %#x, itemID %#x, itemData %#lx",
2224  msg->descr, msg->hwnd, mis->CtlType, mis->CtlID,
2225  mis->itemID, mis->itemData);
2226 
2227  if (mis->CtlType == ODT_LISTBOX)
2228  {
2229  HWND ctrl = GetDlgItem(msg->hwnd, mis->CtlID);
2230  is_unicode_data = GetWindowLongA(ctrl, GWL_STYLE) & LBS_HASSTRINGS;
2231  }
2232 
2233  mi.u.wp = 0;
2234  mi.u.item.CtlType = mis->CtlType;
2235  mi.u.item.CtlID = mis->CtlID;
2236  mi.u.item.itemID = mis->itemID;
2237  mi.u.item.wParam = msg->wParam;
2238  seq->wParam = mi.u.wp;
2239  if (is_unicode_data)
2240  seq->lParam = mis->itemData ? hash_Ly_W((const WCHAR *)mis->itemData) : 0;
2241  else
2242  seq->lParam = mis->itemData ? hash_Ly((const char *)mis->itemData) : 0;
2243  break;
2244  }
2245 
2246  case WM_COMPAREITEM:
2247  {
2248  COMPAREITEMSTRUCT *cis = (COMPAREITEMSTRUCT *)msg->lParam;
2249  HWND ctrl = GetDlgItem(msg->hwnd, cis->CtlID);
2250  BOOL is_unicode_data = TRUE;
2251 
2252  ok(msg->wParam == cis->CtlID, "expected %#x, got %#lx\n", cis->CtlID, msg->wParam);
2253  ok(cis->hwndItem == ctrl, "expected %p, got %p\n", ctrl, cis->hwndItem);
2254  ok((int)cis->itemID1 >= 0, "expected >= 0, got %d\n", cis->itemID1);
2255  ok((int)cis->itemID2 == -1, "expected -1, got %d\n", cis->itemID2);
2256 
2257  sprintf( seq->output, "%s: %p WM_COMPAREITEM: CtlType %#x, CtlID %#x, itemID1 %#x, itemData1 %#lx, itemID2 %#x, itemData2 %#lx",
2258  msg->descr, msg->hwnd, cis->CtlType, cis->CtlID,
2259  cis->itemID1, cis->itemData1, cis->itemID2, cis->itemData2);
2260 
2261  if (cis->CtlType == ODT_LISTBOX)
2262  is_unicode_data = GetWindowLongA(ctrl, GWL_STYLE) & LBS_HASSTRINGS;
2263 
2264  if (is_unicode_data)
2265  {
2266  seq->wParam = cis->itemData1 ? hash_Ly_W((const WCHAR *)cis->itemData1) : 0;
2267  seq->lParam = cis->itemData2 ? hash_Ly_W((const WCHAR *)cis->itemData2) : 0;
2268  }
2269  else
2270  {
2271  seq->wParam = cis->itemData1 ? hash_Ly((const char *)cis->itemData1) : 0;
2272  seq->lParam = cis->itemData2 ? hash_Ly((const char *)cis->itemData2) : 0;
2273  }
2274  break;
2275  }
2276 
2277  default:
2278  if (msg->message >= 0xc000) return; /* ignore registered messages */
2279  sprintf( seq->output, "%s: %p %04x wp %08lx lp %08lx",
2280  msg->descr, msg->hwnd, msg->message, msg->wParam, msg->lParam );
2281  }
2282  if (msg->flags & (sent|posted|parent|defwinproc|beginpaint))
2283  sprintf( seq->output + strlen(seq->output), " (flags %x)", msg->flags );
2284  }
2285  }
2286 }
int line
Definition: msg.c:169
LPARAM lp
Definition: msg.c:99
#define TRUE
Definition: types.h:120
Definition: msg.c:142
#define ODT_COMBOBOX
Definition: winuser.h:2514
static const char * get_winpos_flags(UINT flags)
Definition: msg.c:2055
ACPI_SIZE strlen(const char *String)
Definition: utclib.c:269
#define LBS_HASSTRINGS
Definition: pedump.c:684
#define ODT_MENU
Definition: winuser.h:2512
HWND hwndInsertAfter
Definition: winuser.h:3564
#define assert(x)
Definition: debug.h:53
ULONG_PTR itemData2
Definition: winuser.h:2971
HWND hwnd
Definition: msg.c:166
static MONITORINFO mi
Definition: win.c:7339
#define HCBT_SETFOCUS
Definition: winuser.h:64
Definition: msg.c:149
#define SWP_NOZORDER
Definition: winuser.h:1232
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)
#define sprintf(buf, format,...)
Definition: sprintf.c:55
LONG WINAPI GetWindowLongA(_In_ HWND, _In_ int)
unsigned int BOOL
Definition: ntddk_ex.h:94
struct DRAW_ITEM_STRUCT::@1681::@1682 item
static struct recvd_message * sequence
Definition: msg.c:2004
UINT flags
Definition: winuser.h:3569
static CRITICAL_SECTION sequence_cs
Definition: msg.c:2006
#define ctrl
Definition: input.c:1762
static int sequence_cnt
Definition: msg.c:2003
ULONG_PTR itemData1
Definition: winuser.h:2969
#define GetProcessHeap()
Definition: compat.h:403
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
HWND WINAPI GetDlgItem(_In_opt_ HWND, _In_ int)
__wchar_t WCHAR
Definition: xmlstorage.h:180
static unsigned hash_Ly(const char *str)
Definition: msg.c:2103
static unsigned hash_Ly_W(const WCHAR *str)
Definition: msg.c:2093
#define WM_WINDOWPOSCHANGING
Definition: winuser.h:1643
#define WM_MEASUREITEM
Definition: winuser.h:1628
char output[512]
Definition: msg.c:171
char line[200]
Definition: main.c:97
ULONG_PTR itemData
Definition: winuser.h:3621
UINT message
Definition: msg.c:164
static int sequence_size
Definition: msg.c:2003
#define GWL_STYLE
Definition: winuser.h:846
WPARAM wParam
Definition: msg.c:167
#define WM_COMPAREITEM
Definition: winuser.h:1637
#define ok(value,...)
Definition: atltest.h:57
#define HeapReAlloc
Definition: compat.h:401
msg_flags_t flags
Definition: msg.c:165
#define ODT_LISTBOX
Definition: winuser.h:2513
#define WM_DRAWITEM
Definition: winuser.h:1627
#define WM_WINDOWPOSCHANGED
Definition: winuser.h:1644
#define msg(x)
Definition: auth_time.c:54
const char * descr
Definition: msg.c:170
LPARAM lParam
Definition: msg.c:168
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)
Definition: msg.c:141
Definition: msg.c:143
union DRAW_ITEM_STRUCT::@1681 u

◆ apc_test_proc()

static void CALLBACK apc_test_proc ( ULONG_PTR  param)
static

Definition at line 4962 of file msg.c.

4963 {
4964  /* nothing */
4965 }

Referenced by test_MsgWaitForMultipleObjects().

◆ BOOL()

static BOOL ( WINAPI pActivateActCtx)
static

Referenced by init_tests(), and START_TEST().

◆ broadcast_test_proc()

static LRESULT WINAPI broadcast_test_proc ( HWND  hwnd,
UINT  message,
WPARAM  wParam,
LPARAM  lParam 
)
static

Definition at line 15920 of file msg.c.

15921 {
15923 
15924  if (wParam == 0xbaadbeef)
15926  else
15927  g_broadcast_lparam = 0;
15928 
15929  return CallWindowProcA(oldproc, hwnd, message, wParam, lParam);
15930 }
const DOCKBAR PVOID HWND HWND * hwnd
Definition: tooldock.h:22
static LPARAM g_broadcast_lparam
Definition: msg.c:15919
Definition: tftpd.h:59
WPARAM wParam
Definition: combotst.c:138
LRESULT WINAPI CallWindowProcA(_In_ WNDPROC, _In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
#define GWLP_USERDATA
Definition: treelist.c:63
#define GetWindowLongPtrA
Definition: winuser.h:4803
LRESULT(CALLBACK * WNDPROC)(HWND, UINT, WPARAM, LPARAM)
Definition: winuser.h:2881
LPARAM lParam
Definition: combotst.c:139

Referenced by test_broadcast().

◆ button_hook_proc()

static LRESULT CALLBACK button_hook_proc ( HWND  hwnd,
UINT  message,
WPARAM  wParam,
LPARAM  lParam 
)
static

Definition at line 6216 of file msg.c.

6217 {
6218  static LONG defwndproc_counter = 0;
6219  LRESULT ret;
6220  struct recvd_message msg;
6221 
6222  if (ignore_message( message )) return 0;
6223 
6224  switch (message)
6225  {
6226  case WM_SYNCPAINT:
6227  break;
6228  case BM_SETSTATE:
6229  if (GetCapture())
6230  ok(GetCapture() == hwnd, "GetCapture() = %p\n", GetCapture());
6231 
6233  goto log_it;
6234 
6235  case WM_GETDLGCODE:
6236  if (lParam)
6237  {
6238  MSG *msg = (MSG *)lParam;
6239  lParam = MAKELPARAM(msg->message, msg->wParam);
6240  }
6242  goto log_it;
6243 
6244  case BM_SETCHECK:
6245  case BM_GETCHECK:
6247  /* fall through */
6248 log_it:
6249  default:
6250  msg.hwnd = hwnd;
6251  msg.message = message;
6252  msg.flags = sent|wparam|lparam;
6253  if (defwndproc_counter) msg.flags |= defwinproc;
6254  msg.wParam = wParam;
6255  msg.lParam = lParam;
6256  msg.descr = "button";
6257  add_message(&msg);
6258  }
6259 
6260  defwndproc_counter++;
6262  defwndproc_counter--;
6263 
6264  return ret;
6265 }
#define WM_SYNCPAINT
Definition: winuser.h:1672
static ULONG_PTR
Definition: msg.c:81
const DOCKBAR PVOID HWND HWND * hwnd
Definition: tooldock.h:22
#define BM_SETSTATE
Definition: winuser.h:1905
Definition: tftpd.h:59
#define WM_GETDLGCODE
Definition: winuser.h:1671
TW_UINT32 TW_UINT16 TW_UINT16 MSG
Definition: twain.h:1827
#define MAKELPARAM(l, h)
Definition: winuser.h:3983
GLenum GLuint GLenum GLsizei const GLchar * message
Definition: glext.h:5579
static BOOL ignore_message(UINT message)
Definition: msg.c:2081
WPARAM wParam
Definition: combotst.c:138
LRESULT WINAPI CallWindowProcA(_In_ WNDPROC, _In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
long LONG
Definition: pedump.c:60
HWND WINAPI GetCapture(void)
Definition: message.c:2879
#define BM_GETCHECK
Definition: winuser.h:1900
#define BM_SETCHECK
Definition: winuser.h:1903
Definition: msg.c:145
static WNDPROC old_button_proc
Definition: msg.c:6214
int ret
#define add_message(msg)
Definition: msg.c:2113
#define ok(value,...)
Definition: atltest.h:57
#define msg(x)
Definition: auth_time.c:54
LONG_PTR LRESULT
Definition: windef.h:209
HMENU WINAPI GetMenu(_In_ HWND)
LPARAM lParam
Definition: combotst.c:139
Definition: msg.c:144
Definition: msg.c:141

Referenced by subclass_button().

◆ callback_count()

static void CALLBACK callback_count ( HWND  hwnd,
UINT  uMsg,
UINT_PTR  idEvent,
DWORD  dwTime 
)
static

Definition at line 10226 of file msg.c.

10227 {
10228  count++;
10229 }
GLuint GLuint GLsizei count
Definition: gl.h:1545

Referenced by test_timers(), and test_timers_no_wnd().

◆ callback_exception()

static void CALLBACK callback_exception ( HWND  hwnd,
UINT  uMsg,
UINT_PTR  idEvent,
DWORD  dwTime 
)
static

Definition at line 10232 of file msg.c.

10233 {
10234  count++;
10235  RaiseException(exception, 0, 0, NULL);
10236 }
GLuint GLuint GLsizei count
Definition: gl.h:1545
smooth NULL
Definition: ftsmooth.c:416
VOID WINAPI RaiseException(IN DWORD dwExceptionCode, IN DWORD dwExceptionFlags, IN DWORD nNumberOfArguments, IN CONST ULONG_PTR *lpArguments OPTIONAL)
Definition: except.c:693

Referenced by test_timers_exception().

◆ cancel_init_proc()

static LRESULT WINAPI cancel_init_proc ( HWND  hwnd,
UINT  message,
WPARAM  wParam,
LPARAM  lParam 
)
static

Definition at line 17343 of file msg.c.

17344 {
17345  if (ignore_message( message )) return 0;
17346 
17347  switch (message) {
17348  case WM_ENTERMENULOOP:
17349  ok(EndMenu() == TRUE, "EndMenu() failed\n");
17350  break;
17351  }
17352 
17353  return MsgCheckProc (FALSE, hwnd, message, wParam, lParam);
17354 }
const DOCKBAR PVOID HWND HWND * hwnd
Definition: tooldock.h:22
Definition: tftpd.h:59
#define TRUE
Definition: types.h:120
static BOOL ignore_message(UINT message)
Definition: msg.c:2081
WPARAM wParam
Definition: combotst.c:138
static LRESULT MsgCheckProc(BOOL unicode, HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
Definition: msg.c:9384
#define WM_ENTERMENULOOP
Definition: winuser.h:1786
#define ok(value,...)
Definition: atltest.h:57
BOOL WINAPI EndMenu(void)
LPARAM lParam
Definition: combotst.c:139

Referenced by test_TrackPopupMenu().

◆ cancel_popup_proc()

static LRESULT WINAPI cancel_popup_proc ( HWND  hwnd,
UINT  message,
WPARAM  wParam,
LPARAM  lParam 
)
static

Definition at line 17321 of file msg.c.

17322 {
17323  if (ignore_message( message )) return 0;
17324 
17325  switch (message) {
17326  case WM_ENTERIDLE:
17327  todo_wine ok(GetCapture() == hwnd, "expected %p, got %p\n", hwnd, GetCapture());
17328  EndMenu();
17329  break;
17330  case WM_INITMENU:
17331  case WM_INITMENUPOPUP:
17332  case WM_UNINITMENUPOPUP:
17333  ok((HMENU)wParam == hpopupmenu, "expected %p, got %lx\n", hpopupmenu, wParam);
17334  break;
17335  case WM_CAPTURECHANGED:
17336  todo_wine ok(!lParam || (HWND)lParam == hwnd, "lost capture to %lx\n", lParam);
17337  break;
17338  }
17339 
17340  return MsgCheckProc (FALSE, hwnd, message, wParam, lParam);
17341 }
const DOCKBAR PVOID HWND HWND * hwnd
Definition: tooldock.h:22
Definition: tftpd.h:59
#define WM_INITMENUPOPUP
Definition: winuser.h:1728
#define WM_CAPTURECHANGED
Definition: winuser.h:1790
static BOOL ignore_message(UINT message)
Definition: msg.c:2081
WPARAM wParam
Definition: combotst.c:138
static LRESULT MsgCheckProc(BOOL unicode, HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
Definition: msg.c:9384
HWND WINAPI GetCapture(void)
Definition: message.c:2879
static HMENU hpopupmenu
Definition: msg.c:17319
#define WM_ENTERIDLE
Definition: winuser.h:1731
#define todo_wine
Definition: test.h:163
#define WM_INITMENU
Definition: winuser.h:1727
#define ok(value,...)
Definition: atltest.h:57
BOOL WINAPI EndMenu(void)
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
Definition: ordinal.c:60
LPARAM lParam
Definition: combotst.c:139

Referenced by test_TrackPopupMenu(), and test_TrackPopupMenuEmpty().

◆ cbt_global_hook_proc()

static LRESULT CALLBACK cbt_global_hook_proc ( int  nCode,
WPARAM  wParam,
LPARAM  lParam 
)
static

Definition at line 10540 of file msg.c.

10541 {
10542  HWND hwnd;
10543  char buf[256];
10544 
10545  if (nCode == HCBT_SYSCOMMAND)
10546  {
10547  struct recvd_message msg;
10548 
10549  msg.hwnd = 0;
10550  msg.message = nCode;
10551  msg.flags = hook|wparam|lparam;
10552  msg.wParam = wParam;
10553  msg.lParam = (cbt_global_hook_thread_id == GetCurrentThreadId()) ? 1 : 2;
10554  msg.descr = "CBT_2";
10555  add_message(&msg);
10556 
10557  return CallNextHookEx(hCBT_global_hook, nCode, wParam, lParam);
10558  }
10559  /* WH_MOUSE_LL hook */
10560  if (nCode == HC_ACTION)
10561  {
10563 
10564  /* we can't test for real mouse events */
10565  if (mhll->flags & LLMHF_INJECTED)
10566  {
10567  struct recvd_message msg;
10568 
10569  memset (&msg, 0, sizeof (msg));
10570  msg.message = wParam;
10571  msg.flags = hook;
10572  msg.descr = "CBT_2";
10573  add_message(&msg);
10574  }
10575  return CallNextHookEx(hCBT_global_hook, nCode, wParam, lParam);
10576  }
10577 
10578  /* Log also SetFocus(0) calls */
10579  hwnd = wParam ? (HWND)wParam : (HWND)lParam;
10580 
10581  if (GetClassNameA(hwnd, buf, sizeof(buf)))
10582  {
10583  if (!lstrcmpiA(buf, "TestWindowClass") ||
10584  !lstrcmpiA(buf, "static"))
10585  {
10586  struct recvd_message msg;
10587 
10588  msg.hwnd = hwnd;
10589  msg.message = nCode;
10590  msg.flags = hook|wparam|lparam;
10591  msg.wParam = wParam;
10592  msg.lParam = (cbt_global_hook_thread_id == GetCurrentThreadId()) ? 1 : 2;
10593  msg.descr = "CBT_2";
10594  add_message(&msg);
10595  }
10596  }
10597  return CallNextHookEx(hCBT_global_hook, nCode, wParam, lParam);
10598 }
const DOCKBAR PVOID HWND HWND * hwnd
Definition: tooldock.h:22
#define HCBT_SYSCOMMAND
Definition: winuser.h:63
static DWORD cbt_global_hook_thread_id
Definition: msg.c:10538
int WINAPI GetClassNameA(_In_ HWND hWnd, _Out_writes_to_(nMaxCount, return) LPSTR lpClassName, _In_ int nMaxCount)
int WINAPI lstrcmpiA(LPCSTR lpString1, LPCSTR lpString2)
Definition: lstring.c:42
GLenum GLuint GLenum GLsizei const GLchar * buf
Definition: glext.h:7751
Definition: msg.c:149
WPARAM wParam
Definition: combotst.c:138
DWORD WINAPI GetCurrentThreadId(VOID)
Definition: thread.c:458
#define LLMHF_INJECTED
Definition: winuser.h:2624
Definition: msg.c:145
static HWND
Definition: msg.c:2011
LRESULT WINAPI CallNextHookEx(_In_opt_ HHOOK, _In_ int, _In_ WPARAM, _In_ LPARAM)
#define add_message(msg)
Definition: msg.c:2113
static HHOOK hCBT_global_hook
Definition: msg.c:10537
#define HC_ACTION
Definition: winuser.h:48
#define msg(x)
Definition: auth_time.c:54
#define memset(x, y, z)
Definition: compat.h:39
LPARAM lParam
Definition: combotst.c:139
Definition: msg.c:144

Referenced by test_winevents().

◆ cbt_global_hook_thread_proc()

static DWORD WINAPI cbt_global_hook_thread_proc ( void param)
static

Definition at line 10629 of file msg.c.

10630 {
10631  HWND hwnd;
10632  MSG msg;
10633  HANDLE hevent = *(HANDLE *)param;
10634 
10635  flush_sequence();
10636  /* these events should be received only by our new hook proc,
10637  * an old one does not expect an event from another thread.
10638  */
10639 
10640  hwnd = CreateWindowExA(0, "static", NULL, WS_POPUP, 0,0,0,0,0,0,0, NULL);
10641  assert(hwnd);
10642  trace("created thread window %p\n", hwnd);
10643 
10644  *(HWND *)param = hwnd;
10645 
10646  /* Windows doesn't like when a thread plays games with the focus,
10647  that leads to all kinds of misbehaviours and failures to activate
10648  a window. So, better keep next lines commented out.
10649  SetFocus(0);
10650  SetFocus(hwnd);*/
10651 
10654 
10655  SetEvent(hevent);
10656 
10657  while (GetMessageA(&msg, 0, 0, 0))
10658  {
10661  }
10662  return 0;
10663 }
const DOCKBAR PVOID HWND HWND * hwnd
Definition: tooldock.h:22
static void flush_sequence(void)
Definition: msg.c:2304
BOOL WINAPI TranslateMessage(_In_ const MSG *)
LRESULT WINAPI DispatchMessageA(_In_ const MSG *)
TW_UINT32 TW_UINT16 TW_UINT16 MSG
Definition: twain.h:1827
BOOL WINAPI GetMessageA(_Out_ LPMSG, _In_opt_ HWND, _In_ UINT, _In_ UINT)
#define assert(x)
Definition: debug.h:53
BOOL WINAPI DECLSPEC_HOTPATCH SetEvent(IN HANDLE hEvent)
Definition: synch.c:733
static HANDLE hevent
Definition: broadcast.c:38
smooth NULL
Definition: ftsmooth.c:416
#define trace
Definition: atltest.h:70
GLfloat param
Definition: glext.h:5796
#define SC_PREVWINDOW
Definition: winuser.h:2566
LRESULT WINAPI DefWindowProcA(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
#define WS_POPUP
Definition: pedump.c:616
#define msg(x)
Definition: auth_time.c:54
HWND WINAPI CreateWindowExA(_In_ DWORD dwExStyle, _In_opt_ LPCSTR lpClassName, _In_opt_ LPCSTR 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 SC_NEXTWINDOW
Definition: winuser.h:2565
#define WM_SYSCOMMAND
Definition: winuser.h:1723

Referenced by test_winevents().

◆ cbt_hook_proc()

static LRESULT CALLBACK cbt_hook_proc ( int  nCode,
WPARAM  wParam,
LPARAM  lParam 
)
static

Definition at line 9959 of file msg.c.

9960 {
9961  HWND hwnd;
9962 
9963  ok(cbt_hook_thread_id == GetCurrentThreadId(), "we didn't ask for events from other threads\n");
9964 
9965  if (nCode == HCBT_CLICKSKIPPED)
9966  {
9967  /* ignore this event, XP sends it a lot when switching focus between windows */
9968  return CallNextHookEx(hCBT_hook, nCode, wParam, lParam);
9969  }
9970 
9971  if (nCode == HCBT_SYSCOMMAND || nCode == HCBT_KEYSKIPPED)
9972  {
9973  struct recvd_message msg;
9974 
9975  msg.hwnd = 0;
9976  msg.message = nCode;
9977  msg.flags = hook|wparam|lparam;
9978  msg.wParam = wParam;
9979  msg.lParam = lParam;
9980  msg.descr = "CBT";
9981  add_message(&msg);
9982 
9983  return CallNextHookEx(hCBT_hook, nCode, wParam, lParam);
9984  }
9985 
9986  if (nCode == HCBT_DESTROYWND)
9987  {
9989  {
9991  if (style & WS_CHILD)
9993  else if (style & WS_POPUP)
9994  lParam = WND_POPUP_ID;
9995  else
9997  }
9998  }
9999 
10000  /* Log also SetFocus(0) calls */
10001  hwnd = wParam ? (HWND)wParam : (HWND)lParam;
10002 
10004  {
10005  struct recvd_message msg;
10006 
10007  msg.hwnd = hwnd;
10008  msg.message = nCode;
10009  msg.flags = hook|wparam|lparam;
10010  msg.wParam = wParam;
10011  msg.lParam = lParam;
10012  msg.descr = "CBT";
10013  add_message(&msg);
10014  }
10015  return CallNextHookEx(hCBT_hook, nCode, wParam, lParam);
10016 }
#define HCBT_CLICKSKIPPED
Definition: winuser.h:61
const DOCKBAR PVOID HWND HWND * hwnd
Definition: tooldock.h:22
#define HCBT_SYSCOMMAND
Definition: winuser.h:63
#define WND_PARENT_ID
Definition: msg.c:59
static HHOOK hCBT_hook
Definition: msg.c:122
#define WS_CHILD
Definition: pedump.c:617
Definition: msg.c:149
WPARAM wParam
Definition: combotst.c:138
static BOOL test_DestroyWindow_flag
Definition: msg.c:119
#define HCBT_KEYSKIPPED
Definition: winuser.h:62
LONG WINAPI GetWindowLongA(_In_ HWND, _In_ int)
#define HCBT_DESTROYWND
Definition: winuser.h:59
DWORD WINAPI GetCurrentThreadId(VOID)
Definition: thread.c:458
#define GetWindowLongPtrA
Definition: winuser.h:4803
static BOOL is_our_logged_class(HWND hwnd)
Definition: msg.c:9930
unsigned long DWORD
Definition: ntddk_ex.h:95
Definition: msg.c:145
static DWORD cbt_hook_thread_id
Definition: msg.c:123
static HWND
Definition: msg.c:2011
#define GWL_STYLE
Definition: winuser.h:846
LRESULT WINAPI CallNextHookEx(_In_opt_ HHOOK, _In_ int, _In_ WPARAM, _In_ LPARAM)
#define add_message(msg)
Definition: msg.c:2113
#define ok(value,...)
Definition: atltest.h:57
#define WS_POPUP
Definition: pedump.c:616
#define msg(x)
Definition: auth_time.c:54
Arabic default style
Definition: afstyles.h:93
#define WND_POPUP_ID
Definition: msg.c:60
LPARAM lParam
Definition: combotst.c:139
Definition: msg.c:144
#define GWLP_ID
Definition: winuser.h:854

Referenced by init_tests(), START_TEST(), and test_set_hook().

◆ check_lb_state_dbg()

static void check_lb_state_dbg ( HWND  listbox,
int  count,
int  cur_sel,
int  caret_index,
int  top_index,
int  line 
)
static

Definition at line 14901 of file msg.c.

14903 {
14904  LRESULT ret;
14905 
14906  /* calling an orig proc helps to avoid unnecessary message logging */
14907  ret = CallWindowProcA(listbox_orig_proc, listbox, LB_GETCOUNT, 0, 0);
14908  ok_(__FILE__, line)(ret == count, "expected count %d, got %ld\n", count, ret);
14909  ret = CallWindowProcA(listbox_orig_proc, listbox, LB_GETCURSEL, 0, 0);
14910  ok_(__FILE__, line)(ret == cur_sel, "expected cur sel %d, got %ld\n", cur_sel, ret);
14911  ret = CallWindowProcA(listbox_orig_proc, listbox, LB_GETCARETINDEX, 0, 0);
14912  ok_(__FILE__, line)(ret == caret_index ||
14913  broken(cur_sel == -1 && caret_index == 0 && ret == -1), /* nt4 */
14914  "expected caret index %d, got %ld\n", caret_index, ret);
14915  ret = CallWindowProcA(listbox_orig_proc, listbox, LB_GETTOPINDEX, 0, 0);
14916  ok_(__FILE__, line)(ret == top_index, "expected top index %d, got %ld\n", top_index, ret);
14917 }
DWORD broken
Definition: msg.c:16038
LRESULT WINAPI CallWindowProcA(_In_ WNDPROC, _In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
Definition: parser.c:48
#define LB_GETCOUNT
Definition: winuser.h:2020
static int count
Definition: msg.c:10225
int ret
#define LB_GETTOPINDEX
Definition: winuser.h:2033
#define LB_GETCARETINDEX
Definition: winuser.h:2019
#define LB_GETCURSEL
Definition: winuser.h:2021
LONG_PTR LRESULT
Definition: windef.h:209
#define ok_(x1, x2)
Definition: atltest.h:61

◆ check_update_rgn_()

static void check_update_rgn_ ( int  line,
HWND  hwnd,
HRGN  hrgn 
)
static

Definition at line 7721 of file msg.c.

7722 {
7723  INT ret;
7724  RECT r1, r2;
7725  HRGN tmp = CreateRectRgn( 0, 0, 0, 0 );
7726  HRGN update = CreateRectRgn( 0, 0, 0, 0 );
7727 
7728  ret = GetUpdateRgn( hwnd, update, FALSE );
7729  ok( ret != ERROR, "GetUpdateRgn failed\n" );
7730  if (ret == NULLREGION)
7731  {
7732  ok_(__FILE__,line)( !hrgn, "Update region shouldn't be empty\n" );
7733  }
7734  else
7735  {
7736  if (CombineRgn( tmp, hrgn, update, RGN_XOR ) != NULLREGION)
7737  {
7738  ok_(__FILE__,line)( 0, "Regions are different\n" );
7739  if (winetest_debug > 0)
7740  {
7741  printf( "Update region: " );
7742  dump_region( update );
7743  printf( "Wanted region: " );
7744  dump_region( hrgn );
7745  }
7746  }
7747  }
7748  GetRgnBox( update, &r1 );
7749  GetUpdateRect( hwnd, &r2, FALSE );
7750  ok_(__FILE__,line)( EqualRect( &r1, &r2 ), "Rectangles are different: %s / %s\n",
7752 
7753  DeleteObject( tmp );
7754  DeleteObject( update );
7755 }
int WINAPI CombineRgn(_In_opt_ HRGN hrgnDest, _In_opt_ HRGN hrgnSrc1, _In_opt_ HRGN hrgnSrc2, _In_ int fnCombineMode)
const DOCKBAR PVOID HWND HWND * hwnd
Definition: tooldock.h:22
#define ERROR(name)
Definition: error_private.h:53
static DNS_RECORDW r1
Definition: record.c:37
#define NULLREGION
Definition: wingdi.h:360
BOOL WINAPI DeleteObject(_In_ HGDIOBJ)
int winetest_debug
int32_t INT
Definition: typedefs.h:56
#define RGN_XOR
Definition: wingdi.h:359
int WINAPI GetUpdateRgn(_In_ HWND, _In_ HRGN, _In_ BOOL)
Definition: parser.c:48
HRGN WINAPI CreateRectRgn(_In_ int, _In_ int, _In_ int, _In_ int)
void dump_region(HRGN hrgn)
Definition: msg.c:7699
static DNS_RECORDW r2
Definition: record.c:38
const char * wine_dbgstr_rect(const RECT *rect)
int ret
static HRGN hrgn
Definition: win.c:55
BOOL WINAPI GetUpdateRect(_In_ HWND, _Out_opt_ LPRECT, _In_ BOOL)
int WINAPI GetRgnBox(_In_ HRGN, _Out_ LPRECT)
BOOL WINAPI EqualRect(_In_ LPCRECT, _In_ LPCRECT)
#define ok(value,...)
Definition: atltest.h:57
#define ok_(x1, x2)
Definition: atltest.h:61
#define printf
Definition: config.h:203

◆ cleanup_tests()

static void cleanup_tests ( )
static

Definition at line 18009 of file msg.c.

18010 {
18011  BOOL ret;
18013  if (pUnhookWinEvent && hEvent_hook)
18014  {
18015  ret = pUnhookWinEvent(hEvent_hook);
18016  ok( ret, "UnhookWinEvent error %d\n", GetLastError());
18017  SetLastError(0xdeadbeef);
18018  ok(!pUnhookWinEvent(hEvent_hook), "UnhookWinEvent succeeded\n");
18019  ok(GetLastError() == ERROR_INVALID_HANDLE || /* Win2k */
18020  GetLastError() == 0xdeadbeef, /* Win9x */
18021  "unexpected error %d\n", GetLastError());
18022  }
18024 
18025 }
#define ERROR_INVALID_HANDLE
Definition: compat.h:88
static HHOOK hCBT_hook
Definition: msg.c:122
DWORD WINAPI GetLastError(VOID)
Definition: except.c:1059
unsigned int BOOL
Definition: ntddk_ex.h:94
static CRITICAL_SECTION sequence_cs
Definition: msg.c:2006
void WINAPI DeleteCriticalSection(PCRITICAL_SECTION)
#define SetLastError(x)
Definition: compat.h:417
int ret
BOOL WINAPI UnhookWindowsHookEx(_In_ HHOOK)
#define ok(value,...)
Definition: atltest.h:57
static HWINEVENTHOOK hEvent_hook
Definition: msg.c:120

Referenced by START_TEST().

◆ clear_clipboard_()

static void clear_clipboard_ ( int  line,
HWND  hWnd 
)
static

Definition at line 15694 of file msg.c.

15695 {
15696  BOOL succ;
15697  succ = OpenClipboard(hWnd);
15698  ok_(__FILE__, line)(succ, "OpenClipboard failed, err=%u\n", GetLastError());
15699  succ = EmptyClipboard();
15700  ok_(__FILE__, line)(succ, "EmptyClipboard failed, err=%u\n", GetLastError());
15701  succ = CloseClipboard();
15702  ok_(__FILE__, line)(succ, "CloseClipboard failed, err=%u\n", GetLastError());
15703 }
HWND hWnd
Definition: settings.c:17
DWORD WINAPI GetLastError(VOID)
Definition: except.c:1059
unsigned int BOOL
Definition: ntddk_ex.h:94
Definition: parser.c:48
BOOL WINAPI EmptyClipboard(void)
Definition: ntwrapper.h:190
BOOL WINAPI CloseClipboard(void)
Definition: ntwrapper.h:178
BOOL WINAPI OpenClipboard(_In_opt_ HWND)
#define ok_(x1, x2)
Definition: atltest.h:61

◆ combobox_edit_subclass_proc()

static LRESULT CALLBACK combobox_edit_subclass_proc ( HWND  hwnd,
UINT  message,
WPARAM  wParam,
LPARAM  lParam 
)
static

Definition at line 7375 of file msg.c.

7377 {
7378  static LONG defwndproc_counter = 0;
7379  LRESULT ret;
7380  struct recvd_message msg;
7381 
7382  /* do not log painting messages */
7383  if (message != WM_PAINT &&
7384  message != WM_NCPAINT &&
7385  message != WM_SYNCPAINT &&
7386  message != WM_ERASEBKGND &&
7387  message != WM_NCHITTEST &&
7388  message != WM_GETTEXT &&
7389  !ignore_message( message ))
7390  {
7391  msg.hwnd = hwnd;
7392  msg.message = message;
7393  msg.flags = sent|wparam|lparam;
7394  if (defwndproc_counter) msg.flags |= defwinproc;
7395  msg.wParam = wParam;
7396  msg.lParam = lParam;
7397  msg.descr = "combo edit";
7398  add_message(&msg);
7399  }
7400 
7401  defwndproc_counter++;
7403  defwndproc_counter--;
7404 
7405  return ret;
7406 }
#define WM_SYNCPAINT
Definition: winuser.h:1672
const DOCKBAR PVOID HWND HWND * hwnd
Definition: tooldock.h:22
Definition: tftpd.h:59
#define WM_GETTEXT
Definition: winuser.h:1600
GLenum GLuint GLenum GLsizei const GLchar * message
Definition: glext.h:5579
#define WM_NCHITTEST
Definition: winuser.h:1668
static BOOL ignore_message(UINT message)
Definition: msg.c:2081
WPARAM wParam
Definition: combotst.c:138
LRESULT WINAPI CallWindowProcA(_In_ WNDPROC, _In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
#define WM_NCPAINT
Definition: winuser.h:1669
long LONG
Definition: pedump.c:60
Definition: msg.c:145
#define WM_PAINT
Definition: winuser.h:1602
int ret
#define add_message(msg)
Definition: msg.c:2113
static WNDPROC edit_window_proc
Definition: msg.c:7373
#define msg(x)
Definition: auth_time.c:54
#define WM_ERASEBKGND
Definition: winuser.h:1607
LONG_PTR LRESULT
Definition: windef.h:209
LPARAM lParam
Definition: combotst.c:139
Definition: msg.c:144
Definition: msg.c:141

Referenced by test_combobox_messages().

◆ combobox_hook_proc()

static LRESULT CALLBACK combobox_hook_proc ( HWND  hwnd,
UINT  message,
WPARAM  wParam,
LPARAM  lParam 
)
static

Definition at line 7440 of file msg.c.

7441 {
7442  static LONG defwndproc_counter = 0;
7443  LRESULT ret;
7444  struct recvd_message msg;
7445 
7446  /* do not log painting messages */
7447  if (message != WM_PAINT &&
7448  message != WM_NCPAINT &&
7449  message != WM_SYNCPAINT &&
7450  message != WM_ERASEBKGND &&
7451  message != WM_NCHITTEST &&
7452  message != WM_GETTEXT &&
7453  !ignore_message( message ))
7454  {
7455  msg.hwnd = hwnd;
7456  msg.message = message;
7457  msg.flags = sent|wparam|lparam;
7458  if (defwndproc_counter) msg.flags |= defwinproc;
7459  msg.wParam = wParam;
7460  msg.lParam = lParam;
7461  msg.descr = "combo";
7462  add_message(&msg);
7463  }
7464 
7465  defwndproc_counter++;
7467  defwndproc_counter--;
7468 
7469  return ret;
7470 }
#define WM_SYNCPAINT
Definition: winuser.h:1672
const DOCKBAR PVOID HWND HWND * hwnd
Definition: tooldock.h:22
static WNDPROC old_combobox_proc
Definition: msg.c:7373
Definition: tftpd.h:59
#define WM_GETTEXT
Definition: winuser.h:1600
GLenum GLuint GLenum GLsizei const GLchar * message
Definition: glext.h:5579
#define WM_NCHITTEST
Definition: winuser.h:1668
static BOOL ignore_message(UINT message)
Definition: msg.c:2081
WPARAM wParam
Definition: combotst.c:138
LRESULT WINAPI CallWindowProcA(_In_ WNDPROC, _In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
#define WM_NCPAINT
Definition: winuser.h:1669
long LONG
Definition: pedump.c:60
Definition: msg.c:145
#define WM_PAINT
Definition: winuser.h:1602
int ret
#define add_message(msg)
Definition: msg.c:2113
#define msg(x)
Definition: auth_time.c:54
#define WM_ERASEBKGND
Definition: winuser.h:1607
LONG_PTR LRESULT
Definition: windef.h:209
LPARAM lParam
Definition: combotst.c:139
Definition: msg.c:144
Definition: msg.c:141

Referenced by subclass_combobox().

◆ combobox_lbox_subclass_proc()

static LRESULT CALLBACK combobox_lbox_subclass_proc ( HWND  hwnd,
UINT  message,
WPARAM  wParam,
LPARAM  lParam 
)
static

Definition at line 7408 of file msg.c.

7410 {
7411  static LONG defwndproc_counter = 0;
7412  LRESULT ret;
7413  struct recvd_message msg;
7414 
7415  /* do not log painting messages */
7416  if (message != WM_PAINT &&
7417  message != WM_NCPAINT &&
7418  message != WM_SYNCPAINT &&
7419  message != WM_ERASEBKGND &&
7420  message != WM_NCHITTEST &&
7421  !ignore_message( message ))
7422  {
7423  msg.hwnd = hwnd;
7424  msg.message = message;
7425  msg.flags = sent|wparam|lparam;
7426  if (defwndproc_counter) msg.flags |= defwinproc;
7427  msg.wParam = wParam;
7428  msg.lParam = lParam;
7429  msg.descr = "combo lbox";
7430  add_message(&msg);
7431  }
7432 
7433  defwndproc_counter++;
7435  defwndproc_counter--;
7436 
7437  return ret;
7438 }
#define WM_SYNCPAINT
Definition: winuser.h:1672
const DOCKBAR PVOID HWND HWND * hwnd
Definition: tooldock.h:22
Definition: tftpd.h:59
GLenum GLuint GLenum GLsizei const GLchar * message
Definition: glext.h:5579
#define WM_NCHITTEST
Definition: winuser.h:1668
static BOOL ignore_message(UINT message)
Definition: msg.c:2081
WPARAM wParam
Definition: combotst.c:138
LRESULT WINAPI CallWindowProcA(_In_ WNDPROC, _In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
#define WM_NCPAINT
Definition: winuser.h:1669
long LONG
Definition: pedump.c:60
Definition: msg.c:145
#define WM_PAINT
Definition: winuser.h:1602
int ret
static WNDPROC lbox_window_proc
Definition: msg.c:7373
#define add_message(msg)
Definition: msg.c:2113
#define msg(x)
Definition: auth_time.c:54
#define WM_ERASEBKGND
Definition: winuser.h:1607
LONG_PTR LRESULT
Definition: windef.h:209
LPARAM lParam
Definition: combotst.c:139
Definition: msg.c:144
Definition: msg.c:141

Referenced by test_combobox_messages().

◆ create_child_thread()

static DWORD CALLBACK create_child_thread ( void param)
static

Definition at line 8577 of file msg.c.

8578 {
8579  struct wnd_event *wnd_event = param;
8580  struct wnd_event child_event;
8581  DWORD ret, tid;
8582  MSG msg;
8583 
8584  child_event.hwnd = CreateWindowExA(0, "TestWindowClass", "Test child",
8585  WS_CHILD | WS_VISIBLE, 0, 0, 10, 10, wnd_event->hwnd, 0, 0, NULL);
8586  ok (child_event.hwnd != 0, "Failed to create child window\n");
8587  SetFocus( child_event.hwnd );
8588  flush_events();
8589  flush_sequence();
8590  child_event.start_event = wnd_event->start_event;
8592  for (;;)
8593  {
8594  DWORD ret = MsgWaitForMultipleObjects(1, &child_event.start_event, FALSE, 1000, QS_SENDMESSAGE);
8595  if (ret != 1) break;
8596  while (PeekMessageA(&msg, 0, 0, 0, PM_REMOVE)) DispatchMessageA(&msg);
8597  }
8599  ok( !ret, "WaitForSingleObject failed %x\n", ret );
8600  return 0;
8601 }
HANDLE grand_child
Definition: msg.c:8528
static void flush_sequence(void)
Definition: msg.c:2304
LRESULT WINAPI DispatchMessageA(_In_ const MSG *)
static DWORD CALLBACK create_grand_child_thread(void *param)
Definition: msg.c:8555
TW_UINT32 TW_UINT16 TW_UINT16 MSG
Definition: twain.h:1827
HWND WINAPI SetFocus(_In_opt_ HWND)
#define WS_CHILD
Definition: pedump.c:617
BOOL WINAPI PeekMessageA(_Out_ LPMSG, _In_opt_ HWND, _In_ UINT, _In_ UINT, _In_ UINT)
static void flush_events(void)
Definition: msg.c:2289
DWORD WINAPI WaitForSingleObject(IN HANDLE hHandle, IN DWORD dwMilliseconds)
Definition: synch.c:82
HWND hwnd
Definition: input.c:2597
HANDLE WINAPI DECLSPEC_HOTPATCH CreateThread(IN LPSECURITY_ATTRIBUTES lpThreadAttributes, IN DWORD dwStackSize, IN LPTHREAD_START_ROUTINE lpStartAddress, IN LPVOID lpParameter, IN DWORD dwCreationFlags, OUT LPDWORD lpThreadId)
Definition: thread.c:136
smooth NULL
Definition: ftsmooth.c:416
#define QS_SENDMESSAGE
Definition: winuser.h:892
HANDLE stop_event
Definition: msg.c:8530
GLfloat param
Definition: glext.h:5796
unsigned long DWORD
Definition: ntddk_ex.h:95
HANDLE start_event
Definition: input.c:2599
DWORD WINAPI MsgWaitForMultipleObjects(_In_ DWORD nCount, _In_reads_opt_(nCount) CONST HANDLE *pHandles, _In_ BOOL fWaitAll, _In_ DWORD dwMilliseconds, _In_ DWORD dwWakeMask)
int ret
#define ok(value,...)
Definition: atltest.h:57
#define msg(x)
Definition: auth_time.c:54
HWND WINAPI CreateWindowExA(_In_ DWORD dwExStyle, _In_opt_ LPCSTR lpClassName, _In_opt_ LPCSTR 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 PM_REMOVE
Definition: winuser.h:1182
#define WS_VISIBLE
Definition: pedump.c:620
static TfClientId tid

Referenced by test_interthread_messages().

◆ create_grand_child_thread()

static DWORD CALLBACK create_grand_child_thread ( void param)
static

Definition at line 8555 of file msg.c.

8556 {
8557  struct wnd_event *wnd_event = param;
8558  HWND hchild;
8559  MSG msg;
8560 
8561  hchild = CreateWindowExA(0, "TestWindowClass", "Test child",
8562  WS_CHILD | WS_VISIBLE, 0, 0, 10, 10, wnd_event->hwnd, 0, 0, NULL);
8563  ok (hchild != 0, "Failed to create child window\n");
8564  flush_events();
8565  flush_sequence();
8567 
8568  for (;;)
8569  {
8571  if (!IsWindow( hchild )) break; /* will be destroyed when parent thread exits */
8572  while (PeekMessageA(&msg, 0, 0, 0, PM_REMOVE)) DispatchMessageA(&msg);
8573  }
8574  return 0;
8575 }
static void flush_sequence(void)
Definition: msg.c:2304
LRESULT WINAPI DispatchMessageA(_In_ const MSG *)
BOOL WINAPI IsWindow(_In_opt_ HWND)
TW_UINT32 TW_UINT16 TW_UINT16 MSG
Definition: twain.h:1827
BOOL WINAPI DECLSPEC_HOTPATCH SetEvent(IN HANDLE hEvent)
Definition: synch.c:733
#define WS_CHILD
Definition: pedump.c:617
BOOL WINAPI PeekMessageA(_Out_ LPMSG, _In_opt_ HWND, _In_ UINT, _In_ UINT, _In_ UINT)
static void flush_events(void)
Definition: msg.c:2289
HWND hwnd
Definition: input.c:2597
smooth NULL
Definition: ftsmooth.c:416
GLfloat param
Definition: glext.h:5796
HANDLE start_event
Definition: input.c:2599
DWORD WINAPI MsgWaitForMultipleObjects(_In_ DWORD nCount, _In_reads_opt_(nCount) CONST HANDLE *pHandles, _In_ BOOL fWaitAll, _In_ DWORD dwMilliseconds, _In_ DWORD dwWakeMask)
#define QS_ALLINPUT
Definition: winuser.h:874
#define ok(value,...)
Definition: atltest.h:57
#define msg(x)
Definition: auth_time.c:54
HWND WINAPI CreateWindowExA(_In_ DWORD dwExStyle, _In_opt_ LPCSTR lpClassName, _In_opt_ LPCSTR 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 PM_REMOVE
Definition: winuser.h:1182
#define WS_VISIBLE
Definition: pedump.c:620

Referenced by create_child_thread().

◆ create_manifest_file()

static void create_manifest_file ( const char filename,
const char manifest 
)
static

Definition at line 8619 of file msg.c.

8620 {
8621  WCHAR path[MAX_PATH];
8622  HANDLE file;
8623  DWORD size;
8624 
8627  ok(file != INVALID_HANDLE_VALUE, "CreateFile failed: %u\n", GetLastError());
8629  CloseHandle(file);
8630 }
BOOL WINAPI WriteFile(IN HANDLE hFile, IN LPCVOID lpBuffer, IN DWORD nNumberOfBytesToWrite OPTIONAL, OUT LPDWORD lpNumberOfBytesWritten, IN LPOVERLAPPED lpOverlapped OPTIONAL)
Definition: rw.c:24
#define CloseHandle
Definition: compat.h:406
ACPI_SIZE strlen(const char *String)
Definition: utclib.c:269
#define CP_ACP
Definition: compat.h:99
#define INVALID_HANDLE_VALUE
Definition: compat.h:399
DWORD WINAPI GetLastError(VOID)
Definition: except.c:1059
const char * filename
Definition: ioapi.h:135
#define GENERIC_WRITE
Definition: nt_native.h:90
smooth NULL
Definition: ftsmooth.c:416
GLsizeiptr size
Definition: glext.h:5919
__wchar_t WCHAR
Definition: xmlstorage.h:180
#define MAX_PATH
Definition: compat.h:26
const char file[]
Definition: icontest.c:11
unsigned long DWORD
Definition: ntddk_ex.h:95
#define FILE_ATTRIBUTE_NORMAL
Definition: compat.h:126
#define CREATE_ALWAYS
Definition: disk.h:72
#define ok(value,...)
Definition: atltest.h:57
#define MultiByteToWideChar
Definition: compat.h:100
#define CreateFileW
Definition: compat.h:408
static const CHAR manifest[]
Definition: v6util.h:39
Definition: fci.c:126

Referenced by test_interthread_messages().

◆ DispatchMessageCheckProc()

static LRESULT WINAPI DispatchMessageCheckProc ( HWND  hwnd,
UINT  message,
WPARAM  wParam,
LPARAM  lParam 
)
static

Definition at line 11283 of file msg.c.

11284 {
11285  if (message == WM_PAINT) return 0;
11286  return MsgCheckProcA( hwnd, message, wParam, lParam );
11287 }
const DOCKBAR PVOID HWND HWND * hwnd
Definition: tooldock.h:22
Definition: tftpd.h:59
WPARAM wParam
Definition: combotst.c:138
#define WM_PAINT
Definition: winuser.h:1602
static LRESULT WINAPI MsgCheckProcA(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
Definition: msg.c:9536
LPARAM lParam
Definition: combotst.c:139

Referenced by test_DispatchMessage().

◆ dlg_creation_edit_proc()

static LRESULT WINAPI dlg_creation_edit_proc ( HWND  hwnd,
UINT  message,
WPARAM  wp,
LPARAM  lp 
)
static

Definition at line 13576 of file msg.c.

13577 {
13578  struct recvd_message msg;
13579 
13580  if (ignore_message( message )) return 0;
13581 
13582  msg.hwnd = hwnd;
13583  msg.message = message;
13584  msg.flags = sent|wparam|lparam;
13585  msg.wParam = wp;
13586  msg.lParam = lp;
13587  msg.descr = "edit";
13588  add_message(&msg);
13589 
13590  return CallWindowProcW(orig_edit_proc, hwnd, message, wp, lp);
13591 }
const DOCKBAR PVOID HWND HWND * hwnd
Definition: tooldock.h:22
Definition: tftpd.h:59
GLenum GLuint GLenum GLsizei const GLchar * message
Definition: glext.h:5579
static BOOL ignore_message(UINT message)
Definition: msg.c:2081
static WNDPROC orig_edit_proc
Definition: msg.c:13575
Definition: msg.c:145
#define add_message(msg)
Definition: msg.c:2113
#define msg(x)
Definition: auth_time.c:54
LRESULT WINAPI CallWindowProcW(_In_ WNDPROC, _In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
Definition: msg.c:144
Definition: msg.c:141

Referenced by test_dlg_proc2(), and test_dlg_proc4().

◆ do_wait_idle_child()

static void do_wait_idle_child ( int  arg)
static

Definition at line 16075 of file msg.c.

16076 {
16077  WNDCLASSA cls;
16078  MSG msg;
16079  HWND hwnd = 0;
16080  HANDLE thread;
16081  DWORD id;
16082  HANDLE start_event = OpenEventA( EVENT_ALL_ACCESS, FALSE, "test_WaitForInputIdle_start" );
16083  HANDLE end_event = OpenEventA( EVENT_ALL_ACCESS, FALSE, "test_WaitForInputIdle_end" );
16084 
16085  memset( &cls, 0, sizeof(cls) );
16087  cls.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
16088  cls.hCursor = LoadCursorA(0, (LPCSTR)IDC_ARROW);
16089  cls.lpszClassName = "TestClass";
16090  RegisterClassA( &cls );
16091 
16092  PeekMessageA( &msg, 0, 0, 0, PM_NOREMOVE ); /* create the msg queue */
16093 
16094  ok( start_event != 0, "failed to create start event, error %u\n", GetLastError() );
16095  ok( end_event != 0, "failed to create end event, error %u\n", GetLastError() );
16096 
16097  switch (arg)
16098  {
16099  case 0:
16100  SetEvent( start_event );
16101  break;
16102  case 1:
16103  SetEvent( start_event );
16104  Sleep( 200 );
16105  PeekMessageA( &msg, 0, 0, 0, PM_REMOVE );
16106  break;
16107  case 2:
16108  SetEvent( start_event );
16109  Sleep( 200 );
16110  PeekMessageA( &msg, 0, 0, 0, PM_NOREMOVE );
16111  PostThreadMessageA( GetCurrentThreadId(), WM_COMMAND, 0x1234, 0xabcd );
16112  PeekMessageA( &msg, 0, 0, 0, PM_REMOVE );
16113  break;
16114  case 3:
16115  SetEvent( start_event );
16116  Sleep( 200 );
16118  break;
16119  case 4:
16120  SetEvent( start_event );
16121  Sleep( 200 );
16122  hwnd = CreateWindowExA(0, "TestClass", NULL, WS_POPUP|WS_VISIBLE, 0, 0, 10, 10, 0, 0, 0, NULL);
16123  while (PeekMessageA( &msg, 0, 0, 0, PM_REMOVE|PM_NOYIELD )) DispatchMessageA( &msg );
16124  break;
16125  case 5:
16126  SetEvent( start_event );
16127  Sleep( 200 );
16128  hwnd = CreateWindowExA(0, "TestClass", NULL, WS_POPUP|WS_VISIBLE, 0, 0, 10, 10, 0, 0, 0, NULL);
16129  while (PeekMessageA( &msg, 0, 0, 0, PM_REMOVE )) DispatchMessageA( &msg );
16130  break;
16131  case 6:
16132  SetEvent( start_event );
16133  Sleep( 200 );
16134  hwnd = CreateWindowExA(0, "TestClass", NULL, WS_POPUP|WS_VISIBLE, 0, 0, 10, 10, 0, 0, 0, NULL);
16135  while (PeekMessageA( &msg, 0, 0, 0, PM_NOREMOVE ))
16136  {
16137  GetMessageA( &msg, 0, 0, 0 );
16138  DispatchMessageA( &msg );
16139  }
16140  break;
16141  case 7:
16142  SetEvent( start_event );
16143  Sleep( 200 );
16144  hwnd = CreateWindowExA(0, "TestClass", NULL, WS_POPUP|WS_VISIBLE, 0, 0, 10, 10, 0, 0, 0, NULL);
16145  SetTimer( hwnd, 3, 1, NULL );
16146  Sleep( 200 );
16147  while (PeekMessageA( &msg, 0, 0, 0, PM_REMOVE|PM_NOYIELD )) DispatchMessageA( &msg );
16148  break;
16149  case 8:
16150  SetEvent( start_event );
16151  Sleep( 200 );
16152  PeekMessageA( &msg, 0, 0, 0, PM_NOREMOVE );
16154  break;
16155  case 9:
16156  SetEvent( start_event );
16157  Sleep( 200 );
16158  hwnd = CreateWindowExA(0, "TestClass", NULL, WS_POPUP|WS_VISIBLE, 0, 0, 10, 10, 0, 0, 0, NULL);
16159  while (PeekMessageA( &msg, 0, 0, 0, PM_REMOVE )) DispatchMessageA( &msg );
16160  for (;;) GetMessageA( &msg, 0, 0, 0 );
16161  break;
16162  case 10:
16163  SetEvent( start_event );
16164  Sleep( 200 );
16165  hwnd = CreateWindowExA(0, "TestClass", NULL, WS_POPUP|WS_VISIBLE, 0, 0, 10, 10, 0, 0, 0, NULL);
16166  SetTimer( hwnd, 3, 1, NULL );
16167  Sleep( 200 );
16168  while (PeekMessageA( &msg, 0, 0, 0, PM_REMOVE )) DispatchMessageA( &msg );
16169  break;
16170  case 11:
16171  SetEvent( start_event );
16172  Sleep( 200 );
16173  return; /* exiting the process makes WaitForInputIdle return success too */
16174  case 12:
16175  PeekMessageA( &msg, 0, 0, 0, PM_NOREMOVE );
16176  Sleep( 200 );
16178  SetEvent( start_event );
16179  break;
16180  case 13:
16181  SetEvent( start_event );
16182  PeekMessageA( &msg, 0, 0, 0, PM_NOREMOVE );
16183  Sleep( 200 );
16185  WaitForSingleObject( thread, 10000 );
16186  CloseHandle( thread );
16187  break;
16188  case 14:
16189  SetEvent( start_event );
16190  Sleep( 200 );
16192  break;
16193  case 15:
16194  SetEvent( start_event );
16195  Sleep( 200 );
16197  break;
16198  case 16:
16199  SetEvent( start_event );
16200  Sleep( 200 );
16202  break;
16203  case 17:
16204  SetEvent( start_event );
16205  Sleep( 200 );
16206  PeekMessageA( &msg, (HWND)0xdeadbeef, 0, 0, PM_NOREMOVE );
16207  break;
16208  case 18:
16209  SetEvent( start_event );
16210  Sleep( 200 );
16212  break;
16213  case 19:
16214  SetEvent( start_event );
16215  Sleep( 200 );
16217  break;
16218  case 20:
16219  SetEvent( start_event );
16220  Sleep( 200 );
16222  break;
16223  }
16224  WaitForSingleObject( end_event, 2000 );
16226  CloseHandle( end_event );
16227  if (hwnd) DestroyWindow( hwnd );
16228 }
const DOCKBAR PVOID HWND HWND * hwnd
Definition: tooldock.h:22
LRESULT WINAPI DispatchMessageA(_In_ const MSG *)
#define CloseHandle
Definition: compat.h:406
VOID WINAPI DECLSPEC_HOTPATCH Sleep(IN DWORD dwMilliseconds)
Definition: synch.c:790
LRESULT WINAPI SendMessageA(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
TW_UINT32 TW_UINT16 TW_UINT16 MSG
Definition: twain.h:1827
BOOL WINAPI GetMessageA(_Out_ LPMSG, _In_opt_ HWND, _In_ UINT, _In_ UINT)
BOOL WINAPI PostThreadMessageA(_In_ DWORD, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
BOOL WINAPI DECLSPEC_HOTPATCH SetEvent(IN HANDLE hEvent)
Definition: synch.c:733
DWORD WINAPI GetLastError(VOID)
Definition: except.c:1059
#define HWND_TOPMOST
Definition: winuser.h:1194
HBRUSH hbrBackground
Definition: winuser.h:3145
#define HWND_MESSAGE
Definition: winuser.h:1196
BOOL WINAPI PeekMessageA(_Out_ LPMSG, _In_opt_ HWND, _In_ UINT, _In_ UINT, _In_ UINT)
BOOL WINAPI DestroyWindow(_In_ HWND)
#define COLOR_WINDOW
Definition: winuser.h:908
#define PM_NOREMOVE
Definition: winuser.h:1181
DWORD WINAPI WaitForSingleObject(IN HANDLE hHandle, IN DWORD dwMilliseconds)
Definition: synch.c:82
HANDLE WINAPI DECLSPEC_HOTPATCH OpenEventA(IN DWORD dwDesiredAccess, IN BOOL bInheritHandle, IN LPCSTR lpName)
Definition: synch.c:669
#define EVENT_ALL_ACCESS
Definition: isotest.c:82
HCURSOR hCursor
Definition: winuser.h:3144
HANDLE WINAPI DECLSPEC_HOTPATCH CreateThread(IN LPSECURITY_ATTRIBUTES lpThreadAttributes, IN DWORD dwStackSize, IN LPTHREAD_START_ROUTINE lpStartAddress, IN LPVOID lpParameter, IN DWORD dwCreationFlags, OUT LPDWORD lpThreadId)
Definition: thread.c:136
smooth NULL
Definition: ftsmooth.c:416
HWND WINAPI GetDesktopWindow(void)
Definition: window.c:652
#define WM_WININICHANGE
Definition: winuser.h:1612
const char * LPCSTR
Definition: xmlstorage.h:183
DWORD WINAPI GetCurrentThreadId(VOID)
Definition: thread.c:458
UINT_PTR WINAPI SetTimer(_In_opt_ HWND, _In_ UINT_PTR, _In_ UINT, _In_opt_ TIMERPROC)
#define HWND_BOTTOM
Definition: winuser.h:1191
unsigned long DWORD
Definition: ntddk_ex.h:95
DWORD WINAPI MsgWaitForMultipleObjects(_In_ DWORD nCount, _In_reads_opt_(nCount) CONST HANDLE *pHandles, _In_ BOOL fWaitAll, _In_ DWORD dwMilliseconds, _In_ DWORD dwWakeMask)
static HANDLE thread
Definition: service.c:33
#define WM_COMMAND
Definition: winuser.h:1722
LRESULT WINAPI DefWindowProcA(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
LPCSTR lpszClassName
Definition: winuser.h:3147
HCURSOR WINAPI LoadCursorA(_In_opt_ HINSTANCE, _In_ LPCSTR)
Definition: cursoricon.c:2059
static DWORD CALLBACK do_wait_idle_child_thread(void *arg)
Definition: msg.c:16065
#define QS_ALLINPUT
Definition: winuser.h:874
#define ok(value,...)
Definition: atltest.h:57
#define PM_NOYIELD
Definition: winuser.h:1183
#define WS_POPUP
Definition: pedump.c:616
WNDPROC lpfnWndProc
Definition: winuser.h:3139
#define msg(x)
Definition: auth_time.c:54
#define IDC_ARROW
Definition: winuser.h:682
HWND WINAPI CreateWindowExA(_In_ DWORD dwExStyle, _In_opt_ LPCSTR lpClassName, _In_opt_ LPCSTR 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)
GLenum GLuint id
Definition: glext.h:5579
#define HWND_NOTOPMOST
Definition: winuser.h:1192
#define PM_REMOVE
Definition: winuser.h:1182
#define WS_VISIBLE
Definition: pedump.c:620
#define memset(x, y, z)
Definition: compat.h:39
#define HWND_BROADCAST
Definition: winuser.h:1190
ATOM WINAPI RegisterClassA(_In_ CONST WNDCLASSA *)
static HANDLE start_event
Definition: thread.c:140

Referenced by START_TEST().

◆ do_wait_idle_child_thread()

static DWORD CALLBACK do_wait_idle_child_thread ( void arg)
static

Definition at line 16065 of file msg.c.

16066 {
16067  MSG msg;
16068 
16069  PeekMessageA( &msg, 0, 0, 0, PM_NOREMOVE );
16070  Sleep( 200 );
16072  return 0;
16073 }
VOID WINAPI DECLSPEC_HOTPATCH Sleep(IN DWORD dwMilliseconds)
Definition: synch.c:790
TW_UINT32 TW_UINT16 TW_UINT16 MSG
Definition: twain.h:1827
BOOL WINAPI PeekMessageA(_Out_ LPMSG, _In_opt_ HWND, _In_ UINT, _In_ UINT, _In_ UINT)
#define PM_NOREMOVE
Definition: winuser.h:1181
smooth NULL
Definition: ftsmooth.c:416
DWORD WINAPI MsgWaitForMultipleObjects(_In_ DWORD nCount, _In_reads_opt_(nCount) CONST HANDLE *pHandles, _In_ BOOL fWaitAll, _In_ DWORD dwMilliseconds, _In_ DWORD dwWakeMask)
#define QS_ALLINPUT
Definition: winuser.h:874
#define msg(x)
Definition: auth_time.c:54

Referenced by do_wait_idle_child().

◆ dump_region()

void dump_region ( HRGN  hrgn)

Definition at line 7699 of file msg.c.

7700 {
7701  DWORD i, size;
7702  RGNDATA *data = NULL;
7703  RECT *rect;
7704 
7705  if (!hrgn)
7706  {
7707  printf( "null region\n" );
7708  return;
7709  }
7710  if (!(size = GetRegionData( hrgn, 0, NULL ))) return;
7711  if (!(data = HeapAlloc( GetProcessHeap(), 0, size ))) return;
7712  GetRegionData( hrgn, size, data );
7713  printf("%d rects:", data->rdh.nCount );
7714  for (i = 0, rect = (RECT *)data->Buffer; i < data->rdh.nCount; i++, rect++)
7715  printf( " %s", wine_dbgstr_rect( rect ));
7716  printf("\n");
7717  HeapFree( GetProcessHeap(), 0, data );
7718 }
& rect
Definition: startmenu.cpp:1413
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
smooth NULL
Definition: ftsmooth.c:416
GLsizeiptr size
Definition: glext.h:5919
#define GetProcessHeap()
Definition: compat.h:403
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
const char * wine_dbgstr_rect(const RECT *rect)
unsigned long DWORD
Definition: ntddk_ex.h:95
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950
static HRGN hrgn
Definition: win.c:55
DWORD WINAPI GetRegionData(_In_ HRGN hrgn, _In_ DWORD nCount, _Out_writes_bytes_to_opt_(nCount, return) LPRGNDATA lpRgnData)
#define HeapFree(x, y, z)
Definition: compat.h:402
#define printf
Definition: config.h:203

Referenced by check_update_rgn_(), test_scrolldc(), and test_scrollvalidate().

◆ dump_sequence()

static void dump_sequence ( const struct message expected,
const char context,
const char file,
int  line 
)
static

Definition at line 2313 of file msg.c.

2314 {
2315  const struct recvd_message *actual = sequence;
2316  unsigned int count = 0;
2317 
2318  trace_(file, line)("Failed sequence %s:\n", context );
2319  while (expected->message && actual->message)
2320  {
2321  if (actual->output[0])
2322  {
2323  if (expected->flags & hook)
2324  {
2325  trace_(file, line)( " %u: expected: hook %04x - actual: %s\n",
2326  count, expected->message, actual->output );
2327  }