ReactOS  0.4.14-dev-1331-g167fa2c
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 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

◆ add_message

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

Definition at line 2108 of file msg.c.

◆ ARCH

#define ARCH   "none"

Definition at line 71 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 14857 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 7715 of file msg.c.

◆ clear_clipboard

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

Definition at line 15688 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 11761 of file msg.c.

◆ EV_SENDMSG

#define EV_SENDMSG   1

Definition at line 11760 of file msg.c.

◆ EV_STOP

#define EV_STOP   0

Definition at line 11759 of file msg.c.

◆ expect

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

Definition at line 2574 of file msg.c.

◆ expect_HWND

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

Definition at line 15700 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 5892 of file msg.c.

◆ ID_COMBOBOX

#define ID_COMBOBOX   0x000f

Definition at line 7248 of file msg.c.

◆ ID_EDIT

#define ID_EDIT   0x1234

Definition at line 11481 of file msg.c.

◆ ID_LISTBOX

#define ID_LISTBOX   0x000f

Definition at line 14744 of file msg.c.

◆ ID_RADIO1

#define ID_RADIO1   501

Definition at line 6725 of file msg.c.

◆ ID_RADIO2

#define ID_RADIO2   502

Definition at line 6726 of file msg.c.

◆ ID_RADIO3

#define ID_RADIO3   503

Definition at line 6727 of file msg.c.

◆ ID_TEXT

#define ID_TEXT   504

Definition at line 6728 of file msg.c.

◆ MDI_FIRST_CHILD_ID

#define MDI_FIRST_CHILD_ID   2004

Definition at line 37 of file msg.c.

◆ ok_sequence

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

Definition at line 2388 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 12310 of file msg.c.

◆ SW_NORMALNA

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

Definition at line 44 of file msg.c.

◆ SWP_NOCLIENTMOVE

#define SWP_NOCLIENTMOVE   0x1000

Definition at line 41 of file msg.c.

◆ SWP_NOCLIENTSIZE

#define SWP_NOCLIENTSIZE   0x0800

Definition at line 40 of file msg.c.

◆ SWP_STATECHANGED

#define SWP_STATECHANGED   0x8000

Definition at line 42 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 5088 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 6974 of file msg.c.

◆ TIMER_COUNT_EXPECTED

#define TIMER_COUNT_EXPECTED   100

Definition at line 10217 of file msg.c.

◆ TIMER_COUNT_TOLERANCE

#define TIMER_COUNT_TOLERANCE   10

Definition at line 10218 of file msg.c.

◆ TIMER_ID

#define TIMER_ID   0x19

Definition at line 10216 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:2006
int ret

◆ WM_KEYF1

#define WM_KEYF1   0x004d

Definition at line 47 of file msg.c.

◆ WM_LBTRACKPOINT

#define WM_LBTRACKPOINT   0x0131

Definition at line 59 of file msg.c.

◆ WM_SYSTIMER

#define WM_SYSTIMER   0x0118

Definition at line 51 of file msg.c.

◆ WND_CHILD_ID

#define WND_CHILD_ID   3

Definition at line 56 of file msg.c.

◆ WND_PARENT_ID

#define WND_PARENT_ID   1

Definition at line 54 of file msg.c.

◆ WND_POPUP_ID

#define WND_POPUP_ID   2

Definition at line 55 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 18152 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 135 of file msg.c.

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

Function Documentation

◆ add_message_()

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

Definition at line 2109 of file msg.c.

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

◆ apc_test_proc()

static void CALLBACK apc_test_proc ( ULONG_PTR  param)
static

Definition at line 4957 of file msg.c.

4958 {
4959  /* nothing */
4960 }

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 15915 of file msg.c.

15916 {
15918 
15919  if (wParam == 0xbaadbeef)
15921  else
15922  g_broadcast_lparam = 0;
15923 
15924  return CallWindowProcA(oldproc, hwnd, message, wParam, lParam);
15925 }
const DOCKBAR PVOID HWND HWND * hwnd
Definition: tooldock.h:22
static LPARAM g_broadcast_lparam
Definition: msg.c:15914
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 6211 of file msg.c.

