30 #define WM_CLIPBOARDUPDATE 0x031D 66 HWND hwnd =
CreateWindowA(
"static",
NULL,
WS_POPUP, 0, 0, 10, 10, 0, 0, 0,
NULL );
122 ok( !
ret,
"process %u: SetClipboardData succeeded\n",
arg );
134 ok(
ret,
"OpenClipboard failed\n" );
136 ok(
ret,
"EmptyClipboard failed\n" );
175 ok(
CreateProcessA(
NULL,
cmd,
NULL,
NULL,
FALSE, 0,
NULL,
NULL, &
startup, &
info ),
176 "CreateProcess %s failed\n",
cmd );
186 static int wm_renderallformats;
194 if (!wm_renderallformats)
211 ok( wm_renderallformats,
"didn't receive WM_RENDERALLFORMATS before WM_DESTROY\n" );
215 ok( msg_flags == ISMEX_NOSEND,
"WM_DRAWCLIPBOARD wrong flags %x\n", msg_flags );
219 ok( msg_flags == ISMEX_NOSEND,
"WM_RENDERALLFORMATS wrong flags %x\n", msg_flags );
220 wm_renderallformats++;
233 "could not perform clipboard test: clipboard already owned\n");
236 0, 0, 10, 10, 0, 0, 0,
NULL);
241 0, 0, 10, 10, 0, 0, 0,
NULL);
246 ok(!
CloseClipboard(),
"CloseClipboard should fail if clipboard wasn't open\n");
264 ok(!
CloseClipboard(),
"CloseClipboard should fail if clipboard wasn't open\n");
270 "OpenClipboard should fail without setting last error value, or with ERROR_ACCESS_DENIED, got error %d\n",
GetLastError());
286 "OpenClipboard should fail without setting last error value, or with ERROR_ACCESS_DENIED, got error %d\n",
GetLastError());
330 ok( !
ret,
"CloseClipboard succeeded\n" );
359 "SetClipboardData succeeded\n" );
386 ok(format_id2 ==
format_id,
"invalid clipboard format id %04x\n", format_id2);
389 ok(
len ==
lstrlenA(
"my_cool_clipboard_format"),
"wrong format name length %d\n",
len);
390 ok(!
lstrcmpA(
buf,
"my_cool_clipboard_format"),
"wrong format name \"%s\"\n",
buf);
393 ok(
len == 0,
"wrong format name length %d\n",
len);
398 ok(
len == 0,
"GetAtomNameA should fail\n");
406 ok(
len == 0,
"GlobalGetAtomNameA should fail\n");
411 atom_id =
FindAtomA(
"my_cool_clipboard_format");
412 ok(atom_id == 0,
"FindAtomA should fail\n");
420 ok(atom_id == 0,
"GlobalFindAtomA should fail\n");
429 if (format_id < 0xc000 || format_id > 0xffff)
430 ok(!
len,
"GetClipboardFormatNameA should fail, but it returned %d (%s)\n",
len,
buf);
441 ok( !
handle,
"SetClipboardData succeeded\n" );
477 "Last error should be set to ERROR_CLIPBOARD_NOT_OPEN, not %d\n",
GetLastError());
481 ok(!
EmptyClipboard(),
"EmptyClipboard should fail if clipboard wasn't open\n");
493 memcpy(
p,
"test\0\0\0\0\0", 10);
500 static const WCHAR testW[] = {
't',
'e',
's',
't',0,0,0,0,0,0};
548 sizeof(BITMAPV5HEADER) + 256 *
sizeof(
RGBQUAD) + 16 * 16 * 4 );
550 hdr->biSize = v5 ?
sizeof(BITMAPV5HEADER) :
sizeof(*
hdr);
554 hdr->biBitCount = 32;
558 BITMAPV5HEADER *hdr5 = (BITMAPV5HEADER *)
hdr;
559 hdr5->bV5RedMask = 0x0000ff;
560 hdr5->bV5GreenMask = 0x00ff00;
561 hdr5->bV5BlueMask = 0xff0000;
562 hdr5->bV5AlphaMask = 0xff000000;
570 static UINT rendered;
576 if (wp < 32) rendered |= (1 << wp);
588 static const struct test 611 hwnd =
CreateWindowA(
"static",
NULL,
WS_POPUP, 0, 0, 10, 10, 0, 0, 0,
NULL );
622 ok(
h == htext,
"got %p\n",
h);
674 ok(
cf == 0,
"cf %08x\n",
cf);
705 ok(
cf == 0,
"cf %08x\n",
cf );
709 ok(
cf == 0,
"cf %08x\n",
cf );
778 ok(seq ==
old_seq,
"sequence changed (test %d %d)\n",
i,
cf);
803 ok(
cf == 0,
"%u: cf %04x\n",
i,
cf);
812 ok( !rendered,
"%u: formats %08x have been rendered\n",
i, rendered );
816 ok( !rendered,
"%u: formats %08x have been rendered\n",
i, rendered );
824 ok( !rendered,
"%u: formats %08x have been rendered\n",
i, rendered );
834 ok( !rendered,
"%u: formats %08x have been rendered\n",
i, rendered );
846 ok( !rendered,
"%u.%u: formats %08x have been rendered\n",
i,
j, rendered );
852 ok( !rendered,
"%u.%u: formats %08x have been rendered\n",
i,
j, rendered );
858 "%u.%u: formats %08x have been rendered\n",
i,
j, rendered );
863 "%u.%u: formats %08x have been rendered\n",
i,
j, rendered );
869 ok(
cf == 0,
"%u: cf %04x\n",
i,
cf);
874 ok( !rendered,
"%u: formats %08x have been rendered\n",
i, rendered );
912 "WM_DRAWCLIPBOARD wrong flags %x\n", msg_flags );
919 "WM_CHANGECBCHAIN wrong flags %x\n", msg_flags );
927 "WM_DESTROYCLIPBOARD wrong flags %x\n", msg_flags );
945 ok( seq ==
old_seq,
"sequence changed\n" );
953 ok( seq ==
old_seq,
"sequence changed\n" );
957 case WM_CLIPBOARDUPDATE:
958 ok( msg_flags == ISMEX_NOSEND,
"WM_CLIPBOARDUPDATE wrong flags %x\n", msg_flags );
1020 if (update && !
broken(!pAddClipboardFormatListener))
1024 ok_(__FILE__,
line)(
count == draw,
"WM_DRAWCLIPBOARD %sreceived\n", draw ?
"not " :
"");
1027 "WM_CLIPBOARDUPDATE %sreceived\n", update ?
"not " :
"");
1033 #define check_messages(a,b,c,d,e,f) check_messages_(__LINE__,a,b,c,d,e,f) 1056 ok( !
ret,
"SetClipboardViewer succeeded\n" );
1060 ok( !
r,
"ChangeClipboardChain succeeded\n" );
1064 ok( !
r,
"ChangeClipboardChain succeeded\n" );
1067 if (pAddClipboardFormatListener)
1069 r = pAddClipboardFormatListener(
win);
1072 r = pAddClipboardFormatListener(
win );
1073 ok( !
r,
"AddClipboardFormatListener succeeded\n" );
1076 r = pAddClipboardFormatListener( (
HWND)0xdead );
1077 ok( !
r,
"AddClipboardFormatListener succeeded\n" );
1082 ok(
r,
"RemoveClipboardFormatListener failed err %d\n",
GetLastError());
1089 ok( !
r,
"OpenClipboard succeeded\n" );
1107 ok( !
count,
"wrong format count %u on WM_DESTROYCLIPBOARD\n",
count );
1144 ok( !
handle,
"got data for CF_UNICODETEXT\n" );
1150 ok(
handle !=
NULL,
"didn't get data for CF_OEMTEXT\n" );
1261 if (pRemoveClipboardFormatListener)
1263 r = pRemoveClipboardFormatListener(
win);
1264 ok(
r,
"RemoveClipboardFormatListener failed err %d\n",
GetLastError());
1266 r = pRemoveClipboardFormatListener(
win);
1267 ok( !
r,
"RemoveClipboardFormatListener succeeded\n" );
1270 r = pRemoveClipboardFormatListener( (
HWND)0xdead );
1271 ok( !
r,
"RemoveClipboardFormatListener succeeded\n" );
1288 memset(&cls, 0,
sizeof(cls));
1294 win =
CreateWindowA(
"clipboard_test",
NULL, 0, 0, 0, 0, 0,
NULL, 0,
NULL, 0);
1314 win =
CreateWindowA(
"clipboard_test",
NULL, 0, 0, 0, 0, 0,
NULL, 0,
NULL, 0 );
1350 HGLOBAL h, htext, htext2, htext3, htext4, htext5;
1351 HGLOBAL hfixed, hfixed2, hmoveable, empty_fixed, empty_moveable;
1372 ok(
is_fixed( hfixed ),
"expected fixed mem %p\n", hfixed );
1376 ok(
is_moveable( hmoveable ),
"expected moveable mem %p\n", hmoveable );
1380 ok(
is_fixed( empty_fixed ),
"expected fixed mem %p\n", empty_fixed );
1384 ok(
is_freed( empty_moveable ),
"expected free mem %p\n", empty_moveable );
1392 ok(
h == htext,
"got %p\n",
h );
1395 ok(
h == htext2,
"got %p\n",
h );
1399 ok(
h == bitmap_temp,
"got %p\n",
h );
1404 ok( !
GetObjectType( bitmap_temp ),
"expected free object %p\n", bitmap_temp );
1412 ok(
h == htext3,
"got %p\n",
h );
1415 ok(
h == htext5,
"got %p\n",
h );
1418 ok( !
h,
"got %p\n",
h );
1425 ok( !
h,
"got %p\n",
h );
1430 ok(
h == empty_fixed,
"got %p\n",
h );
1433 ok(
h == hfixed2,
"got %p\n",
h );
1436 ok(
h == hmoveable,
"got %p\n",
h );
1441 ok(
h ==
ptr || !
h,
"got %p\n",
h );
1449 ok(
data == htext,
"wrong data %p\n",
data );
1457 ok(
data == htext3,
"wrong data %p\n",
data );
1461 ok(
data == htext5,
"wrong data %p\n",
data );
1465 ok(
data == empty_fixed,
"wrong data %p\n",
data );
1469 ok(
data == hfixed2,
"wrong data %p\n",
data );
1473 ok(
data == hmoveable,
"wrong data %p\n",
data );
1480 ok(
h == htext4,
"got %p\n",
h );
1482 ok(
is_freed( htext5 ),
"expected freed mem %p\n", htext5 );
1485 ok(
h == hfixed,
"got %p\n",
h );
1488 ok(
is_freed( hfixed2 ),
"expected freed mem %p\n", hfixed2 );
1494 ok(
is_moveable( htext ),
"expected moveable mem %p\n", htext );
1495 ok(
is_moveable( htext2 ),
"expected moveable mem %p\n", htext2 );
1496 ok(
is_moveable( htext3 ),
"expected moveable mem %p\n", htext3 );
1497 ok(
is_moveable( htext4 ),
"expected moveable mem %p\n", htext4 );
1501 ok(
is_fixed( hfixed ),
"expected fixed mem %p\n", hfixed );
1502 ok(
is_moveable( hmoveable ),
"expected moveable mem %p\n", hmoveable );
1503 ok(
is_fixed( empty_fixed ),
"expected fixed mem %p\n", empty_fixed );
1511 ok(
is_freed( htext ),
"expected freed mem %p\n", htext );
1512 ok(
is_freed( htext2 ),
"expected freed mem %p\n", htext2 );
1513 ok(
is_freed( htext3 ),
"expected freed mem %p\n", htext3 );
1514 ok(
is_freed( htext4 ),
"expected freed mem %p\n", htext4 );
1515 ok(
is_freed( hmoveable ),
"expected freed mem %p\n", hmoveable );
1547 ok(
is_moveable( htext ),
"expected moveable mem %p\n", htext );
1548 ok(
is_moveable( htext2 ),
"expected moveable mem %p\n", htext2 );
1549 ok(
is_moveable( htext3 ),
"expected moveable mem %p\n", htext3 );
1550 ok(
is_moveable( htext4 ),
"expected moveable mem %p\n", htext4 );
1551 ok(
is_moveable( hmoveable ),
"expected moveable mem %p\n", hmoveable );
1554 ok(
data == htext,
"wrong data %p\n",
data );
1560 ok(
data == htext3,
"wrong data %p\n",
data );
1563 ok(
data == htext4,
"wrong data %p\n",
data );
1566 ok(
data == empty_fixed,
"wrong data %p\n",
data );
1569 ok(
data == hfixed,
"wrong data %p\n",
data );
1572 ok(
data == hmoveable,
"wrong data %p\n",
data );
1598 ok(
is_fixed( hfixed ),
"expected fixed mem %p\n", hfixed );
1599 ok(
is_fixed( empty_fixed ),
"expected fixed mem %p\n", empty_fixed );
1610 ok(
is_fixed( empty_fixed ),
"expected fixed mem %p\n", empty_fixed );
1611 ok(
is_fixed( hfixed ),
"expected fixed mem %p\n", hfixed );
1622 trace(
"running from different thread\n" );
1650 trace(
"gdiobj %p\n",
h );
1656 trace(
"private %p\n",
h );
1660 trace(
"bitmap %p\n",
h );
1664 trace(
"bitmap2 %p\n",
h );
1668 trace(
"palette %p\n",
h );
1705 trace(
"gdiobj %p\n",
h );
1711 trace(
"private %p\n",
h );
1714 ok(
GetObjectW(
h,
sizeof(bm), &bm ) ==
sizeof(bm),
"GetObject %p failed\n",
h );
1715 ok( bm.bmWidth == 13 && bm.bmHeight == 17,
"wrong bitmap %ux%u\n", bm.bmWidth, bm.bmHeight );
1716 trace(
"bitmap %p\n",
h );
1719 trace(
"bitmap2 %p\n",
h );
1724 "wrong color %02x,%02x,%02x\n",
entry.peRed,
entry.peGreen,
entry.peBlue );
1725 trace(
"palette %p\n",
h );
1733 trace(
"metafile %p\n",
h );
1741 trace(
"metafile2 %p\n",
h );
1745 "GetEnhMetaFileBits failed on %p\n",
h );
1748 trace(
"enhmetafile %p\n",
h );
1752 "GetEnhMetaFileBits failed on %p\n",
h );
1755 trace(
"enhmetafile2 %p\n",
h );
1787 trace(
"dibsection %p\n",
h );
1797 HWND hwnd =
CreateWindowA(
"static",
NULL,
WS_POPUP, 0, 0, 10, 10, 0, 0, 0,
NULL );
1801 ok(
hwnd != 0,
"window creation failed\n" );
1828 trace(
"metafile %p\n",
h );
1831 trace(
"metafile2 %p\n",
h );
1834 trace(
"enhmetafile %p\n",
h );
1837 trace(
"enhmetafile2 %p\n",
h );
1879 "expected free mem %p\n",
text );
1884 memset( &bmi, 0,
sizeof(bmi) );
1898 trace(
"dibsection %p\n",
h );
1921 if (!pGetUpdatedClipboardFormats)
1923 win_skip(
"GetUpdatedClipboardFormats not supported\n" );
1928 r = pGetUpdatedClipboardFormats(
NULL, 0, &
count );
1933 r = pGetUpdatedClipboardFormats(
NULL, 256, &
count );
1939 ok( !
r,
"succeeded\n" );
1980 ok( !
r,
"succeeded\n" );
1987 ok( !
r,
"succeeded\n" );
2014 r = pGetUpdatedClipboardFormats(
NULL, 256, &
count );
2020 r = pGetUpdatedClipboardFormats(
NULL, 256, &
count );
2035 {
"foo\0bar", {0}, 7 },
2036 {
"foo\0bar", {0}, 8 },
2037 {
"", {
'f',
'o',
'o'}, 3 *
sizeof(
WCHAR) },
2038 {
"", {
'f',
'o',
'o',0}, 4 *
sizeof(
WCHAR) },
2039 {
"", {
'f',
'o',
'o',0,
'b',
'a',
'r'}, 7 *
sizeof(
WCHAR) },
2040 {
"", {
'f',
'o',
'o',0,
'b',
'a',
'r',0}, 8 *
sizeof(
WCHAR) },
2041 {
"", {
'f',
'o',
'o'}, 1 },
2042 {
"", {
'f',
'o',
'o'}, 2 },
2043 {
"", {
'f',
'o',
'o'}, 5 },
2044 {
"", {
'f',
'o',
'o',0}, 7 },
2045 {
"", {
'f',
'o',
'o',0}, 9 },
2106 ok(
data != 0,
"%u: could not get data\n",
i );
2113 ok(
data != 0,
"%u: could not get data\n",
i );
2116 ok(
len == len2 *
sizeof(
WCHAR),
"%u: wrong size %u / %u\n",
i,
len, len2 );
2122 ok(
data != 0,
"%u: could not get data\n",
i );
2132 ok(
data != 0,
"%u: could not get data\n",
i );
2136 bufferA[len2 - 1] = 0;
2137 ok(
len == len2,
"%u: wrong size %u / %u\n",
i,
len, len2 );
2142 ok( !
data,
"%u: got data for empty string\n",
i );
2157 pAddClipboardFormatListener = (
void *)
GetProcAddress(
mod,
"AddClipboardFormatListener" );
2158 pRemoveClipboardFormatListener = (
void *)
GetProcAddress(
mod,
"RemoveClipboardFormatListener" );
2159 pGetUpdatedClipboardFormats = (
void *)
GetProcAddress(
mod,
"GetUpdatedClipboardFormats" );
UINT WINAPI GetAtomNameA(ATOM nAtom, LPSTR lpBuffer, int nSize)
#define ERROR_INVALID_PARAMETER
static void get_clipboard_data_process(void)
static void test_handles(HWND hwnd)
static HANDLE update_event
static const LOGPALETTE logpalette
UINT WINAPI GetPaletteEntries(HPALETTE hpal, UINT iStartIndex, UINT cEntries, LPPALETTEENTRY ppe)
BOOL WINAPI TranslateMessage(_In_ const MSG *)
LRESULT WINAPI DispatchMessageA(_In_ const MSG *)
DWORD(WINAPI * LPTHREAD_START_ROUTINE)(LPVOID)
HGLOBAL NTAPI GlobalAlloc(UINT uFlags, SIZE_T dwBytes)
static DWORD WINAPI clipboard_render_data_thread(void *param)
static DWORD WINAPI clipboard_thread(void *param)
static HGLOBAL create_textW(void)
HWND WINAPI SetClipboardViewer(_In_ HWND)
BOOL WINAPI IsClipboardFormatAvailable(_In_ UINT)
static BOOL(WINAPI *pAddClipboardFormatListener)(HWND hwnd)
DWORD WINAPI GetWindowThreadProcessId(HWND hWnd, PDWORD lpdwProcessId)
int memcmp(void *Buffer1, void *Buffer2, ACPI_SIZE Count)
BITMAPINFOHEADER bmiHeader
#define WideCharToMultiByte
HWND WINAPI GetOpenClipboardWindow(void)
HDC WINAPI GetDC(_In_opt_ HWND)
ACPI_SIZE strlen(const char *String)
#define WM_RENDERALLFORMATS
BOOL WINAPI PostMessageA(_In_opt_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
LRESULT WINAPI SendMessageA(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
GLdouble GLdouble GLdouble r
static struct test_info tests[]
GLuint GLuint GLsizei count
static DWORD WINAPI open_and_empty_clipboard_thread(LPVOID arg)
static DWORD WINAPI empty_clipboard_thread(LPVOID arg)
#define CF_DSPMETAFILEPICT
TW_UINT32 TW_UINT16 TW_UINT16 MSG
HDC WINAPI CreateMetaFileA(_In_opt_ LPCSTR)
static const struct pixel_format_desc formats[]
#define ERROR_INVALID_HANDLE
static void set_clipboard_data_process(int arg)
BOOL WINAPI GetMessageA(_Out_ LPMSG, _In_opt_ HWND, _In_ UINT, _In_ UINT)
int WINAPI lstrcmpA(LPCSTR lpString1, LPCSTR lpString2)
HANDLE WINAPI GetClipboardData(UINT uFormat)
BOOL WINAPI DECLSPEC_HOTPATCH SetEvent(IN HANDLE hEvent)
DWORD WINAPI GetLastError(VOID)
#define check_messages(a, b, c, d, e, f)
int startup(int argc, const char *argv[])
static void test_synthesized(void)
BOOL WINAPI ChangeClipboardChain(_In_ HWND, _In_ HWND)
LCID WINAPI GetUserDefaultLCID(void)
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)
BOOL WINAPI DestroyWindow(_In_ HWND)
GLenum GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * bits
static CRITICAL_SECTION clipboard_cs
GLint GLint GLsizei GLsizei GLsizei GLint GLenum format
HANDLE WINAPI DECLSPEC_HOTPATCH CreateEventW(IN LPSECURITY_ATTRIBUTES lpEventAttributes OPTIONAL, IN BOOL bManualReset, IN BOOL bInitialState, IN LPCWSTR lpName OPTIONAL)
GLfloat GLfloat GLfloat GLfloat h
static HANDLE create_metafile(void)
#define sprintf(buf, format,...)
static void grab_clipboard_process(int arg)
SIZE_T NTAPI GlobalSize(HGLOBAL hMem)
GLenum GLuint GLenum GLsizei const GLchar * buf
DWORD WINAPI WaitForSingleObject(IN HANDLE hHandle, IN DWORD dwMilliseconds)
static void run_thread(LPTHREAD_START_ROUTINE func, void *arg, int line)
UINT WINAPI GetEnhMetaFileBits(_In_ HENHMETAFILE hEMF, _In_ UINT nSize, _Out_writes_bytes_opt_(nSize) LPBYTE lpData)
DWORD WINAPI MsgWaitForMultipleObjectsEx(_In_ DWORD nCount, _In_reads_opt_(nCount) CONST HANDLE *pHandles, _In_ DWORD dwMilliseconds, _In_ DWORD dwWakeMask, _In_ DWORD dwFlags)
namespace GUID const ADDRINFOEXW ADDRINFOEXW struct timeval OVERLAPPED LPLOOKUPSERVICE_COMPLETION_ROUTINE HANDLE * handle
static void test_handles_process_dib(const char *str)
LRESULT WINAPI DispatchMessageW(_In_ const MSG *)
#define ERROR_ACCESS_DENIED
static DWORD WINAPI set_clipboard_data_thread(LPVOID arg)
static struct _test_info info[]
static HBITMAP create_bitmap(void)
static DWORD WINAPI test_handles_thread(void *arg)
int WINAPI ReleaseDC(_In_opt_ HWND, _In_ HDC)
#define CF_DSPENHMETAFILE
#define CreateWindowA(a, b, c, d, e, f, g, h, i, j, k)
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)
VOID WINAPI InitializeCriticalSection(OUT LPCRITICAL_SECTION lpCriticalSection)
HWND WINAPI GetDesktopWindow(void)
HDC WINAPI CreateEnhMetaFileA(_In_opt_ HDC, _In_opt_ LPCSTR, _In_opt_ LPCRECT, _In_opt_ LPCSTR)
static void test_data_handles(void)
static HBITMAP create_dib(BOOL v5)
static UINT wm_destroyclipboard
static void test_handles_process(const char *str)
HMETAFILE WINAPI CloseMetaFile(_In_ HDC hdc)
#define ERROR_FILE_NOT_FOUND
DWORD WINAPI GetCurrentThreadId(VOID)
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
static void test_GetUpdatedClipboardFormats(void)
HANDLE WINAPI SetClipboardData(UINT uFormat, HANDLE hMem)
BOOL WINAPI EmptyClipboard(void)
BOOL WINAPI OpenClipboard(HWND hWndNewOwner)
static DWORD WINAPI open_and_empty_clipboard_win_thread(LPVOID arg)
#define ERROR_INVALID_WINDOW_HANDLE
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
void WINAPI DeleteCriticalSection(PCRITICAL_SECTION)
static LRESULT CALLBACK winproc_wrapper(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
HPALETTE WINAPI CreatePalette(_In_reads_(_Inexpressible_(2 *sizeof(WORD)+plpal->palNumEntries *sizeof(PALETTEENTRY))) const LOGPALETTE *)
static void test_messages(void)
BOOL WINAPI DECLSPEC_HOTPATCH CreateProcessA(LPCSTR lpApplicationName, LPSTR lpCommandLine, LPSECURITY_ATTRIBUTES lpProcessAttributes, LPSECURITY_ATTRIBUTES lpThreadAttributes, BOOL bInheritHandles, DWORD dwCreationFlags, LPVOID lpEnvironment, LPCSTR lpCurrentDirectory, LPSTARTUPINFOA lpStartupInfo, LPPROCESS_INFORMATION lpProcessInformation)
DWORD WINAPI InSendMessageEx(LPVOID lpReserved)
HGLOBAL NTAPI GlobalFree(HGLOBAL hMem)
static int thread_from_line
static DWORD WINAPI open_clipboard_thread(LPVOID arg)
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
HENHMETAFILE WINAPI CloseEnhMetaFile(_In_ HDC hdc)
LPSTR WINAPI lstrcpyA(LPSTR lpString1, LPCSTR lpString2)
int winetest_get_mainargs(char ***pargv)
BOOL WINAPI CloseClipboard(void)
static void test_handles_process_open(const char *str)
static HGLOBAL create_textA(void)
static void test_ClipboardOwner(void)
void destroy(_Tp *__pointer)
static BOOL is_moveable(HANDLE handle)
LPVOID NTAPI GlobalLock(HGLOBAL hMem)
ATOM WINAPI GlobalFindAtomA(LPCSTR lpString)
static void run_process(const char *args)
int WINAPI GetDeviceCaps(_In_opt_ HDC, _In_ int)
static void test_string_data(void)
#define memcpy(s1, s2, n)
#define SetWindowLongPtrA
HMODULE WINAPI DECLSPEC_HOTPATCH GetModuleHandleA(LPCSTR lpModuleName)
const char * wine_dbgstr_wn(const WCHAR *str, int n)
LRESULT WINAPI DefWindowProcA(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
static LRESULT CALLBACK clipboard_wnd_proc(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
static void test_RegisterClipboardFormatA(void)
UINT WINAPI RegisterClipboardFormatA(LPCSTR lpszFormat)
EXTINLINE DWORD WINAPI GetClipboardSequenceNumber(VOID)
void winetest_wait_child_process(HANDLE process)
LRESULT(CALLBACK * WNDPROC)(HWND, UINT, WPARAM, LPARAM)
int WINAPI GetObjectW(_In_ HANDLE h, _In_ int c, _Out_writes_bytes_opt_(c) LPVOID pv)
#define ERROR_CLIPBOARD_NOT_OPEN
HWND WINAPI GetClipboardOwner(void)
int WINAPI lstrlenA(LPCSTR lpString)
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
static BOOL is_freed(HANDLE handle)
HWND WINAPI GetClipboardViewer(void)
INT WINAPI GetClipboardFormatNameA(UINT format, LPSTR lpszFormatName, int cchMaxCount)
HBITMAP WINAPI CreateDIBSection(HDC hDC, CONST BITMAPINFO *BitmapInfo, UINT Usage, VOID **Bits, HANDLE hSection, DWORD dwOffset)
BOOL NTAPI GlobalUnlock(HGLOBAL hMem)
static UINT wm_renderformat
static POBJECT_TYPE GetObjectType(IN PCWSTR TypeName)
static void check_messages_(int line, HWND win, UINT seq_diff, UINT draw, UINT update, UINT destroy, UINT render)
BOOL WINAPI ExtTextOutA(_In_ HDC hdc, _In_ int x, _In_ int y, _In_ UINT options, _In_opt_ const RECT *lprect, _In_reads_opt_(c) LPCSTR lpString, _In_ UINT c, _In_reads_opt_(c) const INT *lpDx)
#define MultiByteToWideChar
UINT WINAPI EnumClipboardFormats(UINT format)
static DWORD WINAPI test_handles_thread2(void *arg)
_Check_return_ int __cdecl atoi(_In_z_ const char *_Str)
#define WM_DESTROYCLIPBOARD
char * strcpy(char *DstString, const char *SrcString)
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)
int strcmp(const char *String1, const char *String2)
#define GetProcAddress(x, y)
BOOL WINAPI UnregisterClassA(_In_ LPCSTR, HINSTANCE)
static HENHMETAFILE create_emf(void)
UINT WINAPI GlobalGetAtomNameA(ATOM nAtom, LPSTR lpBuffer, int nSize)
ATOM WINAPI FindAtomA(LPCSTR lpString)
BOOL WINAPI PeekMessageW(_Out_ LPMSG, _In_opt_ HWND, _In_ UINT, _In_ UINT, _In_ UINT)
static UINT wm_clipboardupdate
static void test_string_data_process(int i)
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)
int WINAPI CountClipboardFormats(void)
static BOOL do_render_format
static BOOL is_fixed(HANDLE handle)
#define HeapFree(x, y, z)
ATOM WINAPI RegisterClassA(_In_ CONST WNDCLASSA *)
__analysis_noreturn void WINAPI PostQuitMessage(_In_ int)
static UINT wm_drawclipboard
static LRESULT CALLBACK renderer_winproc(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
static const WCHAR testW[]
DWORD WINAPI GetCurrentProcessId(VOID)
static UINT UINT * out_count
HBITMAP WINAPI CreateBitmap(_In_ INT cx, _In_ INT cy, _In_ UINT cPlanes, _In_ UINT cBitsPerPel, _In_opt_ const VOID *pvBits)
#define ERROR_INSUFFICIENT_BUFFER