diff --git a/dlls/comctl32/tests/toolbar.c b/dlls/comctl32/tests/toolbar.c index 89e25a270a1..443e3eb65c1 100644 --- a/dlls/comctl32/tests/toolbar.c +++ b/dlls/comctl32/tests/toolbar.c @@ -38,6 +38,7 @@ static BOOL g_fBlockHotItemChange; static BOOL g_fReceivedHotItemChange; static BOOL g_fExpectedHotItemOld; static BOOL g_fExpectedHotItemNew; +static DWORD g_dwExpectedDispInfoMask; #define check_rect(name, val, exp) ok(val.top == exp.top && val.bottom == exp.bottom && \ val.left == exp.left && val.right == exp.right, "invalid rect (" name ") (%d,%d) (%d,%d) - expected (%d,%d) (%d,%d)\n", \ @@ -57,6 +58,7 @@ static LRESULT MyWnd_Notify(LPARAM lParam) { NMHDR *hdr = (NMHDR *)lParam; NMTBHOTITEM *nmhi; + NMTBDISPINFO *nmdisp; switch (hdr->code) { case TBN_HOTITEMCHANGE: @@ -70,6 +72,15 @@ static LRESULT MyWnd_Notify(LPARAM lParam) if (g_fBlockHotItemChange) return 1; break; + + case TBN_GETDISPINFOA: + case TBN_GETDISPINFOW: + nmdisp = (NMTBDISPINFOA *)lParam; + + compare(nmdisp->dwMask, g_dwExpectedDispInfoMask, "%x"); + compare(nmdisp->iImage, -1, "%d"); + ok(nmdisp->pszText == NULL, "pszText is not NULL\n"); + break; } return 0; } @@ -974,6 +985,25 @@ static void test_createtoolbarex() DestroyWindow(hToolbar); } +static void test_dispinfo(void) +{ + HWND hToolbar = NULL; + const TBBUTTON buttons_disp[] = { + {-1, 20, TBSTATE_ENABLED, 0, {0, }, 0, -1}, + {0, 21, TBSTATE_ENABLED, 0, {0, }, 0, -1}, + }; + + rebuild_toolbar(&hToolbar); + SendMessageA(hToolbar, TB_LOADIMAGES, IDB_HIST_SMALL_COLOR, (LPARAM)HINST_COMMCTRL); + SendMessageA(hToolbar, TB_ADDBUTTONS, 2, (LPARAM)buttons_disp); + g_dwExpectedDispInfoMask = 1; + /* some TBN_GETDISPINFO tests will be done in MyWnd_Notify function */ + ShowWindow(hToolbar, SW_SHOW); + UpdateWindow(hToolbar); + DestroyWindow(hToolbar); + g_dwExpectedDispInfoMask = 0; +} + START_TEST(toolbar) { @@ -1007,6 +1037,7 @@ START_TEST(toolbar) test_sizes(); test_getbuttoninfo(); test_createtoolbarex(); + test_dispinfo(); PostQuitMessage(0); while(GetMessageA(&msg,0,0,0)) { diff --git a/dlls/comctl32/toolbar.c b/dlls/comctl32/toolbar.c index 4b1e552cb34..ec7b99d9808 100644 --- a/dlls/comctl32/toolbar.c +++ b/dlls/comctl32/toolbar.c @@ -366,6 +366,7 @@ TOOLBAR_GetBitmapIndex(const TOOLBAR_INFO *infoPtr, TBUTTON_INFO *btnPtr) nmgd.idCommand = btnPtr->idCommand; nmgd.lParam = btnPtr->dwData; nmgd.dwMask = TBNF_IMAGE; + nmgd.iImage = -1; TOOLBAR_SendNotify(&nmgd.hdr, infoPtr, infoPtr->bUnicode ? TBN_GETDISPINFOW : TBN_GETDISPINFOA); if (nmgd.dwMask & TBNF_DI_SETITEM)