6212 {
6213  static LONG defwndproc_counter = 0;
6214  LRESULT ret;
6215  struct recvd_message msg;
6216 
6217  if (ignore_message( message )) return 0;
6218 
6219  switch (message)
6220  {
6221  case WM_SYNCPAINT:
6222  break;
6223  case BM_SETSTATE:
6224  if (GetCapture())
6225  ok(GetCapture() == hwnd, "GetCapture() = %p\n", GetCapture());
6226 
6228  goto log_it;
6229 
6230  case WM_GETDLGCODE:
6231  if (lParam)
6232  {
6233  MSG *msg = (MSG *)lParam;
6234  lParam = MAKELPARAM(msg->message, msg->wParam);
6235  }
6237  goto log_it;
6238 
6239  case BM_SETCHECK:
6240  case BM_GETCHECK:
6242  /* fall through */
6243 log_it:
6244  default:
6245  msg.hwnd = hwnd;
6246  msg.message = message;
6247  msg.flags = sent|wparam|lparam;
6248  if (defwndproc_counter) msg.flags |= defwinproc;
6249  msg.wParam = wParam;
6250  msg.lParam = lParam;
6251  msg.descr = "button";
6252  add_message(&msg);
6253  }
6254 
6255  defwndproc_counter++;
6257  defwndproc_counter--;
6258 
6259  return ret;
6260 }
#define WM_SYNCPAINT
Definition: winuser.h:1672
static ULONG_PTR
Definition: msg.c:76
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:2076
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:140
static WNDPROC old_button_proc
Definition: msg.c:6209
int ret
#define add_message(msg)
Definition: msg.c:2108
#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:139
Definition: msg.c:136

Referenced by subclass_button().

◆ callback_count()

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

Definition at line 10221 of file msg.c.

10222 {
10223  count++;
10224 }
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 10227 of file msg.c.

10228 {
10229  count++;
10230  RaiseException(exception, 0, 0, NULL);
10231 }
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 17338 of file msg.c.

