Go to the source code of this file.
◆ EXPECT_ACTIVE
Value: "Expected hwnd%d to be active, got hwnd%d\n", \
HWND WINAPI GetActiveWindow(void)
Definition at line 32 of file AttachThreadInput.c.
◆ EXPECT_FOREGROUND
Value: "Expected hwnd%d at the foreground, got hwnd%d\n", \
HWND WINAPI GetForegroundWindow(void)
Definition at line 28 of file AttachThreadInput.c.
◆ cleanup_attachments()
static void cleanup_attachments |
( |
| ) |
|
|
static |
Definition at line 209 of file AttachThreadInput.c.
214 for(
i = 0;
i< 4;
i++)
216 for(
j = 0;
j< 4;
j++)
219 ok(
ret==0,
"expected AttachThreadInput to fail\n");
BOOL WINAPI AttachThreadInput(_In_ DWORD, _In_ DWORD, _In_ BOOL)
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
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
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
Referenced by START_TEST().
◆ CreateTestThread()
Definition at line 118 of file AttachThreadInput.c.
131 win_skip(
"child thread failed to initialize\n");
HANDLE WINAPI DECLSPEC_HOTPATCH CreateEventW(IN LPSECURITY_ATTRIBUTES lpEventAttributes OPTIONAL, IN BOOL bManualReset, IN BOOL bInitialState, IN LPCWSTR lpName OPTIONAL)
DWORD WINAPI WaitForSingleObject(IN HANDLE hHandle, IN DWORD dwMilliseconds)
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)
static CHAR Desktop[MAX_PATH]
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
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
Referenced by InitThreads(), and Test_SimpleParameters().
◆ FlushMessages()
static void FlushMessages |
( |
| ) |
|
|
static |
Definition at line 60 of file AttachThreadInput.c.
LRESULT WINAPI DispatchMessageA(_In_ const MSG *)
TW_UINT32 TW_UINT16 TW_UINT16 MSG
void record_message(MSG_CACHE *cache, int iwnd, UINT message, MSG_TYPE type, int param1, int param2)
#define SendMessageTimeout
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Referenced by Test_Focus(), Test_SendInput(), and Test_UnaffectedMessages().
◆ get_iwnd()
◆ InitThreads()
Definition at line 163 of file AttachThreadInput.c.
BOOL WINAPI IsDebuggerPresent(VOID)
#define CreateWindowW(a, b, c, d, e, f, g, h, i, j, k)
DWORD WINAPI GetCurrentThreadId(VOID)
static __inline ATOM RegisterSimpleClass(WNDPROC lpfnWndProc, LPCWSTR lpszClassName)
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
HHOOK WINAPI SetWindowsHookExW(_In_ int, _In_ HOOKPROC, _In_opt_ HINSTANCE, _In_ DWORD)
#define WS_OVERLAPPEDWINDOW
HMODULE WINAPI GetModuleHandleW(LPCWSTR lpModuleName)
Referenced by START_TEST().
◆ KbdLLHookProc()
Definition at line 150 of file AttachThreadInput.c.
GLenum const GLfloat * params
LRESULT WINAPI CallNextHookEx(_In_opt_ HHOOK, _In_ int, _In_ WPARAM, _In_ LPARAM)
Referenced by InitThreads().
◆ MouseLLHookProc()
Definition at line 137 of file AttachThreadInput.c.
GLenum const GLfloat * params
LRESULT WINAPI CallNextHookEx(_In_opt_ HHOOK, _In_ int, _In_ WPARAM, _In_ LPARAM)
Referenced by InitThreads().
◆ START_TEST()
Definition at line 658 of file AttachThreadInput.c.
#define PostThreadMessage
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
BOOL WINAPI UnhookWindowsHookEx(_In_ HHOOK)
◆ Test_Focus()
Definition at line 350 of file AttachThreadInput.c.
366 ok(
ret==1,
"expected AttachThreadInput to succeed\n");
373 ok(
ret==1,
"expected AttachThreadInput to succeed\n");
389 ok(
ret==1,
"expected AttachThreadInput to succeed\n");
396 ok(
ret==1,
"expected AttachThreadInput to succeed\n");
410 ok(
ret==1,
"expected AttachThreadInput to succeed\n");
424 ok(
ret==1,
"expected AttachThreadInput to succeed\n");
440 ok(
ret==1,
"expected AttachThreadInput to succeed\n");
454 ok(
ret==1,
"expected AttachThreadInput to succeed\n");
BOOL WINAPI AttachThreadInput(_In_ DWORD, _In_ DWORD, _In_ BOOL)
HWND WINAPI SetActiveWindow(_In_ HWND)
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
BOOL WINAPI SetForegroundWindow(_In_ HWND)
Referenced by START_TEST().
◆ Test_SendInput()
Definition at line 537 of file AttachThreadInput.c.
576 ok(
ret==1,
"expected AttachThreadInput to succeed\n");
612 ok(
ret==1,
"expected AttachThreadInput to succeed\n");
618 ok(
ret==1,
"expected AttachThreadInput to succeed\n");
654 ok(
ret==1,
"expected AttachThreadInput to succeed\n");
VOID WINAPI DECLSPEC_HOTPATCH Sleep(IN DWORD dwMilliseconds)
BOOL WINAPI AttachThreadInput(_In_ DWORD, _In_ DWORD, _In_ BOOL)
HWND WINAPI SetActiveWindow(_In_ HWND)
#define EMPTY_CACHE_(cache)
VOID WINAPI keybd_event(_In_ BYTE, _In_ BYTE, _In_ DWORD, _In_ ULONG_PTR)
#define COMPARE_CACHE_(cache, msg_chain)
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
HWND WINAPI GetForegroundWindow(void)
BOOL WINAPI SetForegroundWindow(_In_ HWND)
HWND WINAPI GetActiveWindow(void)
Referenced by START_TEST().
◆ Test_SimpleParameters()
void Test_SimpleParameters |
( |
| ) |
|
Definition at line 231 of file AttachThreadInput.c.
238 ok(
ret==0,
"expected AttachThreadInput to fail\n");
242 ok(
ret==0,
"expected AttachThreadInput to fail\n");
246 ok(
ret==0,
"expected AttachThreadInput to fail\n");
252 ok(
ret==0,
"expected AttachThreadInput to fail\n");
260 ok(
ret==1,
"expected AttachThreadInput to succeed\n");
264 ok(
ret==1,
"expected AttachThreadInput to succeed\n");
270 ok(
ret==1,
"expected AttachThreadInput to succeed\n");
274 ok(
ret==1,
"expected AttachThreadInput to succeed\n");
278 ok(
ret==1,
"expected AttachThreadInput to succeed\n");
282 ok(
ret==0,
"expected AttachThreadInput to fail\n");
286 ok(
ret==0,
"expected AttachThreadInput to fail\n");
290 ok(
ret==1,
"expected AttachThreadInput to succeed\n");
293 ok(
ret==1,
"expected AttachThreadInput to succeed\n");
296 ok(
ret==1,
"expected AttachThreadInput to succeed\n");
302 ok(
ret==1,
"expected AttachThreadInput to succeed\n");
304 ok(
ret==1,
"expected AttachThreadInput to succeed\n");
308 ok(
ret==0,
"expected AttachThreadInput to fail\n");
310 ok(
ret==0,
"expected AttachThreadInput to fail\n");
314 ok(
ret==1,
"expected AttachThreadInput to succeed\n");
317 ok(
ret==1,
"expected AttachThreadInput to succeed\n");
321 ok(
ret==1,
"expected AttachThreadInput to succeed\n");
323 ok(
ret==1,
"expected AttachThreadInput to succeed\n");
329 ok(
ret==1,
"expected AttachThreadInput to succeed\n");
331 ok(
ret==1,
"expected AttachThreadInput to succeed\n");
333 ok(
ret==1,
"expected AttachThreadInput to succeed\n");
335 ok(
ret==1,
"expected AttachThreadInput to succeed\n");
340 ok(
ret==0,
"expected AttachThreadInput to fail\n");
342 ok(
ret==0,
"expected AttachThreadInput to fail\n");
BOOL WINAPI TerminateThread(IN HANDLE hThread, IN DWORD dwExitCode)
BOOL WINAPI AttachThreadInput(_In_ DWORD, _In_ DWORD, _In_ BOOL)
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Referenced by START_TEST().
◆ Test_UnaffectedMessages()
void Test_UnaffectedMessages |
( |
| ) |
|
Definition at line 459 of file AttachThreadInput.c.
483 ok(
ret==1,
"expected AttachThreadInput to succeed\n");
495 ok(
ret==1,
"expected AttachThreadInput to succeed\n");
516 ok(
ret==1,
"expected AttachThreadInput to succeed\n");
531 ok(
ret==1,
"expected AttachThreadInput to succeed\n");
VOID WINAPI DECLSPEC_HOTPATCH Sleep(IN DWORD dwMilliseconds)
BOOL WINAPI AttachThreadInput(_In_ DWORD, _In_ DWORD, _In_ BOOL)
#define EMPTY_CACHE_(cache)
#define SendMessageTimeout
#define COMPARE_CACHE_(cache, msg_chain)
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Referenced by START_TEST().
◆ TestProc()
Definition at line 50 of file AttachThreadInput.c.
void record_message(MSG_CACHE *cache, int iwnd, UINT message, MSG_TYPE type, int param1, int param2)
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Referenced by InitThreads().
◆ thread_proc()
Definition at line 84 of file AttachThreadInput.c.
TW_UINT32 TW_UINT16 TW_UINT16 MSG
BOOL WINAPI DECLSPEC_HOTPATCH SetEvent(IN HANDLE hEvent)
#define CreateWindowW(a, b, c, d, e, f, g, h, i, j, k)
BOOL WINAPI SetThreadDesktop(_In_ HDESK)
void record_message(MSG_CACHE *cache, int iwnd, UINT message, MSG_TYPE type, int param1, int param2)
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
#define DESKTOP_ALL_ACCESS
BOOL WINAPI CloseDesktop(_In_ HDESK)
#define WS_OVERLAPPEDWINDOW
HDESK WINAPI CreateDesktopW(LPCWSTR lpszDesktop, LPCWSTR lpszDevice, LPDEVMODEW pDevmode, DWORD dwFlags, ACCESS_MASK dwDesiredAccess, LPSECURITY_ATTRIBUTES lpsa)
Referenced by CreateTestThread().
◆ data
◆ hKbdHookLL
◆ hMouseHookLL
HHOOK hMouseHookLL = NULL |
◆ tidMouseMove