62 HWND hwnd =
CreateWindowA(
"static",
NULL,
WS_POPUP, 0, 0, 10, 10, 0, 0, 0,
NULL );
118 ok( !
ret,
"process %u: SetClipboardData succeeded\n",
arg );
130 ok(
ret,
"OpenClipboard failed\n" );
132 ok(
ret,
"EmptyClipboard failed\n" );
171 ok(
CreateProcessA(
NULL,
cmd,
NULL,
NULL,
FALSE, 0,
NULL,
NULL, &
startup, &
info ),
172 "CreateProcess %s failed\n",
cmd );
182 static int wm_renderallformats;
190 if (!wm_renderallformats)
207 ok( wm_renderallformats,
"didn't receive WM_RENDERALLFORMATS before WM_DESTROY\n" );
211 ok( msg_flags == ISMEX_NOSEND,
"WM_DRAWCLIPBOARD wrong flags %x\n", msg_flags );
215 ok( msg_flags == ISMEX_NOSEND,
"WM_RENDERALLFORMATS wrong flags %x\n", msg_flags );
216 wm_renderallformats++;
229 "could not perform clipboard test: clipboard already owned\n");
232 0, 0, 10, 10, 0, 0, 0,
NULL);
237 0, 0, 10, 10, 0, 0, 0,
NULL);
242 ok(!
CloseClipboard(),
"CloseClipboard should fail if clipboard wasn't open\n");
260 ok(!
CloseClipboard(),
"CloseClipboard should fail if clipboard wasn't open\n");
266 "OpenClipboard should fail without setting last error value, or with ERROR_ACCESS_DENIED, got error %d\n",
GetLastError());
282 "OpenClipboard should fail without setting last error value, or with ERROR_ACCESS_DENIED, got error %d\n",
GetLastError());
326 ok( !
ret,
"CloseClipboard succeeded\n" );
355 "SetClipboardData succeeded\n" );
382 ok(format_id2 ==
format_id,
"invalid clipboard format id %04x\n", format_id2);
385 ok(
len ==
lstrlenA(
"my_cool_clipboard_format"),
"wrong format name length %d\n",
len);
386 ok(!
lstrcmpA(
buf,
"my_cool_clipboard_format"),
"wrong format name \"%s\"\n",
buf);
389 ok(
len == 0,
"wrong format name length %d\n",
len);
394 ok(
len == 0,
"GetAtomNameA should fail\n");
402 ok(
len == 0,
"GlobalGetAtomNameA should fail\n");
407 atom_id =
FindAtomA(
"my_cool_clipboard_format");
408 ok(atom_id == 0,
"FindAtomA should fail\n");
416 ok(atom_id == 0,
"GlobalFindAtomA should fail\n");
425 if (format_id < 0xc000 || format_id > 0xffff)
426 ok(!
len,
"GetClipboardFormatNameA should fail, but it returned %d (%s)\n",
len,
buf);
437 ok( !
handle,
"SetClipboardData succeeded\n" );
473 "Last error should be set to ERROR_CLIPBOARD_NOT_OPEN, not %d\n",
GetLastError());
477 ok(!
EmptyClipboard(),
"EmptyClipboard should fail if clipboard wasn't open\n");
489 memcpy(
p,
"test\0\0\0\0\0", 10);
496 static const WCHAR testW[] = {
't',
'e',
's',
't',0,0,0,0,0,0};
544 sizeof(BITMAPV5HEADER) + 256 *
sizeof(
RGBQUAD) + 16 * 16 * 4 );
546 hdr->biSize = v5 ?
sizeof(BITMAPV5HEADER) :
sizeof(*
hdr);
550 hdr->biBitCount = 32;
554 BITMAPV5HEADER *hdr5 = (BITMAPV5HEADER *)
hdr;
555 hdr5->bV5RedMask = 0x0000ff;
556 hdr5->bV5GreenMask = 0x00ff00;
557 hdr5->bV5BlueMask = 0xff0000;
558 hdr5->bV5AlphaMask = 0xff000000;
566 static UINT rendered;
572 if (wp < 32) rendered |= (1 << wp);
584 static const struct test
607 hwnd =
CreateWindowA(
"static",
NULL,
WS_POPUP, 0, 0, 10, 10, 0, 0, 0,
NULL );
618 ok(
h == htext,
"got %p\n",
h);
670 ok(
cf == 0,
"cf %08x\n",
cf);
701 ok(
cf == 0,
"cf %08x\n",
cf );
705 ok(
cf == 0,
"cf %08x\n",
cf );
774 ok(seq ==
old_seq,
"sequence changed (test %d %d)\n",
i,
cf);
799 ok(
cf == 0,
"%u: cf %04x\n",
i,
cf);
808 ok( !rendered,
"%u: formats %08x have been rendered\n",
i, rendered );
812 ok( !rendered,
"%u: formats %08x have been rendered\n",
i, rendered );
820 ok( !rendered,
"%u: formats %08x have been rendered\n",
i, rendered );
830 ok( !rendered,
"%u: formats %08x have been rendered\n",
i, rendered );
842 ok( !rendered,
"%u.%u: formats %08x have been rendered\n",
i,
j, rendered );
848 ok( !rendered,
"%u.%u: formats %08x have been rendered\n",
i,
j, rendered );
854 "%u.%u: formats %08x have been rendered\n",
i,
j, rendered );
859 "%u.%u: formats %08x have been rendered\n",
i,
j, rendered );
865 ok(
cf == 0,
"%u: cf %04x\n",
i,
cf);
870 ok( !rendered,
"%u: formats %08x have been rendered\n",
i, rendered );
908 "WM_DRAWCLIPBOARD wrong flags %x\n", msg_flags );
915 "WM_CHANGECBCHAIN wrong flags %x\n", msg_flags );
923 "WM_DESTROYCLIPBOARD wrong flags %x\n", msg_flags );
941 ok( seq ==
old_seq,
"sequence changed\n" );
949 ok( seq ==
old_seq,
"sequence changed\n" );
953 case WM_CLIPBOARDUPDATE:
954 ok( msg_flags == ISMEX_NOSEND,
"WM_CLIPBOARDUPDATE wrong flags %x\n", msg_flags );
1016 if (update && !
broken(!pAddClipboardFormatListener))
1020 ok_(__FILE__,
line)(
count == draw,
"WM_DRAWCLIPBOARD %sreceived\n", draw ?
"not " :
"");
1023 "WM_CLIPBOARDUPDATE %sreceived\n", update ?
"not " :
"");
1029#define check_messages(a,b,c,d,e,f) check_messages_(__LINE__,a,b,c,d,e,f)
1052 ok( !
ret,
"SetClipboardViewer succeeded\n" );
1056 ok( !
r,
"ChangeClipboardChain succeeded\n" );
1060 ok( !
r,
"ChangeClipboardChain succeeded\n" );
1063 if (pAddClipboardFormatListener)
1065 r = pAddClipboardFormatListener(
win);
1068 r = pAddClipboardFormatListener(
win );
1069 ok( !
r,
"AddClipboardFormatListener succeeded\n" );
1072 r = pAddClipboardFormatListener( (
HWND)0xdead );
1073 ok( !
r,
"AddClipboardFormatListener succeeded\n" );
1078 ok(
r,
"RemoveClipboardFormatListener failed err %d\n",
GetLastError());
1085 ok( !
r,
"OpenClipboard succeeded\n" );
1103 ok( !
count,
"wrong format count %u on WM_DESTROYCLIPBOARD\n",
count );
1140 ok( !
handle,
"got data for CF_UNICODETEXT\n" );
1146 ok(
handle !=
NULL,
"didn't get data for CF_OEMTEXT\n" );
1257 if (pRemoveClipboardFormatListener)
1259 r = pRemoveClipboardFormatListener(
win);
1260 ok(
r,
"RemoveClipboardFormatListener failed err %d\n",
GetLastError());
1262 r = pRemoveClipboardFormatListener(
win);
1263 ok( !
r,
"RemoveClipboardFormatListener succeeded\n" );
1266 r = pRemoveClipboardFormatListener( (
HWND)0xdead );
1267 ok( !
r,
"RemoveClipboardFormatListener succeeded\n" );
1284 memset(&cls, 0,
sizeof(cls));
1290 win =
CreateWindowA(
"clipboard_test",
NULL, 0, 0, 0, 0, 0,
NULL, 0,
NULL, 0);
1310 win =
CreateWindowA(
"clipboard_test",
NULL, 0, 0, 0, 0, 0,
NULL, 0,
NULL, 0 );
1346 HGLOBAL h, htext, htext2, htext3, htext4, htext5;
1347 HGLOBAL hfixed, hfixed2, hmoveable, empty_fixed, empty_moveable;
1368 ok(
is_fixed( hfixed ),
"expected fixed mem %p\n", hfixed );
1372 ok(
is_moveable( hmoveable ),
"expected moveable mem %p\n", hmoveable );
1376 ok(
is_fixed( empty_fixed ),
"expected fixed mem %p\n", empty_fixed );
1380 ok(
is_freed( empty_moveable ),
"expected free mem %p\n", empty_moveable );
1388 ok(
h == htext,
"got %p\n",
h );
1391 ok(
h == htext2,
"got %p\n",
h );
1395 ok(
h == bitmap_temp,
"got %p\n",
h );
1400 ok( !
GetObjectType( bitmap_temp ),
"expected free object %p\n", bitmap_temp );
1408 ok(
h == htext3,
"got %p\n",
h );
1411 ok(
h == htext5,
"got %p\n",
h );
1414 ok( !
h,
"got %p\n",
h );
1421 ok( !
h,
"got %p\n",
h );
1426 ok(
h == empty_fixed,
"got %p\n",
h );
1429 ok(
h == hfixed2,
"got %p\n",
h );
1432 ok(
h == hmoveable,
"got %p\n",
h );
1437 ok(
h ==
ptr || !
h,
"got %p\n",
h );
1445 ok(
data == htext,
"wrong data %p\n",
data );
1453 ok(
data == htext3,
"wrong data %p\n",
data );
1457 ok(
data == htext5,
"wrong data %p\n",
data );
1461 ok(
data == empty_fixed,
"wrong data %p\n",
data );
1465 ok(
data == hfixed2,
"wrong data %p\n",
data );
1469 ok(
data == hmoveable,
"wrong data %p\n",
data );
1476 ok(
h == htext4,
"got %p\n",
h );
1478 ok(
is_freed( htext5 ),
"expected freed mem %p\n", htext5 );
1481 ok(
h == hfixed,
"got %p\n",
h );
1484 ok(
is_freed( hfixed2 ),
"expected freed mem %p\n", hfixed2 );
1490 ok(
is_moveable( htext ),
"expected moveable mem %p\n", htext );
1491 ok(
is_moveable( htext2 ),
"expected moveable mem %p\n", htext2 );
1492 ok(
is_moveable( htext3 ),
"expected moveable mem %p\n", htext3 );
1493 ok(
is_moveable( htext4 ),
"expected moveable mem %p\n", htext4 );
1497 ok(
is_fixed( hfixed ),
"expected fixed mem %p\n", hfixed );
1498 ok(
is_moveable( hmoveable ),
"expected moveable mem %p\n", hmoveable );
1499 ok(
is_fixed( empty_fixed ),
"expected fixed mem %p\n", empty_fixed );
1507 ok(
is_freed( htext ),
"expected freed mem %p\n", htext );
1508 ok(
is_freed( htext2 ),
"expected freed mem %p\n", htext2 );
1509 ok(
is_freed( htext3 ),
"expected freed mem %p\n", htext3 );
1510 ok(
is_freed( htext4 ),
"expected freed mem %p\n", htext4 );
1511 ok(
is_freed( hmoveable ),
"expected freed mem %p\n", hmoveable );
1543 ok(
is_moveable( htext ),
"expected moveable mem %p\n", htext );
1544 ok(
is_moveable( htext2 ),
"expected moveable mem %p\n", htext2 );
1545 ok(
is_moveable( htext3 ),
"expected moveable mem %p\n", htext3 );
1546 ok(
is_moveable( htext4 ),
"expected moveable mem %p\n", htext4 );
1547 ok(
is_moveable( hmoveable ),
"expected moveable mem %p\n", hmoveable );
1550 ok(
data == htext,
"wrong data %p\n",
data );
1556 ok(
data == htext3,
"wrong data %p\n",
data );
1559 ok(
data == htext4,
"wrong data %p\n",
data );
1562 ok(
data == empty_fixed,
"wrong data %p\n",
data );
1565 ok(
data == hfixed,
"wrong data %p\n",
data );
1568 ok(
data == hmoveable,
"wrong data %p\n",
data );
1594 ok(
is_fixed( hfixed ),
"expected fixed mem %p\n", hfixed );
1595 ok(
is_fixed( empty_fixed ),
"expected fixed mem %p\n", empty_fixed );
1606 ok(
is_fixed( empty_fixed ),
"expected fixed mem %p\n", empty_fixed );
1607 ok(
is_fixed( hfixed ),
"expected fixed mem %p\n", hfixed );
1618 trace(
"running from different thread\n" );
1646 trace(
"gdiobj %p\n",
h );
1652 trace(
"private %p\n",
h );
1656 trace(
"bitmap %p\n",
h );
1660 trace(
"bitmap2 %p\n",
h );
1664 trace(
"palette %p\n",
h );
1701 trace(
"gdiobj %p\n",
h );
1707 trace(
"private %p\n",
h );
1710 ok(
GetObjectW(
h,
sizeof(bm), &bm ) ==
sizeof(bm),
"GetObject %p failed\n",
h );
1711 ok( bm.bmWidth == 13 && bm.bmHeight == 17,
"wrong bitmap %ux%u\n", bm.bmWidth, bm.bmHeight );
1712 trace(
"bitmap %p\n",
h );
1715 trace(
"bitmap2 %p\n",
h );
1720 "wrong color %02x,%02x,%02x\n",
entry.peRed,
entry.peGreen,
entry.peBlue );
1721 trace(
"palette %p\n",
h );
1729 trace(
"metafile %p\n",
h );
1737 trace(
"metafile2 %p\n",
h );
1741 "GetEnhMetaFileBits failed on %p\n",
h );
1744 trace(
"enhmetafile %p\n",
h );
1748 "GetEnhMetaFileBits failed on %p\n",
h );
1751 trace(
"enhmetafile2 %p\n",
h );
1783 trace(
"dibsection %p\n",
h );
1793 HWND hwnd =
CreateWindowA(
"static",
NULL,
WS_POPUP, 0, 0, 10, 10, 0, 0, 0,
NULL );
1797 ok(
hwnd != 0,
"window creation failed\n" );
1824 trace(
"metafile %p\n",
h );
1827 trace(
"metafile2 %p\n",
h );
1830 trace(
"enhmetafile %p\n",
h );
1833 trace(
"enhmetafile2 %p\n",
h );
1875 "expected free mem %p\n",
text );
1880 memset( &bmi, 0,
sizeof(bmi) );
1894 trace(
"dibsection %p\n",
h );
1917 if (!pGetUpdatedClipboardFormats)
1919 win_skip(
"GetUpdatedClipboardFormats not supported\n" );
1924 r = pGetUpdatedClipboardFormats(
NULL, 0, &
count );
1929 r = pGetUpdatedClipboardFormats(
NULL, 256, &
count );
1935 ok( !
r,
"succeeded\n" );
1976 ok( !
r,
"succeeded\n" );
1983 ok( !
r,
"succeeded\n" );
2010 r = pGetUpdatedClipboardFormats(
NULL, 256, &
count );
2016 r = pGetUpdatedClipboardFormats(
NULL, 256, &
count );
2031 {
"foo\0bar", {0}, 7 },
2032 {
"foo\0bar", {0}, 8 },
2033 {
"", {
'f',
'o',
'o'}, 3 *
sizeof(
WCHAR) },
2034 {
"", {
'f',
'o',
'o',0}, 4 *
sizeof(
WCHAR) },
2035 {
"", {
'f',
'o',
'o',0,
'b',
'a',
'r'}, 7 *
sizeof(
WCHAR) },
2036 {
"", {
'f',
'o',
'o',0,
'b',
'a',
'r',0}, 8 *
sizeof(
WCHAR) },
2037 {
"", {
'f',
'o',
'o'}, 1 },
2038 {
"", {
'f',
'o',
'o'}, 2 },
2039 {
"", {
'f',
'o',
'o'}, 5 },
2040 {
"", {
'f',
'o',
'o',0}, 7 },
2041 {
"", {
'f',
'o',
'o',0}, 9 },
2102 ok(
data != 0,
"%u: could not get data\n",
i );
2109 ok(
data != 0,
"%u: could not get data\n",
i );
2112 ok(
len == len2 *
sizeof(
WCHAR),
"%u: wrong size %u / %u\n",
i,
len, len2 );
2118 ok(
data != 0,
"%u: could not get data\n",
i );
2128 ok(
data != 0,
"%u: could not get data\n",
i );
2132 bufferA[len2 - 1] = 0;
2133 ok(
len == len2,
"%u: wrong size %u / %u\n",
i,
len, len2 );
2138 ok( !
data,
"%u: got data for empty string\n",
i );
2153 pAddClipboardFormatListener = (
void *)
GetProcAddress(
mod,
"AddClipboardFormatListener" );
2154 pRemoveClipboardFormatListener = (
void *)
GetProcAddress(
mod,
"RemoveClipboardFormatListener" );
2155 pGetUpdatedClipboardFormats = (
void *)
GetProcAddress(
mod,
"GetUpdatedClipboardFormats" );
std::map< E_MODULE, HMODULE > mod
static POBJECT_TYPE GetObjectType(IN PCWSTR TypeName)
void destroy(_Tp *__pointer)
int strcmp(const char *String1, const char *String2)
int memcmp(void *Buffer1, void *Buffer2, ACPI_SIZE Count)
ACPI_SIZE strlen(const char *String)
static void startup(void)
#define CF_DSPENHMETAFILE
#define CF_DSPMETAFILEPICT
#define ERROR_INSUFFICIENT_BUFFER
static const struct pixel_format_desc formats[]
#define ERROR_INVALID_PARAMETER
#define GetProcAddress(x, y)
#define HeapFree(x, y, z)
#define ERROR_INVALID_HANDLE
#define WideCharToMultiByte
#define MultiByteToWideChar
#define ERROR_ACCESS_DENIED
ATOM WINAPI FindAtomA(LPCSTR lpString)
UINT WINAPI GetAtomNameA(ATOM nAtom, LPSTR lpBuffer, int nSize)
ATOM WINAPI GlobalFindAtomA(LPCSTR lpString)
UINT WINAPI GlobalGetAtomNameA(ATOM nAtom, LPSTR lpBuffer, int nSize)
HMODULE WINAPI DECLSPEC_HOTPATCH GetModuleHandleA(LPCSTR lpModuleName)
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)
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 lstrcmpA(LPCSTR str1, LPCSTR str2)
LCID WINAPI GetUserDefaultLCID(void)
GLuint GLuint GLsizei count
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLdouble GLdouble GLdouble r
GLenum GLuint GLenum GLsizei const GLchar * buf
GLenum GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * bits
GLfloat GLfloat GLfloat GLfloat h
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
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
LPVOID NTAPI GlobalLock(HGLOBAL hMem)
HGLOBAL NTAPI GlobalFree(HGLOBAL hMem)
BOOL NTAPI GlobalUnlock(HGLOBAL hMem)
HGLOBAL NTAPI GlobalAlloc(UINT uFlags, SIZE_T dwBytes)
SIZE_T NTAPI GlobalSize(HGLOBAL hMem)
static const WCHAR testW[]
LPSTR WINAPI lstrcpyA(LPSTR lpString1, LPCSTR lpString2)
int WINAPI lstrlenA(LPCSTR lpString)
#define memcpy(s1, s2, n)
#define ERROR_FILE_NOT_FOUND
static struct test_info tests[]
#define sprintf(buf, format,...)
static UINT wm_drawclipboard
static HENHMETAFILE create_emf(void)
static LRESULT CALLBACK clipboard_wnd_proc(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
static void test_string_data_process(int i)
static DWORD WINAPI open_and_empty_clipboard_thread(LPVOID arg)
static UINT wm_renderformat
static DWORD WINAPI set_clipboard_data_thread(LPVOID arg)
static BOOL is_fixed(HANDLE handle)
static BOOL is_freed(HANDLE handle)
static UINT wm_destroyclipboard
static DWORD WINAPI test_handles_thread2(void *arg)
static DWORD WINAPI clipboard_render_data_thread(void *param)
static void test_messages(void)
static HGLOBAL create_textW(void)
static BOOL do_render_format
static HANDLE update_event
static void test_ClipboardOwner(void)
#define check_messages(a, b, c, d, e, f)
static DWORD WINAPI test_handles_thread(void *arg)
static void test_data_handles(void)
static DWORD WINAPI open_clipboard_thread(LPVOID arg)
static HBITMAP create_bitmap(void)
static CRITICAL_SECTION clipboard_cs
static LRESULT CALLBACK renderer_winproc(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
static DWORD WINAPI open_and_empty_clipboard_win_thread(LPVOID arg)
static LRESULT CALLBACK winproc_wrapper(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
static void check_messages_(int line, HWND win, UINT seq_diff, UINT draw, UINT update, UINT destroy, UINT render)
static void test_handles_process(const char *str)
static const LOGPALETTE logpalette
static void test_GetUpdatedClipboardFormats(void)
static void test_handles_process_open(const char *str)
static HGLOBAL create_textA(void)
static HBITMAP create_dib(BOOL v5)
static void run_process(const char *args)
static void test_string_data(void)
static DWORD WINAPI clipboard_thread(void *param)
static void test_RegisterClipboardFormatA(void)
static void get_clipboard_data_process(void)
static void set_clipboard_data_process(int arg)
static void grab_clipboard_process(int arg)
static void test_synthesized(void)
static UINT wm_clipboardupdate
static UINT UINT * out_count
static void test_handles_process_dib(const char *str)
static DWORD WINAPI empty_clipboard_thread(LPVOID arg)
static int thread_from_line
static void run_thread(LPTHREAD_START_ROUTINE func, void *arg, int line)
static HANDLE create_metafile(void)
static BOOL is_moveable(HANDLE handle)
EXTINLINE DWORD WINAPI GetClipboardSequenceNumber(VOID)
_Check_return_ int __cdecl atoi(_In_z_ const char *_Str)
int winetest_get_mainargs(char ***pargv)
void winetest_wait_child_process(HANDLE process)
BITMAPINFOHEADER bmiHeader
DWORD WINAPI WaitForSingleObject(IN HANDLE hHandle, IN DWORD dwMilliseconds)
VOID WINAPI InitializeCriticalSection(OUT LPCRITICAL_SECTION lpCriticalSection)
HANDLE WINAPI DECLSPEC_HOTPATCH CreateEventW(IN LPSECURITY_ATTRIBUTES lpEventAttributes OPTIONAL, IN BOOL bManualReset, IN BOOL bInitialState, IN LPCWSTR lpName OPTIONAL)
BOOL WINAPI DECLSPEC_HOTPATCH SetEvent(IN HANDLE hEvent)
TW_UINT32 TW_UINT16 TW_UINT16 MSG
HBITMAP WINAPI CreateDIBSection(HDC hDC, CONST BITMAPINFO *BitmapInfo, UINT Usage, VOID **Bits, HANDLE hSection, DWORD dwOffset)
UINT WINAPI GetPaletteEntries(HPALETTE hpal, UINT iStartIndex, UINT cEntries, LPPALETTEENTRY ppe)
DWORD WINAPI InSendMessageEx(LPVOID lpReserved)
DWORD WINAPI GetLastError(void)
DWORD WINAPI GetCurrentThreadId(void)
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)
DWORD WINAPI GetCurrentProcessId(void)
DWORD WINAPI GetWindowThreadProcessId(HWND hWnd, PDWORD lpdwProcessId)
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)
void WINAPI DeleteCriticalSection(PCRITICAL_SECTION)
DWORD(WINAPI * LPTHREAD_START_ROUTINE)(LPVOID)
#define ERROR_CLIPBOARD_NOT_OPEN
#define ERROR_INVALID_WINDOW_HANDLE
static void test_handles(void)
UINT WINAPI GetEnhMetaFileBits(_In_ HENHMETAFILE hEMF, _In_ UINT nSize, _Out_writes_bytes_opt_(nSize) LPBYTE lpData)
int WINAPI GetObjectW(_In_ HANDLE h, _In_ int c, _Out_writes_bytes_opt_(c) LPVOID pv)
HBITMAP WINAPI CreateBitmap(_In_ INT cx, _In_ INT cy, _In_ UINT cPlanes, _In_ UINT cBitsPerPel, _In_opt_ const VOID *pvBits)
int WINAPI GetDeviceCaps(_In_opt_ HDC, _In_ int)
HDC WINAPI CreateMetaFileA(_In_opt_ LPCSTR)
HPALETTE WINAPI CreatePalette(_In_reads_(_Inexpressible_(2 *sizeof(WORD)+plpal->palNumEntries *sizeof(PALETTEENTRY))) const LOGPALETTE *)
HMETAFILE WINAPI CloseMetaFile(_In_ HDC hdc)
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)
HDC WINAPI CreateEnhMetaFileA(_In_opt_ HDC, _In_opt_ LPCSTR, _In_opt_ LPCRECT, _In_opt_ LPCSTR)
HENHMETAFILE WINAPI CloseEnhMetaFile(_In_ HDC hdc)
int WINAPI ReleaseDC(_In_opt_ HWND, _In_ HDC)
LRESULT WINAPI DispatchMessageA(_In_ const MSG *)
#define SetWindowLongPtrA
BOOL WINAPI TranslateMessage(_In_ const MSG *)
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)
BOOL WINAPI UnregisterClassA(_In_ LPCSTR, HINSTANCE)
LRESULT WINAPI DefWindowProcA(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
#define WM_DESTROYCLIPBOARD
int WINAPI GetClipboardFormatNameA(_In_ UINT format, _Out_writes_(cchMaxCount) LPSTR lpszFormatName, _In_ int cchMaxCount)
#define CreateWindowA(a, b, c, d, e, f, g, h, i, j, k)
__analysis_noreturn void WINAPI PostQuitMessage(_In_ int)
HANDLE WINAPI SetClipboardData(_In_ UINT, _In_opt_ HANDLE)
HWND WINAPI GetOpenClipboardWindow(void)
BOOL WINAPI CloseClipboard(void)
HWND WINAPI GetClipboardOwner(void)
LRESULT WINAPI SendMessageA(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
BOOL WINAPI OpenClipboard(_In_opt_ HWND)
UINT WINAPI EnumClipboardFormats(_In_ UINT)
HANDLE WINAPI GetClipboardData(_In_ UINT)
HWND WINAPI SetClipboardViewer(_In_ HWND)
HWND WINAPI GetDesktopWindow(void)
DWORD WINAPI MsgWaitForMultipleObjectsEx(_In_ DWORD nCount, _In_reads_opt_(nCount) CONST HANDLE *pHandles, _In_ DWORD dwMilliseconds, _In_ DWORD dwWakeMask, _In_ DWORD dwFlags)
ATOM WINAPI RegisterClassA(_In_ CONST WNDCLASSA *)
BOOL WINAPI PeekMessageW(_Out_ LPMSG, _In_opt_ HWND, _In_ UINT, _In_ UINT, _In_ UINT)
BOOL WINAPI ChangeClipboardChain(_In_ HWND, _In_ HWND)
BOOL WINAPI EmptyClipboard(void)
HDC WINAPI GetDC(_In_opt_ HWND)
int WINAPI CountClipboardFormats(void)
LRESULT WINAPI DispatchMessageW(_In_ const MSG *)
LRESULT(CALLBACK * WNDPROC)(HWND, UINT, WPARAM, LPARAM)
BOOL WINAPI GetMessageA(_Out_ LPMSG, _In_opt_ HWND, _In_ UINT, _In_ UINT)
UINT WINAPI RegisterClipboardFormatA(_In_ LPCSTR)
BOOL WINAPI DestroyWindow(_In_ HWND)
BOOL WINAPI PostMessageA(_In_opt_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
#define WM_RENDERALLFORMATS
BOOL WINAPI IsClipboardFormatAvailable(_In_ UINT)
HWND WINAPI GetClipboardViewer(void)