27 #define MSG_APPBAR WM_APP 56 ok(
info !=
NULL,
"got unexpected ABN_POSCHANGED notification\n");
63 if (
info->to_be_deleted)
65 win_skip(
"Some Win95 and NT4 systems send messages to removed taskbars\n");
72 abd.
rc =
info->desired_rect;
78 ok(
info->desired_rect.top == abd.
rc.
top,
"ABM_QUERYPOS changed top of rect from %i to %i\n",
info->desired_rect.top, abd.
rc.
top);
82 ok(
info->desired_rect.right == abd.
rc.
right,
"ABM_QUERYPOS changed right of rect from %i to %i\n",
info->desired_rect.right, abd.
rc.
right);
86 ok(
info->desired_rect.left == abd.
rc.
left,
"ABM_QUERYPOS changed left of rect from %i to %i\n",
info->desired_rect.left, abd.
rc.
left);
90 ok(
info->desired_rect.bottom == abd.
rc.
bottom,
"ABM_QUERYPOS changed bottom of rect from %i to %i\n",
info->desired_rect.bottom, abd.
rc.
bottom);
98 info->allocated_rect = abd.
rc;
139 if (timedout ||
test())
166 for (
j=
i+1;
j<3;
j++)
197 #define test_window_rects(a, b) \ 198 ok(!IntersectRect(&rc, &windows[a].allocated_rect, &windows[b].allocated_rect), \ 199 "rectangles intersect %s / %s\n", wine_dbgstr_rect(&windows[a].allocated_rect), \ 200 wine_dbgstr_rect(&windows[b].allocated_rect)) 206 int screen_width, screen_height;
261 windows[0].desired_rect.top = screen_height - 20;
322 org_bottom1 =
windows[1].allocated_rect.bottom;
324 "Expected windows[0] to be lower than windows[1]\n");
336 win_skip(
"Some broken Vista boxes don't move the higher appbar down\n");
339 "windows[1]'s bottom is %i, expected %i\n",
366 memset(&abd, 0xcc,
sizeof(abd));
367 memset(&unset_hwnd, 0xcc,
sizeof(unset_hwnd));
373 ok(abd.
hWnd == unset_hwnd,
"hWnd overwritten %p\n",abd.
hWnd);
375 if (!pMonitorFromWindow)
377 win_skip(
"MonitorFromWindow is not available\n");
389 ok(abd.
hWnd == foregnd,
"hWnd overwritten\n");
393 appbar_mon = pMonitorFromWindow(
hwnd, MONITOR_DEFAULTTONEAREST);
394 foregnd_mon = pMonitorFromWindow(foregnd, MONITOR_DEFAULTTONEAREST);
395 ok(appbar_mon == foregnd_mon,
"Windows on different monitors\n");
400 memset(&abd, 0xcc,
sizeof(abd));
405 ok(abd.
hWnd == (
HWND)0xcccccccc,
"hWnd overwritten\n");
408 "uEdge not returned\n");
409 ok(abd.
rc.
left != 0xcccccccc,
"rc not updated\n");
420 if (!pGetCurrentProcessExplicitAppUserModelID)
422 win_skip(
"GetCurrentProcessExplicitAppUserModelID() is not supported.\n");
427 hr = pGetCurrentProcessExplicitAppUserModelID(
NULL);
429 appid = (
void*)0xdeadbeef;
430 hr = pGetCurrentProcessExplicitAppUserModelID(&
appid);
443 pGetCurrentProcessExplicitAppUserModelID = (
void*)
GetProcAddress(hshell32,
"GetCurrentProcessExplicitAppUserModelID");
static struct testwindow_info windows[3]
#define ABM_GETAUTOHIDEBAR
BOOL WINAPI TranslateMessage(_In_ const MSG *)
LRESULT WINAPI DispatchMessageA(_In_ const MSG *)
static HRESULT(WINAPI *pGetCurrentProcessExplicitAppUserModelID)(PWSTR *)
struct png_info_def **typedef void(__cdecl typeof(png_destroy_read_struct))(struct png_struct_def **
BOOL WINAPI IsWindow(_In_opt_ HWND)
static LRESULT CALLBACK testwindow_wndproc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam)
BOOL WINAPI WaitMessage(void)
static void do_events_until(boolean_function test)
TW_UINT32 TW_UINT16 TW_UINT16 MSG
static BOOL got_expected_bottom(void)
#define ABM_GETTASKBARPOS
BOOL WINAPI PeekMessageA(_Out_ LPMSG, _In_opt_ HWND, _In_ UINT, _In_ UINT, _In_ UINT)
static HMONITOR(WINAPI *pMonitorFromWindow)(HWND
BOOL WINAPI DestroyWindow(_In_ HWND)
UINT_PTR WINAPI SHAppBarMessage(DWORD msg, PAPPBARDATA data)
static const CHAR testwindow_class[]
static UINT WPARAM LPARAM lparam
UINT_PTR WINAPI SetTimer(_In_opt_ HWND, _In_ UINT_PTR, _In_ UINT, _In_opt_ TIMERPROC)
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 GLint GLint j
#define GetWindowLongPtrA
static void do_events(void)
static void test_appbarget(void)
static int expected_bottom
int WINAPI GetSystemMetrics(_In_ int)
unsigned __int3264 UINT_PTR
BOOL WINAPI KillTimer(_In_opt_ HWND, _In_ UINT_PTR)
#define test_window_rects(a, b)
#define SetWindowLongPtrA
HMODULE WINAPI DECLSPEC_HOTPATCH GetModuleHandleA(LPCSTR lpModuleName)
static void testwindow_setpos(HWND hwnd)
LRESULT WINAPI DefWindowProcA(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
ATOM WINAPI RegisterClassExA(_In_ CONST WNDCLASSEXA *)
BOOL WINAPI MoveWindow(_In_ HWND, _In_ int, _In_ int, _In_ int, _In_ int, _In_ BOOL)
BOOL WINAPI IntersectRect(_Out_ LPRECT, _In_ LPCRECT, _In_ LPCRECT)
HCURSOR WINAPI LoadCursorA(_In_opt_ HINSTANCE, _In_ LPCSTR)
BOOL WINAPI SetRect(_Out_ LPRECT, _In_ int, _In_ int, _In_ int, _In_ int)
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
BOOL(* boolean_function)(void)
HWND WINAPI GetForegroundWindow(void)
static void test_setpos(void)
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 GetProcAddress(x, y)
static BOOL no_appbars_intersect(void)
static void test_GetCurrentProcessExplicitAppUserModelID(void)
static void register_testwindow_class(void)
static UINT WPARAM wparam