11#define SUB_PROGRAM L"user32_apitest_menuui.exe"
12#define CLASSNAME L"MenuUITest"
13#define MENUCLASS L"#32768"
74 input.mi.dx = (
LONG)(
x * (65535.0f / nScreenWidth));
75 input.mi.dy = (
LONG)(
y * (65535.0f / nScreenHeight));
152 pData->nMenuCount += 1;
161 return data.nMenuCount;
167 for (
INT i = 0;
i < 10; ++
i)
175 for (
INT i = 0;
i < 10; ++
i)
190 return info.hwndActive;
198 return info.hwndFocus;
206 return info.hwndCapture;
227 skip(
"ShellExecuteExW failed\n");
237 skip(
"ShellExecuteExW failed\n");
246 trace(
"hwnd1: %p\n", hwnd1);
247 trace(
"hwnd2: %p\n", hwnd2);
249 ok(hwnd1 !=
NULL,
"hwnd1 was NULL\n");
250 ok(hwnd2 !=
NULL,
"hwnd2 was NULL\n");
251 ok(hwnd1 != hwnd2,
"hwnd1 == hwnd2\n");
273 trace(
"hwndMenu1: %p\n", hwndMenu1);
276 HWND hwndFore, hwndActive, hwndFocus, hwndCapture;
279 ok(hwndFore == hwnd1,
"hwndFore was %p\n", hwndFore);
284 ok(hwndActive == hwnd1,
"hwndActive was %p\n", hwndActive);
285 ok(hwndFocus == hwnd1,
"hwndFocus was %p\n", hwndFocus);
286 ok(hwndCapture == hwnd1,
"hwndCapture was %p\n", hwndCapture);
293 trace(
"hwndMenu2: %p\n", hwndMenu2);
295 ok(hwndMenu1 != hwndMenu2,
"hwndMenu1 == hwndMenu2\n");
298 ok(hwndFore == hwnd2,
"hwndFore was %p\n", hwndFore);
303 ok(hwndActive == hwnd2,
"hwndActive was %p\n", hwndActive);
304 ok(hwndFocus == hwnd2,
"hwndFocus was %p\n", hwndFocus);
305 ok(hwndCapture == hwnd2,
"hwndCapture was %p\n", hwndCapture);
312 ok(hwndFore == hwnd2,
"hwndFore was %p\n", hwndFore);
317 ok(!hwndActive,
"hwndActive was %p\n", hwndActive);
318 ok(!hwndFocus,
"hwndFocus was %p\n", hwndFocus);
319 ok(!hwndCapture,
"hwndCapture was %p\n", hwndCapture);
324 ok(hwndActive == hwnd2,
"hwndActive was %p\n", hwndActive);
325 ok(hwndFocus == hwnd2,
"hwndFocus was %p\n", hwndFocus);
326 ok(!hwndCapture,
"hwndCapture was %p\n", hwndCapture);
330 trace(
"hwndMenu0: %p\n", hwndMenu0);
336 trace(
"hwndMenu1: %p\n", hwndMenu1);
346 trace(
"hwndMenu1: %p\n", hwndMenu1);
351 trace(
"hwndMenu1: %p\n", hwndMenu1);
356 trace(
"hwndMenu1: %p\n", hwndMenu1);
361 trace(
"hwndMenu1: %p\n", hwndMenu1);
365 POINT pt1_3 = { ptMenu1.
x, (2 * rcMenu1.
top + 1 * rcMenu1.
bottom) / (1 + 2) };
414 ok(nMenuCount == 1,
"nMenuCount was %d\n", nMenuCount);
424 ok(nMenuCount == 2,
"nMenuCount was %d\n", nMenuCount);
429 ok(nMenuCount == 1,
"nMenuCount was %d\n", nMenuCount);
455 ok(hwndFore == hwnd1,
"hwndFore was %p\n", hwndFore);
460 ok(hwndActive == hwnd1,
"hwndActive was %p\n", hwndActive);
461 ok(hwndFocus == hwnd1,
"hwndFocus was %p\n", hwndFocus);
462 ok(hwndCapture == hwnd1,
"hwndCapture was %p\n", hwndCapture);
471 ok(hwndMenu1 != hwndMenu2,
"hwndMenu1 == hwndMenu2\n");
474 ok(hwndFore == hwnd2,
"hwndFore was %p\n", hwndFore);
479 ok(!hwndActive,
"hwndActive was %p\n", hwndActive);
480 ok(!hwndFocus,
"hwndFocus was %p\n", hwndFocus);
481 ok(!hwndCapture,
"hwndFocus was %p\n", hwndCapture);
486 ok(hwndActive == hwnd2,
"hwndActive was %p\n", hwndActive);
487 ok(hwndFocus == hwnd2,
"hwndFocus was %p\n", hwndFocus);
488 ok(hwndCapture == hwnd2,
"hwndFocus was %p\n", hwndCapture);
498 ok(hwndFore == hwnd1,
"hwndFore was %p\n", hwndFore);
503 ok(hwndActive == hwnd1,
"hwndActive was %p\n", hwndActive);
504 ok(hwndFocus == hwnd1,
"hwndFocus was %p\n", hwndFocus);
505 ok(hwndCapture == hwnd1,
"hwndCapture was %p\n", hwndCapture);
510 ok(!hwndActive,
"hwndActive was %p\n", hwndActive);
511 ok(!hwndFocus,
"hwndFocus was %p\n", hwndFocus);
512 ok(!hwndCapture,
"hwndFocus was %p\n", hwndCapture);
520 ok(hwndFore == hwnd2,
"hwndFore was %p\n", hwndFore);
525 ok(!hwndActive,
"hwndActive was %p\n", hwndActive);
526 ok(!hwndFocus,
"hwndFocus was %p\n", hwndFocus);
527 ok(!hwndCapture,
"hwndFocus was %p\n", hwndCapture);
532 ok(hwndActive == hwnd2,
"hwndActive was %p\n", hwndActive);
533 ok(hwndFocus == hwnd2,
"hwndFocus was %p\n", hwndFocus);
534 ok(hwndCapture == hwnd2,
"hwndFocus was %p\n", hwndCapture);
552 ok(nMenuCount == 1,
"nMenuCount was %d\n", nMenuCount);
559 ok(nMenuCount == 2,
"nMenuCount was %d\n", nMenuCount);
565 ok(nMenuCount == 1,
"nMenuCount was %d\n", nMenuCount);
571 ok(nMenuCount == 2,
"nMenuCount was %d\n", nMenuCount);
578 ok(nMenuCount == 1,
"nMenuCount was %d\n", nMenuCount);
592 ok(hwndFore == hwnd1,
"hwndFore was %p\n", hwndFore);
597 ok(hwndActive == hwnd1,
"hwndActive was %p\n", hwndActive);
598 ok(hwndFocus == hwnd1,
"hwndFocus was %p\n", hwndFocus);
599 ok(hwndCapture == hwnd1,
"hwndCapture was %p\n", hwndCapture);
604 ok(!hwndActive,
"hwndActive was %p\n", hwndActive);
605 ok(!hwndFocus,
"hwndFocus was %p\n", hwndFocus);
606 ok(!hwndCapture,
"hwndFocus was %p\n", hwndCapture);
616 ok(hwndFore == hwnd1,
"hwndFore was %p\n", hwndFore);
621 ok(hwndActive == hwnd1,
"hwndActive was %p\n", hwndActive);
622 ok(hwndFocus == hwnd1,
"hwndFocus was %p\n", hwndFocus);
623 ok(hwndCapture == hwnd1,
"hwndCapture was %p\n", hwndCapture);
628 ok(!hwndActive,
"hwndActive was %p\n", hwndActive);
629 ok(!hwndFocus,
"hwndFocus was %p\n", hwndFocus);
630 ok(!hwndCapture,
"hwndFocus was %p\n", hwndCapture);
637 ok(hwndFore == hwnd2,
"hwndFore was %p\n", hwndFore);
642 ok(!hwndActive,
"hwndActive was %p\n", hwndActive);
643 ok(!hwndFocus,
"hwndFocus was %p\n", hwndFocus);
644 ok(!hwndCapture,
"hwndFocus was %p\n", hwndCapture);
649 ok(hwndActive == hwnd2,
"hwndActive was %p\n", hwndActive);
650 ok(hwndFocus == hwnd2,
"hwndFocus was %p\n", hwndFocus);
651 ok(hwndCapture == hwnd2,
"hwndFocus was %p\n", hwndCapture);
658 ok(hwndFore == hwnd1,
"hwndFore was %p\n", hwndFore);
663 ok(hwndActive == hwnd1,
"hwndActive was %p\n", hwndActive);
664 ok(hwndFocus == hwnd1,
"hwndFocus was %p\n", hwndFocus);
665 ok(hwndCapture == hwnd1,
"hwndCapture was %p\n", hwndCapture);
670 ok(!hwndActive,
"hwndActive was %p\n", hwndActive);
671 ok(!hwndFocus,
"hwndFocus was %p\n", hwndFocus);
672 ok(!hwndCapture,
"hwndFocus was %p\n", hwndCapture);
676 RECT rcTitleBar1, rcTitleBar2;
691 ok(!hwndActive,
"hwndActive was %p\n", hwndActive);
692 ok(!hwndFocus,
"hwndFocus was %p\n", hwndFocus);
693 ok(!hwndCapture,
"hwndFocus was %p\n", hwndCapture);
698 ok(hwndActive == hwnd2,
"hwndActive was %p\n", hwndActive);
699 ok(hwndFocus == hwnd2,
"hwndFocus was %p\n", hwndFocus);
700 ok(hwndCapture == hwnd2,
"hwndFocus was %p\n", hwndCapture);
703 ok(nMenuCount == 1,
"nMenuCount was %d\n", nMenuCount);
712 ok(hwndActive == hwnd1,
"hwndActive was %p\n", hwndActive);
713 ok(hwndFocus == hwnd1,
"hwndFocus was %p\n", hwndFocus);
714 ok(hwndCapture == hwnd1,
"hwndFocus was %p\n", hwndCapture);
719 ok(!hwndActive,
"hwndActive was %p\n", hwndActive);
720 ok(!hwndFocus,
"hwndFocus was %p\n", hwndFocus);
721 ok(!hwndCapture,
"hwndFocus was %p\n", hwndCapture);
724 ok(nMenuCount == 1,
"nMenuCount was %d\n", nMenuCount);
734 ok(nMenuCount == 0,
"nMenuCount was %d\n", nMenuCount);
795 skip(
"RegisterClassW failed\n");
804 skip(
"CreateWindowW failed\n");
831 skip(
"ShellExecuteExW not found\n");
#define GetProcAddress(x, y)
DWORD WINAPI GetFileAttributesW(LPCWSTR lpFileName)
HMODULE WINAPI GetModuleHandleW(LPCWSTR lpModuleName)
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)
int WINAPI lstrcmpiW(LPCWSTR str1, LPCWSTR str2)
GLint GLint GLint GLint GLint x
GLuint GLuint GLsizei count
GLuint GLuint GLsizei GLenum type
GLint GLint GLint GLint GLint GLint y
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLenum GLenum GLenum input
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
#define WS_OVERLAPPEDWINDOW
#define SEE_MASK_NOCLOSEPROCESS
#define SEE_MASK_FLAG_NO_UI
VOID WINAPI DECLSPEC_HOTPATCH Sleep(IN DWORD dwMilliseconds)
TW_UINT32 TW_UINT16 TW_UINT16 TW_MEMREF pData
TW_UINT32 TW_UINT16 TW_UINT16 MSG
#define INVALID_FILE_ATTRIBUTES
UINT WINAPI SendInput(UINT, LPINPUT, int)
BOOL WINAPI GetGUIThreadInfo(DWORD, LPGUITHREADINFO)
DWORD WINAPI GetWindowThreadProcessId(HWND hWnd, PDWORD lpdwProcessId)
#define MOUSEEVENTF_ABSOLUTE
BOOL WINAPI GetTitleBarInfo(_In_ HWND, _Inout_ PTITLEBARINFO)
BOOL WINAPI TranslateMessage(_In_ const MSG *)
BOOL WINAPI ShowWindow(_In_ HWND, _In_ int)
HWND WINAPI GetForegroundWindow(void)
LRESULT WINAPI DefWindowProcW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
#define MOUSEEVENTF_LEFTUP
BOOL WINAPI GetMessageW(_Out_ LPMSG, _In_opt_ HWND, _In_ UINT, _In_ UINT)
BOOL WINAPI PostMessageW(_In_opt_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
BOOL WINAPI GetWindowRect(_In_ HWND, _Out_ LPRECT)
__analysis_noreturn void WINAPI PostQuitMessage(_In_ int)
ATOM WINAPI RegisterClassW(_In_ CONST WNDCLASSW *)
#define MOUSEEVENTF_RIGHTUP
#define MOUSEEVENTF_LEFTDOWN
BOOL WINAPI EnumWindows(_In_ WNDENUMPROC lpEnumFunc, _In_ LPARAM lParam)
DWORD WINAPI WaitForInputIdle(_In_ HANDLE, _In_ DWORD)
BOOL WINAPI UpdateWindow(_In_ HWND)
#define CreateWindowW(a, b, c, d, e, f, g, h, i, j, k)
BOOL WINAPI SystemParametersInfoW(_In_ UINT uiAction, _In_ UINT uiParam, _Inout_opt_ PVOID pvParam, _In_ UINT fWinIni)
HANDLE WINAPI GetPropW(_In_ HWND, _In_ LPCWSTR)
int WINAPI GetClassNameW(_In_ HWND hWnd, _Out_writes_to_(nMaxCount, return) LPWSTR lpClassName, _In_ int nMaxCount)
LRESULT WINAPI DispatchMessageW(_In_ const MSG *)
#define MOUSEEVENTF_RIGHTDOWN
HWND WINAPI FindWindowW(_In_opt_ LPCWSTR, _In_opt_ LPCWSTR)
BOOL WINAPI IsWindowVisible(_In_ HWND)
BOOL WINAPI GetMenuBarInfo(_In_ HWND, _In_ LONG, _In_ LONG, _Inout_ PMENUBARINFO)
int WINAPI GetSystemMetrics(_In_ int)
BOOL WINAPI MoveWindow(_In_ HWND, _In_ int, _In_ int, _In_ int, _In_ int, _In_ BOOL)