17339 {
17340  if (ignore_message( message )) return 0;
17341 
17342  switch (message) {
17343  case WM_ENTERMENULOOP:
17344  ok(EndMenu() == TRUE, "EndMenu() failed\n");
17345  break;
17346  }
17347 
17348  return MsgCheckProc (FALSE, hwnd, message, wParam, lParam);
17349 }
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:2076
WPARAM wParam
Definition: combotst.c:138
static LRESULT MsgCheckProc(BOOL unicode, HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
Definition: msg.c:9379
#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 17316 of file msg.c.

17317 {
17318  if (ignore_message( message )) return 0;
17319 
17320  switch (message) {
17321  case WM_ENTERIDLE:
17322  todo_wine ok(GetCapture() == hwnd, "expected %p, got %p\n", hwnd, GetCapture());
17323  EndMenu();
17324  break;
17325  case WM_INITMENU:
17326  case WM_INITMENUPOPUP:
17327  case WM_UNINITMENUPOPUP:
17328  ok((HMENU)wParam == hpopupmenu, "expected %p, got %lx\n", hpopupmenu, wParam);
17329  break;
17330  case WM_CAPTURECHANGED:
17331  todo_wine ok(!lParam || (HWND)lParam == hwnd, "lost capture to %lx\n", lParam);
17332  break;
17333  }
17334 
17335  return MsgCheckProc (FALSE, hwnd, message, wParam, lParam);
17336 }
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:2076
WPARAM wParam
Definition: combotst.c:138
static LRESULT MsgCheckProc(BOOL unicode, HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
Definition: msg.c:9379
HWND WINAPI GetCapture(void)
Definition: message.c:2879
static HMENU hpopupmenu
Definition: msg.c:17314
#define WM_ENTERIDLE
Definition: winuser.h:1731
#define todo_wine
Definition: test.h:162
#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 10535 of file msg.c.

10536 {
10537  HWND hwnd;
10538  char buf[256];
10539 
10540  if (nCode == HCBT_SYSCOMMAND)
10541  {
10542  struct recvd_message msg;
10543 
10544  msg.hwnd = 0;
10545  msg.message = nCode;
10546  msg.flags = hook|wparam|lparam;
10547  msg.wParam = wParam;
10548  msg.lParam = (cbt_global_hook_thread_id == GetCurrentThreadId()) ? 1 : 2;
10549  msg.descr = "CBT_2";
10550  add_message(&msg);
10551 
10552  return CallNextHookEx(hCBT_global_hook, nCode, wParam, lParam);
10553  }
10554  /* WH_MOUSE_LL hook */
10555  if (nCode == HC_ACTION)
10556  {
10558 
10559  /* we can't test for real mouse events */
10560  if (mhll->flags & LLMHF_INJECTED)
10561  {
10562  struct recvd_message msg;
10563 
10564  memset (&msg, 0, sizeof (msg));
10565  msg.message = wParam;
10566  msg.flags = hook;
10567  msg.descr = "CBT_2";
10568  add_message(&msg);
10569  }
10570  return CallNextHookEx(hCBT_global_hook, nCode, wParam, lParam);
10571  }
10572 
10573  /* Log also SetFocus(0) calls */
10574  hwnd = wParam ? (HWND)wParam : (HWND)lParam;
10575 
10576  if (GetClassNameA(hwnd, buf, sizeof(buf)))
10577  {
10578  if (!lstrcmpiA(buf, "TestWindowClass") ||
10579  !lstrcmpiA(buf, "static"))
10580  {
10581  struct recvd_message msg;
10582 
10583  msg.hwnd = hwnd;
10584  msg.message = nCode;
10585  msg.flags = hook|wparam|lparam;
10586  msg.wParam = wParam;
10587  msg.lParam = (cbt_global_hook_thread_id == GetCurrentThreadId()) ? 1 : 2;
10588  msg.descr = "CBT_2";
10589  add_message(&msg);
10590  }
10591  }
10592  return CallNextHookEx(hCBT_global_hook, nCode, wParam, lParam);
10593 }
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:10533
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:144
WPARAM wParam
Definition: combotst.c:138
DWORD WINAPI GetCurrentThreadId(VOID)
Definition: thread.c:458
#define LLMHF_INJECTED
Definition: winuser.h:2624
Definition: msg.c:140
static HWND
Definition: msg.c:2006
LRESULT WINAPI CallNextHookEx(_In_opt_ HHOOK, _In_ int, _In_ WPARAM, _In_ LPARAM)
#define add_message(msg)
Definition: msg.c:2108
static HHOOK hCBT_global_hook
Definition: msg.c:10532
#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:139

Referenced by test_winevents().

◆ cbt_global_hook_thread_proc()

static DWORD WINAPI cbt_global_hook_thread_proc ( void param)
static

Definition at line 10624 of file msg.c.

10625 {
10626  HWND hwnd;
10627  MSG msg;
10628  HANDLE hevent = *(HANDLE *)param;
10629 
10630  flush_sequence();
10631  /* these events should be received only by our new hook proc,
10632  * an old one does not expect an event from another thread.
10633  */
10634 
10635  hwnd = CreateWindowExA(0, "static", NULL, WS_POPUP, 0,0,0,0,0,0,0, NULL);
10636  assert(hwnd);
10637  trace("created thread window %p\n", hwnd);
10638 
10639  *(HWND *)param = hwnd;
10640 
10641  /* Windows doesn't like when a thread plays games with the focus,
10642  that leads to all kinds of misbehaviours and failures to activate
10643  a window. So, better keep next lines commented out.
10644  SetFocus(0);
10645  SetFocus(hwnd);*/
10646 
10649 
10650  SetEvent(hevent);
10651 
10652  while (GetMessageA(&msg, 0, 0, 0))
10653  {
10656  }
10657  return 0;
10658 }
const DOCKBAR PVOID HWND HWND * hwnd
Definition: tooldock.h:22
static void flush_sequence(void)
Definition: msg.c:2299
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:34
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 9954 of file msg.c.

9955 {
9956  HWND hwnd;
9957 
9958  ok(cbt_hook_thread_id == GetCurrentThreadId(), "we didn't ask for events from other threads\n");
9959 
9960  if (nCode == HCBT_CLICKSKIPPED)
9961  {
9962  /* ignore this event, XP sends it a lot when switching focus between windows */
9963  return CallNextHookEx(hCBT_hook, nCode, wParam, lParam);
9964  }
9965 
9966  if (nCode == HCBT_SYSCOMMAND || nCode == HCBT_KEYSKIPPED)
9967  {
9968  struct recvd_message msg;
9969 
9970  msg.hwnd = 0;
9971  msg.message = nCode;
9972  msg.flags = hook|wparam|lparam;
9973  msg.wParam = wParam;
9974  msg.lParam = lParam;
9975  msg.descr = "CBT";
9976  add_message(&msg);
9977 
9978  return CallNextHookEx(hCBT_hook, nCode, wParam, lParam);
9979  }
9980 
9981  if (nCode == HCBT_DESTROYWND)
9982  {
9984  {
9986  if (style & WS_CHILD)
9988  else if (style & WS_POPUP)
9989  lParam = WND_POPUP_ID;
9990  else
9992  }
9993  }
9994 
9995  /* Log also SetFocus(0) calls */
9996  hwnd = wParam ? (HWND)wParam : (HWND)lParam;
9997 
9999  {
10000  struct recvd_message msg;
10001 
10002  msg.hwnd = hwnd;
10003  msg.message = nCode;
10004  msg.flags = hook|wparam|lparam;
10005  msg.wParam = wParam;
10006  msg.lParam = lParam;
10007  msg.descr = "CBT";
10008  add_message(&msg);
10009  }
10010  return CallNextHookEx(hCBT_hook, nCode, wParam, lParam);
10011 }
#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:54
static HHOOK hCBT_hook
Definition: msg.c:117
#define WS_CHILD
Definition: pedump.c:617
Definition: msg.c:144
WPARAM wParam
Definition: combotst.c:138
static BOOL test_DestroyWindow_flag
Definition: msg.c:114
#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:9925
unsigned long DWORD
Definition: ntddk_ex.h:95
Definition: msg.c:140
static DWORD cbt_hook_thread_id
Definition: msg.c:118
static HWND
Definition: msg.c:2006
#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:2108
#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:55
LPARAM lParam
Definition: combotst.c:139
Definition: msg.c:139
#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 14896 of file msg.c.

14898 {
14899  LRESULT ret;
14900 
14901  /* calling an orig proc helps to avoid unnecessary message logging */
14902  ret = CallWindowProcA(listbox_orig_proc, listbox, LB_GETCOUNT, 0, 0);
14903  ok_(__FILE__, line)(ret == count, "expected count %d, got %ld\n", count, ret);
14904  ret = CallWindowProcA(listbox_orig_proc, listbox, LB_GETCURSEL, 0, 0);
14905  ok_(__FILE__, line)(ret == cur_sel, "expected cur sel %d, got %ld\n", cur_sel, ret);
14906  ret = CallWindowProcA(listbox_orig_proc, listbox, LB_GETCARETINDEX, 0, 0);
14907  ok_(__FILE__, line)(ret == caret_index ||
14908  broken(cur_sel == -1 && caret_index == 0 && ret == -1), /* nt4 */
14909  "expected caret index %d, got %ld\n", caret_index, ret);
14910  ret = CallWindowProcA(listbox_orig_proc, listbox, LB_GETTOPINDEX, 0, 0);
14911  ok_(__FILE__, line)(ret == top_index, "expected top index %d, got %ld\n", top_index, ret);
14912 }
DWORD broken
Definition: msg.c:16033
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:10220
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 7716 of file msg.c.

7717 {
7718  INT ret;
7719  RECT r1, r2;
7720  HRGN tmp = CreateRectRgn( 0, 0, 0, 0 );
7721  HRGN update = CreateRectRgn( 0, 0, 0, 0 );
7722 
7723  ret = GetUpdateRgn( hwnd, update, FALSE );
7724  ok( ret != ERROR, "GetUpdateRgn failed\n" );
7725  if (ret == NULLREGION)
7726  {
7727  ok_(__FILE__,line)( !hrgn, "Update region shouldn't be empty\n" );
7728  }
7729  else
7730  {
7731  if (CombineRgn( tmp, hrgn, update, RGN_XOR ) != NULLREGION)
7732  {
7733  ok_(__FILE__,line)( 0, "Regions are different\n" );
7734  if (winetest_debug > 0)
7735  {
7736  printf( "Update region: " );
7737  dump_region( update );
7738  printf( "Wanted region: " );
7739  dump_region( hrgn );
7740  }
7741  }
7742  }
7743  GetRgnBox( update, &r1 );
7744  GetUpdateRect( hwnd, &r2, FALSE );
7745  ok_(__FILE__,line)( EqualRect( &r1, &r2 ), "Rectangles are different: %s / %s\n",
7747 
7748  DeleteObject( tmp );
7749  DeleteObject( update );
7750 }
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:57
#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:7694
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 18004 of file msg.c.

18005 {
18006  BOOL ret;
18008  if (pUnhookWinEvent && hEvent_hook)
18009  {
18010  ret = pUnhookWinEvent(hEvent_hook);
18011  ok( ret, "UnhookWinEvent error %d\n", GetLastError());
18012  SetLastError(0xdeadbeef);
18013  ok(!pUnhookWinEvent(hEvent_hook), "UnhookWinEvent succeeded\n");
18014  ok(GetLastError() == ERROR_INVALID_HANDLE || /* Win2k */
18015  GetLastError() == 0xdeadbeef, /* Win9x */
18016  "unexpected error %d\n", GetLastError());
18017  }
18019 
18020 }
#define ERROR_INVALID_HANDLE
Definition: compat.h:88
static HHOOK hCBT_hook
Definition: msg.c:117
DWORD WINAPI GetLastError(VOID)
Definition: except.c:1059
unsigned int BOOL
Definition: ntddk_ex.h:94
static CRITICAL_SECTION sequence_cs
Definition: msg.c:2001
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:115

Referenced by START_TEST().

◆ clear_clipboard_()

static void clear_clipboard_ ( int  line,
HWND  hWnd 
)
static

Definition at line 15689 of file msg.c.

15690 {
15691  BOOL succ;
15692  succ = OpenClipboard(hWnd);
15693  ok_(__FILE__, line)(succ, "OpenClipboard failed, err=%u\n", GetLastError());
15694  succ = EmptyClipboard();
15695  ok_(__FILE__, line)(succ, "EmptyClipboard failed, err=%u\n", GetLastError());
15696  succ = CloseClipboard();
15697  ok_(__FILE__, line)(succ, "CloseClipboard failed, err=%u\n", GetLastError());
15698 }
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 7370 of file msg.c.

7372 {
7373  static LONG defwndproc_counter = 0;
7374  LRESULT ret;
7375  struct recvd_message msg;
7376 
7377  /* do not log painting messages */
7378  if (message != WM_PAINT &&
7379  message != WM_NCPAINT &&
7380  message != WM_SYNCPAINT &&
7381  message != WM_ERASEBKGND &&
7382  message != WM_NCHITTEST &&
7383  message != WM_GETTEXT &&
7384  !ignore_message( message ))
7385  {
7386  msg.hwnd = hwnd;
7387  msg.message = message;
7388  msg.flags = sent|wparam|lparam;
7389  if (defwndproc_counter) msg.flags |= defwinproc;
7390  msg.wParam = wParam;
7391  msg.lParam = lParam;
7392  msg.descr = "combo edit";
7393  add_message(&msg);
7394  }
7395 
7396  defwndproc_counter++;
7398  defwndproc_counter--;
7399 
7400  return ret;
7401 }
#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:2076
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:140
#define WM_PAINT
Definition: winuser.h:1602
int ret
#define add_message(msg)
Definition: msg.c:2108
static WNDPROC edit_window_proc
Definition: msg.c:7368
#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:139
Definition: msg.c:136

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 7435 of file msg.c.

7436 {
7437  static LONG defwndproc_counter = 0;
7438  LRESULT ret;
7439  struct recvd_message msg;
7440 
7441  /* do not log painting messages */
7442  if (message != WM_PAINT &&
7443  message != WM_NCPAINT &&
7444  message != WM_SYNCPAINT &&
7445  message != WM_ERASEBKGND &&
7446  message != WM_NCHITTEST &&
7447  message != WM_GETTEXT &&
7448  !ignore_message( message ))
7449  {
7450  msg.hwnd = hwnd;
7451  msg.message = message;
7452  msg.flags = sent|wparam|lparam;
7453  if (defwndproc_counter) msg.flags |= defwinproc;
7454  msg.wParam = wParam;
7455  msg.lParam = lParam;
7456  msg.descr = "combo";
7457  add_message(&msg);
7458  }
7459 
7460  defwndproc_counter++;
7462  defwndproc_counter--;
7463 
7464  return ret;
7465 }
#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:7368
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:2076
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:140
#define WM_PAINT
Definition: winuser.h:1602
int ret
#define add_message(msg)
Definition: msg.c:2108
#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:139
Definition: msg.c:136

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 7403 of file msg.c.

7405 {
7406  static LONG defwndproc_counter = 0;
7407  LRESULT ret;
7408  struct recvd_message msg;
7409 
7410  /* do not log painting messages */
7411  if (message != WM_PAINT &&
7412  message != WM_NCPAINT &&
7413  message != WM_SYNCPAINT &&
7414  message != WM_ERASEBKGND &&
7415  message != WM_NCHITTEST &&
7416  !ignore_message( message ))
7417  {
7418  msg.hwnd = hwnd;
7419  msg.message = message;
7420  msg.flags = sent|wparam|lparam;
7421  if (defwndproc_counter) msg.flags |= defwinproc;
7422  msg.wParam = wParam;
7423  msg.lParam = lParam;
7424  msg.descr = "combo lbox";
7425  add_message(&msg);
7426  }
7427 
7428  defwndproc_counter++;
7430  defwndproc_counter--;
7431 
7432  return ret;
7433 }
#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:2076
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:140
#define WM_PAINT
Definition: winuser.h:1602
int ret
static WNDPROC lbox_window_proc
Definition: msg.c:7368
#define add_message(msg)
Definition: msg.c:2108
#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:139
Definition: msg.c:136

Referenced by test_combobox_messages().

◆ create_child_thread()

static DWORD CALLBACK create_child_thread ( void param)
static

Definition at line 8572 of file msg.c.

8573 {
8574  struct wnd_event *wnd_event = param;
8575  struct wnd_event child_event;
8576  DWORD ret, tid;
8577  MSG msg;
8578 
8579  child_event.hwnd = CreateWindowExA(0, "TestWindowClass", "Test child",
8580  WS_CHILD | WS_VISIBLE, 0, 0, 10, 10, wnd_event->hwnd, 0, 0, NULL);
8581  ok (child_event.hwnd != 0, "Failed to create child window\n");
8582  SetFocus( child_event.hwnd );
8583  flush_events();
8584  flush_sequence();
8585  child_event.start_event = wnd_event->start_event;
8587  for (;;)
8588  {
8589  DWORD ret = MsgWaitForMultipleObjects(1, &child_event.start_event, FALSE, 1000, QS_SENDMESSAGE);
8590  if (ret != 1) break;
8591  while (PeekMessageA(&msg, 0, 0, 0, PM_REMOVE)) DispatchMessageA(&msg);
8592  }
8594  ok( !ret, "WaitForSingleObject failed %x\n", ret );
8595  return 0;
8596 }
HANDLE grand_child
Definition: msg.c:8523
static void flush_sequence(void)
Definition: msg.c:2299
LRESULT WINAPI DispatchMessageA(_In_ const MSG *)
static DWORD CALLBACK create_grand_child_thread(void *param)
Definition: msg.c:8550
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:2284
DWORD WINAPI WaitForSingleObject(IN HANDLE hHandle, IN DWORD dwMilliseconds)
Definition: synch.c:82
HWND hwnd
Definition: input.c:2592
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:8525
GLfloat param
Definition: glext.h:5796
unsigned long DWORD
Definition: ntddk_ex.h:95
HANDLE start_event
Definition: input.c:2594
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 8550 of file msg.c.

8551 {
8552  struct wnd_event *wnd_event = param;
8553  HWND hchild;
8554  MSG msg;
8555 
8556  hchild = CreateWindowExA(0, "TestWindowClass", "Test child",
8557  WS_CHILD | WS_VISIBLE, 0, 0, 10, 10, wnd_event->hwnd, 0, 0, NULL);
8558  ok (hchild != 0, "Failed to create child window\n");
8559  flush_events();
8560  flush_sequence();
8562 
8563  for (;;)
8564  {
8566  if (!IsWindow( hchild )) break; /* will be destroyed when parent thread exits */
8567  while (PeekMessageA(&msg, 0, 0, 0, PM_REMOVE)) DispatchMessageA(&msg);
8568  }
8569  return 0;
8570 }
static void flush_sequence(void)
Definition: msg.c:2299
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:2284
HWND hwnd
Definition: input.c:2592
smooth NULL
Definition: ftsmooth.c:416
GLfloat param
Definition: glext.h:5796
HANDLE start_event
Definition: input.c:2594
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 8614 of file msg.c.

8615 {
8616  WCHAR path[MAX_PATH];
8617  HANDLE file;
8618  DWORD size;
8619 
8622  ok(file != INVALID_HANDLE_VALUE, "CreateFile failed: %u\n", GetLastError());
8624  CloseHandle(file);
8625 }
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 11278 of file msg.c.

11279 {
11280  if (message == WM_PAINT) return 0;
11281  return MsgCheckProcA( hwnd, message, wParam, lParam );
11282 }
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:9531
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 13571 of file msg.c.

13572 {
13573  struct recvd_message msg;
13574 
13575  if (ignore_message( message )) return 0;
13576 
13577  msg.hwnd = hwnd;
13578  msg.message = message;
13579  msg.flags = sent|wparam|lparam;
13580  msg.wParam = wp;
13581  msg.lParam = lp;
13582  msg.descr = "edit";
13583  add_message(&msg);
13584 
13585  return CallWindowProcW(orig_edit_proc, hwnd, message, wp, lp);
13586 }
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:2076
static WNDPROC orig_edit_proc
Definition: msg.c:13570
Definition: msg.c:140
#define add_message(msg)
Definition: msg.c:2108
#define msg(x)
Definition: auth_time.c:54
LRESULT WINAPI CallWindowProcW(_In_ WNDPROC, _In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
Definition: msg.c:139
Definition: msg.c:136

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 16070 of file msg.c.

16071 {
16072  WNDCLASSA cls;
16073  MSG msg;
16074  HWND hwnd = 0;
16075  HANDLE thread;
16076  DWORD id;
16077  HANDLE start_event = OpenEventA( EVENT_ALL_ACCESS, FALSE, "test_WaitForInputIdle_start" );
16078  HANDLE end_event = OpenEventA( EVENT_ALL_ACCESS, FALSE, "test_WaitForInputIdle_end" );
16079 
16080  memset( &cls, 0, sizeof(cls) );
16082  cls.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
16083  cls.hCursor = LoadCursorA(0, (LPCSTR)IDC_ARROW);
16084  cls.lpszClassName = "TestClass";
16085  RegisterClassA( &cls );
16086 
16087  PeekMessageA( &msg, 0, 0, 0, PM_NOREMOVE ); /* create the msg queue */
16088 
16089  ok( start_event != 0, "failed to create start event, error %u\n", GetLastError() );
16090  ok( end_event != 0, "failed to create end event, error %u\n", GetLastError() );
16091 
16092  switch (arg)
16093  {
16094  case 0:
16095  SetEvent( start_event );
16096  break;
16097  case 1:
16098  SetEvent( start_event );
16099  Sleep( 200 );
16100  PeekMessageA( &msg, 0, 0, 0, PM_REMOVE );
16101  break;
16102  case 2:
16103  SetEvent( start_event );
16104  Sleep( 200 );
16105  PeekMessageA( &msg, 0, 0, 0, PM_NOREMOVE );
16106  PostThreadMessageA( GetCurrentThreadId(), WM_COMMAND, 0x1234, 0xabcd );
16107  PeekMessageA( &msg, 0, 0, 0, PM_REMOVE );
16108  break;
16109  case 3:
16110  SetEvent( start_event );
16111  Sleep( 200 );
16113  break;
16114  case 4:
16115  SetEvent( start_event );
16116  Sleep( 200 );
16117  hwnd = CreateWindowExA(0, "TestClass", NULL, WS_POPUP|WS_VISIBLE, 0, 0, 10, 10, 0, 0, 0, NULL);
16118  while (PeekMessageA( &msg, 0, 0, 0, PM_REMOVE|PM_NOYIELD )) DispatchMessageA( &msg );
16119  break;
16120  case 5:
16121  SetEvent( start_event );
16122  Sleep( 200 );
16123  hwnd = CreateWindowExA(0, "TestClass", NULL, WS_POPUP|WS_VISIBLE, 0, 0, 10, 10, 0, 0, 0, NULL);
16124  while (PeekMessageA( &msg, 0, 0, 0, PM_REMOVE )) DispatchMessageA( &msg );
16125  break;
16126  case 6:
16127  SetEvent( start_event );
16128  Sleep( 200 );
16129  hwnd = CreateWindowExA(0, "TestClass", NULL, WS_POPUP|WS_VISIBLE, 0, 0, 10, 10, 0, 0, 0, NULL);
16130  while (PeekMessageA( &msg, 0, 0, 0, PM_NOREMOVE ))
16131  {
16132  GetMessageA( &msg, 0, 0, 0 );
16133  DispatchMessageA( &msg );
16134  }
16135  break;
16136  case 7:
16137  SetEvent( start_event );
16138  Sleep( 200 );
16139  hwnd = CreateWindowExA(0, "TestClass", NULL, WS_POPUP|WS_VISIBLE, 0, 0, 10, 10, 0, 0, 0, NULL);
16140  SetTimer( hwnd, 3, 1, NULL );
16141  Sleep( 200 );
16142  while (PeekMessageA( &msg, 0, 0, 0, PM_REMOVE|PM_NOYIELD )) DispatchMessageA( &msg );
16143  break;
16144  case 8:
16145  SetEvent( start_event );
16146  Sleep( 200 );
16147  PeekMessageA( &msg, 0, 0, 0, PM_NOREMOVE );
16149  break;
16150  case 9:
16151  SetEvent( start_event );
16152  Sleep( 200 );
16153  hwnd = CreateWindowExA(0, "TestClass", NULL, WS_POPUP|WS_VISIBLE, 0, 0, 10, 10, 0, 0, 0, NULL);
16154  while (PeekMessageA( &msg, 0, 0, 0, PM_REMOVE )) DispatchMessageA( &msg );
16155  for (;;) GetMessageA( &msg, 0, 0, 0 );
16156  break;
16157  case 10:
16158  SetEvent( start_event );
16159  Sleep( 200 );
16160  hwnd = CreateWindowExA(0, "TestClass", NULL, WS_POPUP|WS_VISIBLE, 0, 0, 10, 10, 0, 0, 0, NULL);
16161  SetTimer( hwnd, 3, 1, NULL );
16162  Sleep( 200 );
16163  while (PeekMessageA( &msg, 0, 0, 0, PM_REMOVE )) DispatchMessageA( &msg );
16164  break;
16165  case 11:
16166  SetEvent( start_event );
16167  Sleep( 200 );
16168  return; /* exiting the process makes WaitForInputIdle return success too */
16169  case 12:
16170  PeekMessageA( &msg, 0, 0, 0, PM_NOREMOVE );
16171  Sleep( 200 );
16173  SetEvent( start_event );
16174  break;
16175  case 13:
16176  SetEvent( start_event );
16177  PeekMessageA( &msg, 0, 0, 0, PM_NOREMOVE );
16178  Sleep( 200 );
16180  WaitForSingleObject( thread, 10000 );
16181  CloseHandle( thread );
16182  break;
16183  case 14:
16184  SetEvent( start_event );
16185  Sleep( 200 );
16187  break;
16188  case 15:
16189  SetEvent( start_event );
16190  Sleep( 200 );
16192  break;
16193  case 16:
16194  SetEvent( start_event );
16195  Sleep( 200 );
16197  break;
16198  case 17:
16199  SetEvent( start_event );
16200  Sleep( 200 );
16201  PeekMessageA( &msg, (HWND)0xdeadbeef, 0, 0, PM_NOREMOVE );
16202  break;
16203  case 18:
16204  SetEvent( start_event );
16205  Sleep( 200 );
16207  break;
16208  case 19:
16209  SetEvent( start_event );
16210  Sleep( 200 );
16212  break;
16213  case 20:
16214  SetEvent( start_event );
16215  Sleep( 200 );
16217  break;
16218  }
16219  WaitForSingleObject( end_event, 2000 );
16221  CloseHandle( end_event );
16222  if (hwnd) DestroyWindow( hwnd );
16223 }
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:656
#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:16060
#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:135

Referenced by START_TEST().

◆ do_wait_idle_child_thread()

static DWORD CALLBACK do_wait_idle_child_thread ( void arg)
static

Definition at line 16060 of file msg.c.

16061 {
16062  MSG msg;
16063 
16064  PeekMessageA( &msg, 0, 0, 0, PM_NOREMOVE );
16065  Sleep( 200 );
16067  return 0;
16068 }
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 7694 of file msg.c.

7695 {
7696  DWORD i, size;
7697  RGNDATA *data = NULL;
7698  RECT *rect;
7699 
7700  if (!hrgn)
7701  {
7702  printf( "null region\n" );
7703  return;
7704  }
7705  if (!(size = GetRegionData( hrgn, 0, NULL ))) return;
7706  if (!(data = HeapAlloc( GetProcessHeap(), 0, size ))) return;
7707  GetRegionData( hrgn, size, data );
7708  printf("%d rects:", data->rdh.nCount );
7709  for (i = 0, rect = (RECT *)data->Buffer; i < data->rdh.nCount; i++, rect++)
7710  printf( " %s", wine_dbgstr_rect( rect ));
7711  printf("\n");
7712  HeapFree( GetProcessHeap(), 0, data );
7713 }
& 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 2308 of file msg.c.

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