50#define NUM_MSG_SEQUENCES 3
51#define TREEVIEW_SEQ_INDEX 0
52#define PARENT_SEQ_INDEX 1
53#define PARENT_CD_SEQ_INDEX 2
55#define expect(expected, got) ok(got == expected, "Expected %d, got %d\n", expected, got)
64 int min_timeout = 100;
420 static LONG defwndproc_counter = 0;
432 defwndproc_counter++;
434 defwndproc_counter--;
466 U(ins).item.pszText =
root;
472 U(ins).item.pszText =
child;
513 static const CHAR test2A[] =
"TEST2";
543 ok(hItem1 !=
NULL,
"failed to set Item1\n");
561 U(ins).item.pszText =
NULL;
563 ok(hItem2 !=
NULL,
"failed to set Item2\n");
598 "no TVN_GETDISPINFO for a state seq",
FALSE);
619 "callback for state/overlay image index, noop seq",
FALSE);
636 "callback for state/overlay image index seq",
FALSE);
670 ok(!
strcmp(
sequence,
"1(nR)nR23(Rn)Rn45(nR)nR."),
"root-none select test\n");
672 "root-none select seq",
FALSE);
696 ok(!
strcmp(
sequence,
"1(nR)nR23(RC)RC45(CR)CR."),
"root-child select test\n");
698 "root-child select seq",
FALSE);
710 CHAR szBuffer[80] =
"Blah";
721 U(ins).item.mask = 0;
722 U(ins).item.pszText =
NULL;
723 U(ins).item.cchTextMax = 0;
734 ok(!
strcmp(szBuffer,
""),
"szBuffer=\"%s\", expected \"\"\n", szBuffer);
744 static CHAR child1[] =
"Edit",
745 child2[] =
"A really long string";
763 U(ins).item.pszText = child1;
765 ok(hChild1 !=
NULL,
"failed to set hChild1\n");
768 U(ins).item.pszText = child2;
770 ok(hChild2 !=
NULL,
"failed to set hChild2\n");
794 ok(crColor == ~0
u,
"Default background color reported as 0x%.8x\n", crColor);
799 ok(crColor ==
RGB(0,0,0),
"Black background color reported as 0x%.8x\n", crColor);
804 ok(crColor ==
RGB(255,255,255),
"White background color reported as 0x%.8x\n", crColor);
810 "test get set bkcolor",
FALSE);
828 ok(
himl ==
NULL,
"NULL image list, reported as %p, expected 0.\n",
himl);
833 "test get imagelist",
FALSE);
842 int ulMoreThanTwiceMin;
855 ulMoreThanTwiceMin = 2*ulMinIndent+1;
858 ok(ulIndent == ulMoreThanTwiceMin,
"Indent reported as %d, expected %d\n", ulIndent, ulMoreThanTwiceMin);
861 "test get set indent",
FALSE);
878 ok(crColor ==
RGB(0,0,0),
"Insert mark color reported as 0x%.8x, expected 0x00000000\n", crColor);
881 "test get set insertmark color",
FALSE);
889 int nBufferSize = 80;
890 char szBuffer[80] = {0};
915 ok(!
strcmp(
"Root", szBuffer),
"GetItem: szBuffer=\"%s\", expected \"Root\"\n", szBuffer);
919 lstrcpynA(szBuffer,
"Testing123", nBufferSize);
922 memset(szBuffer, 0, nBufferSize);
925 ok(!
strcmp(
"Testing123", szBuffer),
"GetItem: szBuffer=\"%s\", expected \"Testing123\"\n", szBuffer);
928 memset(szBuffer, 0, nBufferSize);
929 lstrcpynA(szBuffer,
"Root", nBufferSize);
934 "test get set item",
FALSE);
974 ok(ulNewHeight == ulOldHeight,
"Default height not set properly, reported %d, expected %d\n", ulNewHeight, ulOldHeight);
979 ok(ulNewHeight == 2*ulOldHeight,
"New height not set properly, reported %d, expected %d\n", ulNewHeight, 2*ulOldHeight);
984 ok(ulNewHeight == 8,
"Uneven height not set properly, reported %d, expected %d\n", ulNewHeight, 8);
987 "test get set item height",
FALSE);
993 ok(ulOldHeight == 8,
"got %d, expected %d\n", ulOldHeight, 8);
995 ok(ulNewHeight == 2,
"got %d, expected %d\n", ulNewHeight, 2);
998 ok(ulOldHeight == 2,
"got %d, expected %d\n", ulOldHeight, 2);
1000 ok(ulNewHeight == 4,
"got %d, expected %d\n", ulNewHeight, 4);
1006 ok(ulOldHeight == 4,
"got %d, expected %d\n", ulOldHeight, 4);
1008 ok(ulNewHeight == 3,
"got %d, expected %d\n", ulNewHeight, 3);
1011 ok(ulOldHeight == 3,
"got %d, expected %d\n", ulOldHeight, 3);
1013 ok(ulNewHeight == 10,
"got %d, expected %d\n", ulNewHeight, 10);
1020 int ulExpectedTime = 20;
1031 ok(ulTime == ulExpectedTime,
"Scroll time reported as %d, expected %d\n", ulTime, ulExpectedTime);
1034 "test get set scroll time",
FALSE);
1051 ok(crColor == ~0
u,
"Default text color reported as 0x%.8x\n", crColor);
1056 ok(crColor ==
RGB(0,0,0),
"Black text color reported as 0x%.8x\n", crColor);
1061 ok(crColor ==
RGB(255,255,255),
"White text color reported as 0x%.8x\n", crColor);
1067 "test get set text color",
FALSE);
1082 ok(tooltips ==
NULL,
"Unexpected tooltip window %p.\n", tooltips);
1085 ok(tooltips ==
NULL,
"Unexpected ret value %p.\n", tooltips);
1092 ok(
IsWindow(tooltips),
"Unexpected tooltip window %p.\n", tooltips);
1098 ok(tooltips ==
NULL,
"Unexpected tooltip window %p.\n", tooltips);
1105 hwnd =
CreateWindowA(
WC_STATICA,
"Test",
WS_VISIBLE|
WS_CHILD, 5, 5, 100, 100,
hMainWnd,
NULL,
NULL, 0);
1106 ok(
hwnd !=
NULL,
"Failed to create child window.\n");
1109 ok(tooltips ==
NULL,
"Unexpected ret value %p.\n", tooltips);
1112 ok(tooltips ==
hwnd,
"Unexpected tooltip window %p.\n", tooltips);
1119 ok(
IsWindow(tooltips) && tooltips !=
hwnd,
"Unexpected tooltip window %p.\n", tooltips);
1124 ok(!
IsWindow(tooltips),
"Unexpected tooltip window %p.\n", tooltips);
1127 ok(tooltips ==
NULL,
"Unexpected tooltip window %p.\n", tooltips);
1137 ok(
IsWindow(tooltips),
"Unexpected ret value %p.\n", tooltips);
1141 ok(!
IsWindow(
hwnd),
"Unexpected tooltip window %p.\n", tooltips);
1142 ok(
IsWindow(tooltips),
"Expected valid window %p.\n", tooltips);
1145 ok(
IsWindow(tooltips),
"Expected valid window %p.\n", tooltips);
1149 for (
i = 0;
i < 2;
i++)
1153 hwnd =
CreateWindowA(
WC_STATICA,
"Test",
WS_VISIBLE|
WS_CHILD, 5, 5, 100, 100,
hMainWnd,
NULL,
NULL, 0);
1154 ok(
hwnd !=
NULL,
"Failed to create child window.\n");
1163 ok(tooltips ==
hwnd,
"Unexpected tooltip window %p.\n", tooltips);
1182 ok(
IsWindow(tooltips),
"Unexpected ret value %p.\n", tooltips);
1188 "test get set tooltips",
TRUE);
1191 ok(
IsWindow(tooltips),
"Expected valid window.\n");
1197 BOOL bPreviousSetting;
1206 ok(bPreviousSetting ==
FALSE,
"Format should be ANSI.\n");
1213 ok(bNewSetting ==
TRUE,
"Unicode setting did not work.\n");
1218 ok(bNewSetting ==
FALSE,
"ANSI setting did not work.\n");
1224 "test get set unicode format",
FALSE);
1231 static LONG defwndproc_counter = 0;
1259 case WM_NOTIFYFORMAT:
1293 static const WCHAR testW[] = {
'T',
'E',
'S',
'T',
'2',0};
1314 static const char*
textA =
"<edittextaltered>";
1318 ok(
IsWindow(edit),
"failed to get edit handle\n");
1374 ok(pTreeView->
itemNew.
hItem == visibleItem,
"expanded item == first visible item\n");
1377 "Failed to get rect for first visible item.\n");
1381 ok(visibleItem !=
NULL,
"There must be a visible item after the first one.\n");
1383 "Failed to get rect for second visible item.\n");
1404 COLORREF c0ffee =
RGB(0xc0,0xff,0xee), cafe =
RGB(0xca,0xfe,0x00);
1419 "got %08x vs %08x\n", bkgnd, nmcd->
clrTextBk);
1432 ok(bkgnd != c0ffee,
"got 0%x\n", bkgnd);
1456 defwndproc_counter++;
1458 defwndproc_counter--;
1465 static CHAR nodeText[][5] = {
"0",
"1",
"2",
"3",
"4"};
1490 U(ins).item.pszText = nodeText[0];
1492 ok(
node[0] !=
NULL,
"failed to set node[0]\n");
1498 U(ins).item.pszText = nodeText[1];
1500 ok(
node[1] !=
NULL,
"failed to set node[1]\n");
1501 U(ins).item.pszText = nodeText[4];
1503 ok(
node[4] !=
NULL,
"failed to set node[4]\n");
1507 U(ins).item.pszText = nodeText[2];
1509 ok(
node[2] !=
NULL,
"failed to set node[2]\n");
1510 U(ins).item.pszText = nodeText[3];
1512 ok(
node[3] !=
NULL,
"failed to set node[3]\n");
1516 ok(!nodeVisible,
"Node 1 should not be visible.\n");
1519 ok(!nodeVisible,
"Node 2 should not be visible.\n");
1522 ok(!nodeVisible,
"Node 3 should not be visible.\n");
1525 ok(!nodeVisible,
"Node 4 should not be visible.\n");
1531 ok(!nodeVisible,
"Node 1 should not be visible.\n");
1534 ok(!nodeVisible,
"Node 2 should not be visible.\n");
1537 ok(!nodeVisible,
"Node 3 should not be visible.\n");
1540 ok(!nodeVisible,
"Node 4 should not be visible.\n");
1558 U(ins).item.mask = 0;
1560 ok(
first !=
NULL,
"failed to insert first node\n");
1562 ok(second !=
NULL,
"failed to insert second node\n");
1563 for (
i=0;
i<100;
i++)
1566 ok(
last !=
NULL,
"failed to insert %d node\n",
i);
1571 ok(
child !=
NULL,
"failed to insert child node\n");
1579 ok(visible,
"first node should be visible\n");
1580 ok(!
rect.left,
"rect.left = %d\n",
rect.left);
1582 ok(
rect.right,
"rect.right = 0\n");
1583 ok(
rect.bottom,
"rect.bottom = 0\n");
1601 ok(!
IsWindow(edit),
"Expected valid handle\n");
1605 ok(
IsWindow(edit),
"Expected valid handle\n");
1612 ok(
IsWindow(edit),
"Expected edit control to be valid\n");
1615 ok(!
IsWindow(edit),
"Expected edit control to be destroyed\n");
1622 ok(
IsWindow(edit),
"Expected valid handle\n");
1625 ok(
IsWindow(edit),
"Expected edit control to be valid\n");
1633 ok(
IsWindow(edit),
"Expected valid handle\n");
1642 ok(!
IsWindow(edit),
"Expected edit control to be destroyed\n");
1646 item.pszText = buffA;
1650 ok(!
strcmp(
"x", buffA),
"Expected item text to change\n");
1654 ok(
IsWindow(edit),
"Expected valid handle\n");
1658 ok(!
IsWindow(edit),
"expected invalid handle\n");
1661 ok(
IsWindow(edit),
"Expected valid handle\n");
1671 item.pszText = buffA;
1672 item.cchTextMax = 0;
1678 ok(
IsWindow(edit),
"Expected valid handle\n");
1682 ok(!
strcmp(buffA,
"<edittextaltered>"),
"got string %s\n", buffA);
1689 ok(
IsWindow(edit),
"Expected valid handle\n");
1704 item.pszText = buffA;
1712 ok(
IsWindow(edit),
"Expected valid handle\n");
1722 item.pszText = buffA;
1730 ok(
IsWindow(edit),
"Expected valid handle\n");
1739 item.pszText = buffA;
1747 ok(
IsWindow(edit),
"Expected valid handle\n");
1756 item.pszText = buffA;
1769 memset(&cls, 0,
sizeof(cls));
1786 win_skip(
"TVM_GETLINECOLOR is not supported on comctl32 < 5.80\n");
1803 win_skip(
"TVM_GETINSERTMARKCOLOR is not supported on comctl32 < 5.80\n");
1965 ok(hitem !=
NULL,
"got %p\n", hitem);
1969 item.cChildren = 0x80000000;
1992 item.iExpandedImage = 1;
1998 item.iExpandedImage = -1;
2003 if (
item.iExpandedImage != 1)
2005 win_skip(
"TVIF_EXPANDEDIMAGE not supported\n");
2012 item.iExpandedImage = -1;
2024 HTREEITEM alpha, bravo, charlie, delta, echo, foxtrot, golf, hotel, india, juliet;
2054 { &charlie, &bravo, 0 },
2056 { &echo, &delta, 0 },
2059 { &hotel, &golf, 0 },
2061 { &juliet, &foxtrot, 0 }
2091 U(ins).item.pszText =
foo;
2107 ok(
ret ==
items[
i].final_state,
"singleexpand items[%d]: expected state 0x%x got 0x%x\n",
2132 ok(clr == ~0
u,
"got %d, expected -1\n", clr);
2140 ok(clr ==
RGB(0, 0, 0),
"got 0x%x\n", clr);
2196 U(ins).item.pszText =
item1;
2198 ok(hItem1 !=
NULL,
"InsertItem failed\n");
2203 U(ins).item.pszText =
item2;
2205 ok(hItem2 !=
NULL,
"InsertItem failed\n");
2303 "Unexpected parent item %p, got %p, %p\n",
parent,
data->parent,
hwnd);
2321 "Width %d, rect width %d.\n",
width,
rect.right -
rect.left);
2325#define CHECK_ITEM(a, b) _check_item(a, b, is_version_6, __LINE__)
2342 U(ins).item.mask = 0;
2349 U(ins).item.mask = 0;
2382 ok(
item.state == 0,
"got 0x%x\n",
item.state);
2398 ok(himl2 !=
NULL,
"got %p\n", himl2);
2399 ok(himl2 ==
himl,
"got %p, expected %p\n", himl2,
himl);
2432 ok(himl2 !=
NULL,
"got %p\n", himl2);
2433 ok(
himl != himl2,
"got %p, expected %p\n", himl2,
himl);
2506 ok(himl2 ==
himl,
"got %p\n", himl2);
2509 ok(himl2 ==
NULL,
"got %p\n", himl2);
2664 static const char *rootA =
"root";
2674 U(ins).item.pszText = (
char*)rootA;
2739 static const char *itemnames[] =
2741 "root",
"Wasp",
"Caribou",
"Vacuum",
2742 "Ocelot",
"Newspaper",
"Litter bin"
2755 U(ins).item.pszText = (
char *)itemnames[
i++];
2761 U(ins).item.pszText = (
char *)itemnames[
i++];
2764 U(ins).item.pszText = (
char *)itemnames[
i++];
2768 U(ins).item.pszText = (
char *)itemnames[
i++];
2771 U(ins).item.pszText = (
char *)itemnames[
i++];
2775 U(ins).item.pszText = (
char *)itemnames[
i++];
2778 U(ins).item.pszText = (
char *)itemnames[
i++];
2784 static const char *initial_order =
"rootWaspVacuumOcelotCaribouNewspaperLitter bin";
2785 static const char *sorted_order =
"rootCaribouNewspaperLitter binWaspVacuumOcelot";
2796 ok(!
ret,
"Unexpected ret value %d\n",
ret);
2799 ok(!
ret,
"Unexpected ret value %d\n",
ret);
2805 U(ins).item.pszText = (
char *)
"root";
2810 ok(!
ret,
"Unexpected ret value %d\n",
ret);
2813 ok(!
ret,
"Unexpected ret value %d\n",
ret);
2818 ok(!
strcmp(
buff, initial_order),
"Wrong initial order %s, expected %s\n",
buff, initial_order);
2824 ok(
ret,
"Unexpected ret value %d\n",
ret);
2826 ok(!
strcmp(
buff, initial_order),
"Wrong sorted order %s, expected %s\n",
buff, initial_order);
2832 ok(
ret,
"Unexpected ret value %d\n",
ret);
2834 ok(!
strcmp(
buff, initial_order),
"Wrong sorted order %s, expected %s\n",
buff, initial_order);
2839 ok(
root !=
NULL,
"Failed to get root item\n");
2841 ok(
ret,
"Unexpected ret value %d\n",
ret);
2843 ok(!
strcmp(
buff, sorted_order),
"Wrong sorted order %s, expected %s\n",
buff, sorted_order);
2849 ok(
ret,
"Unexpected ret value %d\n",
ret);
2851 ok(!
strcmp(
buff, initial_order),
"Wrong sorted order %s, expected %s\n",
buff, sorted_order);
2857 ok(
ret,
"Unexpected ret value %d\n",
ret);
2859 ok(!
strcmp(
buff, initial_order),
"Wrong sorted order %s, expected %s\n",
buff, sorted_order);
2864 ok(
root !=
NULL,
"Failed to get root item\n");
2866 ok(
ret,
"Unexpected ret value %d\n",
ret);
2868 ok(!
strcmp(
buff, sorted_order),
"Wrong sorted order %s, expected %s\n",
buff, sorted_order);
2876 U(ins).item.pszText = (
char *)
"root";
2882 U(ins).item.pszText = (
char *)
"I1";
2887 U(ins).item.pszText = (
char *)
"i1";
2891 ok(
ret,
"Unexpected ret value %d\n",
ret);
2916 ok(
result,
"TVM_GETITEMRECT failed\n");
2948#define X(f) p##f = (void*)GetProcAddress(hComCtl32, #f);
2962 iccex.
dwSize =
sizeof(iccex);
2964 pInitCommonControlsEx(&iccex);
2984 ok(
hMainWnd !=
NULL,
"Failed to create parent window. Tests aborted.\n");
int strcmp(const char *String1, const char *String2)
DWORD GetPixel(LPDIRECTDRAWSURFACE7 Surface, UINT x, UINT y)
static void init_msg_sequences(struct msg_sequence **seq, int n)
static void flush_sequences(struct msg_sequence **seq, int n)
BOOL WINAPI InitCommonControlsEx(const INITCOMMONCONTROLSEX *lpInitCtrls)
static WNDPROC pOldWndProc
static char selected[MAX_PATH+1]
HMODULE WINAPI DECLSPEC_HOTPATCH GetModuleHandleA(LPCSTR lpModuleName)
HINSTANCE WINAPI DECLSPEC_HOTPATCH LoadLibraryA(LPCSTR lpLibFileName)
DWORD WINAPI GetTickCount(VOID)
INT WSAAPI select(IN INT s, IN OUT LPFD_SET readfds, IN OUT LPFD_SET writefds, IN OUT LPFD_SET exceptfds, IN CONST struct timeval *timeout)
static unsigned char buff[32768]
GLuint GLuint GLsizei count
GLclampf GLclampf GLclampf alpha
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLdouble GLdouble GLdouble r
GLint GLint GLsizei width
GLenum GLuint GLenum GLsizei const GLchar * buf
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 * u
static const struct newhuff ht[]
static const WCHAR testW[]
int WINAPI lstrlenA(LPCSTR lpString)
#define memcpy(s1, s2, n)
#define sprintf(buf, format,...)
static const char textA[]
static const char * TEST_CALLBACK_TEXT
static void test_get_set_imagelist(void)
static const struct message parent_expand_seq[]
static const struct message getitemtext_seq[]
static void test_TVS_SINGLEEXPAND(void)
static void test_expandnotify(void)
static char sequence[256]
static void test_delete_items(void)
static void test_expandinvisible(void)
static void fill_treeview_sort_test(HWND hwnd)
static const struct message focus_seq[]
static const struct message FillRootSeq[]
static void test_get_set_item(void)
static TVITEMA g_item_expanded
static void test_get_insertmarkcolor(void)
#define NUM_MSG_SEQUENCES
static const struct message parent_expand_empty_kb_seq[]
static const struct message test_get_set_bkcolor_seq[]
static void test_customdraw(void)
static void _check_item(HWND hwnd, HTREEITEM item, BOOL is_version_6, int line)
static const struct message rootnone_select_seq[]
static void test_TVS_FULLROWSELECT(void)
static void test_cchildren(void)
static const struct message parent_vk_return_seq[]
static void test_TVM_HITTEST(void)
static void test_WM_KEYDOWN(void)
static const struct message parent_singleexpand_seq5[]
static void test_WM_PAINT(void)
static struct msg_sequence * item_sequence[1]
static HFONT g_customdraw_font
static const struct message parent_collapse_2nd_kb_seq[]
static const struct message test_get_set_imagelist_seq[]
static void test_TVM_GETNEXTITEM(void)
static void test_focus(void)
static const struct message test_get_set_itemheight_seq[]
static void test_get_set_itemheight(void)
static const struct message parent_singleexpand_seq1[]
static char * g_endedit_overwrite_ptr
static const struct message parent_singleexpand_seq7[]
#define TREEVIEW_SEQ_INDEX
static void test_get_set_insertmark(void)
static const struct message parent_singleexpand_seq4[]
static void test_itemedit(void)
static void test_TVM_SORTCHILDREN(void)
static TVITEMA g_item_expanding
static const struct message rootchild_select_seq[]
static const char * g_endedit_overwrite_contents
static void test_get_set_tooltips(void)
static struct msg_sequence * sequences[NUM_MSG_SEQUENCES]
static void test_treeview_classinfo(void)
static void test_select(void)
static void test_get_set_unicodeformat(void)
static void flush_events(void)
static const struct message test_get_set_item_seq[]
static void test_get_linecolor(void)
static void test_fillroot(void)
static const struct message parent_singleexpand_seq0[]
static BOOL g_disp_A_to_W
static const struct message test_get_set_tooltips_seq[]
static LRESULT CALLBACK parent_wnd_proc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
static const struct message parent_right_click_seq[]
#define expect(expected, got)
static void test_getitemtext(void)
static const struct message test_get_set_indent_seq[]
static void get_item_names_string(HWND hwnd, HTREEITEM item, char *str)
static void test_WM_GETDLGCODE(void)
static void IdentifyItem(HTREEITEM hItem)
static void test_expand(void)
static void test_get_set_indent(void)
static BOOL g_beginedit_alter_text
static const struct message parent_singleexpand_seq3[]
static const struct message test_get_set_insertmarkcolor_seq[]
static const struct message parent_expand_kb_seq[]
static LRESULT WINAPI TreeviewWndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
static void fill_tree(HWND hTree)
#define PARENT_CD_SEQ_INDEX
static const struct message parent_cd_seq[]
static void test_callback(void)
static const struct message test_get_set_unicodeformat_seq[]
static void test_get_set_scrolltime(void)
static const struct message test_get_set_scrolltime_seq[]
static const struct message parent_singleexpand_seq6[]
static const struct message test_right_click_seq[]
static BOOL g_get_rect_in_expand
static void init_functions(void)
static const struct message parent_get_dispinfo_seq[]
static void test_right_click(void)
static void test_TVS_CHECKBOXES(void)
static BOOL g_disp_set_stateimage
static BOOL g_get_from_expand
static const struct message test_get_set_textcolor_seq[]
static const struct message parent_singleexpand_seq2[]
static void test_htreeitem_layout(BOOL is_version_6)
static void test_expandedimage(void)
static void test_get_set_textcolor(void)
static const struct message empty_seq[]
static void test_get_set_bkcolor(void)
static HWND create_treeview_control(DWORD style)
static DWORD *static HFONT(WINAPI *pCreateFontIndirectExA)(const ENUMLOGFONTEXDVA *)
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
#define WS_OVERLAPPEDWINDOW
#define CDDS_ITEMPOSTPAINT
#define TVN_ENDLABELEDITA
#define CDRF_NOTIFYITEMERASE
#define CDDS_ITEMPREPAINT
#define ICC_TREEVIEW_CLASSES
#define TVGN_FIRSTVISIBLE
#define TVN_ITEMEXPANDINGA
#define TVN_BEGINLABELEDITA
#define TVIS_EXPANDEDONCE
#define CDRF_NOTIFYITEMDRAW
#define LPSTR_TEXTCALLBACKA
#define TVIF_EXPANDEDIMAGE
#define TVHT_ONITEMINDENT
#define TVM_GETUNICODEFORMAT
struct _IMAGELIST * HIMAGELIST
#define TVM_GETITEMHEIGHT
#define TVM_SETSCROLLTIME
#define TVHT_ONITEMBUTTON
#define TVS_FULLROWSELECT
#define NM_TOOLTIPSCREATED
#define CDRF_NOTIFYPOSTPAINT
struct _TREEITEM * HTREEITEM
#define TVN_ITEMEXPANDEDA
#define TVM_SETINSERTMARKCOLOR
#define TVS_NONEVENHEIGHT
#define TVM_GETEDITCONTROL
struct tagNMTREEVIEWA * LPNMTREEVIEWA
#define TVIS_STATEIMAGEMASK
#define TVM_SETUNICODEFORMAT
#define TVM_ENSUREVISIBLE
#define INDEXTOSTATEIMAGEMASK(i)
#define TVM_GETINSERTMARKCOLOR
#define INDEXTOOVERLAYMASK(i)
#define TVM_GETSCROLLTIME
#define TVIF_SELECTEDIMAGE
#define TVM_SETITEMHEIGHT
#define TreeView_GetItemA(hwnd, pitem)
#define TreeView_SetItemA(hwnd, pitem)
#define TreeView_InsertItemA(hwnd, phdi)
TW_UINT32 TW_UINT16 TW_UINT16 MSG
static BOOL load_v6_module(ULONG_PTR *pcookie, HANDLE *hCtx)
static void unload_v6_module(ULONG_PTR cookie, HANDLE hCtx)
int WINAPI GetWindowTextA(HWND hWnd, LPSTR lpString, int nMaxCount)
HGDIOBJ WINAPI GetStockObject(_In_ int)
COLORREF WINAPI SetBkColor(_In_ HDC, _In_ COLORREF)
HFONT WINAPI CreateFontIndirectA(_In_ const LOGFONTA *)
COLORREF WINAPI GetTextColor(_In_ HDC)
HGDIOBJ WINAPI GetCurrentObject(_In_ HDC, _In_ UINT)
HGDIOBJ WINAPI SelectObject(_In_ HDC, _In_ HGDIOBJ)
COLORREF WINAPI GetBkColor(_In_ HDC)
int WINAPI FillRect(HDC, LPCRECT, HBRUSH)
COLORREF WINAPI SetTextColor(_In_ HDC, _In_ COLORREF)
HWND WINAPI GetFocus(void)
int WINAPI ReleaseDC(_In_opt_ HWND, _In_ HDC)
LRESULT WINAPI DispatchMessageA(_In_ const MSG *)
#define SetWindowLongPtrA
BOOL WINAPI IsWindow(_In_opt_ HWND)
BOOL WINAPI SetWindowTextA(_In_ HWND, _In_opt_ LPCSTR)
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 ShowWindow(_In_ HWND, _In_ int)
LONG WINAPI GetWindowLongA(_In_ HWND, _In_ int)
LRESULT WINAPI DefWindowProcA(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
#define WM_CAPTURECHANGED
#define WM_WINDOWPOSCHANGING
#define SW_SCROLLCHILDREN
#define CreateWindowA(a, b, c, d, e, f, g, h, i, j, k)
LONG WINAPI SetWindowLongA(_In_ HWND, _In_ int, _In_ LONG)
HBRUSH WINAPI GetSysColorBrush(_In_ int)
BOOL WINAPI GetCursorPos(_Out_ LPPOINT)
LRESULT WINAPI SendMessageA(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
#define GetWindowLongPtrA
#define SPI_GETICONTITLELOGFONT
BOOL WINAPI SetCursorPos(_In_ int, _In_ int)
DWORD WINAPI MsgWaitForMultipleObjects(_In_ DWORD nCount, _In_reads_opt_(nCount) CONST HANDLE *pHandles, _In_ BOOL fWaitAll, _In_ DWORD dwMilliseconds, _In_ DWORD dwWakeMask)
BOOL WINAPI ClientToScreen(_In_ HWND, _Inout_ LPPOINT)
#define WM_IME_SETCONTEXT
BOOL WINAPI IsWindowUnicode(_In_ HWND)
BOOL WINAPI GetClientRect(_In_ HWND, _Out_ LPRECT)
ATOM WINAPI RegisterClassA(_In_ CONST WNDCLASSA *)
HWND WINAPI SetFocus(_In_opt_ HWND)
BOOL WINAPI UpdateWindow(_In_ HWND)
HDC WINAPI GetDC(_In_opt_ HWND)
BOOL WINAPI GetClassInfoA(_In_opt_ HINSTANCE, _In_ LPCSTR, _Out_ LPWNDCLASSA)
BOOL WINAPI SystemParametersInfoA(_In_ UINT uiAction, _In_ UINT uiParam, _Inout_opt_ PVOID pvParam, _In_ UINT fWinIni)
BOOL WINAPI PeekMessageA(_Out_ LPMSG, _In_opt_ HWND, _In_ UINT, _In_ UINT, _In_ UINT)
BOOL WINAPI InvalidateRect(_In_opt_ HWND, _In_opt_ LPCRECT, _In_ BOOL)
LRESULT(CALLBACK * WNDPROC)(HWND, UINT, WPARAM, LPARAM)
BOOL WINAPI GetMessageA(_Out_ LPMSG, _In_opt_ HWND, _In_ UINT, _In_ UINT)
#define WM_WINDOWPOSCHANGED
BOOL WINAPI DestroyWindow(_In_ HWND)
int WINAPI ScrollWindowEx(_In_ HWND, _In_ int, _In_ int, _In_opt_ LPCRECT, _In_opt_ LPCRECT, _In_opt_ HRGN, _Out_opt_ LPRECT, _In_ UINT)
BOOL WINAPI PostMessageA(_In_opt_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
LRESULT WINAPI CallWindowProcA(_In_ WNDPROC, _In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
HCURSOR WINAPI LoadCursorA(_In_opt_ HINSTANCE, _In_ LPCSTR)