DestroyWindow(hwnd);
}
+static void test_ttm_gettoolinfo(void)
+{
+ TTTOOLINFOA ti;
+ TTTOOLINFOW tiW;
+ HWND hwnd;
+ DWORD r;
+
+ hwnd = CreateWindowExA(0, TOOLTIPS_CLASSA, NULL, 0,
+ 10, 10, 300, 100,
+ NULL, NULL, NULL, 0);
+
+ ti.cbSize = TTTOOLINFOA_V2_SIZE;
+ ti.hwnd = NULL;
+ ti.hinst = GetModuleHandleA(NULL);
+ ti.uFlags = 0;
+ ti.uId = 0x1234ABCD;
+ ti.lpszText = NULL;
+ ti.lParam = 0xdeadbeef;
+ GetClientRect(hwnd, &ti.rect);
+ r = SendMessageA(hwnd, TTM_ADDTOOLA, 0, (LPARAM)&ti);
+ ok(r, "Adding the tool to the tooltip failed\n");
+
+ ti.cbSize = TTTOOLINFOA_V2_SIZE;
+ ti.lParam = 0xaaaaaaaa;
+ r = SendMessageA(hwnd, TTM_GETTOOLINFOA, 0, (LPARAM)&ti);
+ ok(r, "Getting tooltip info failed\n");
+ ok(0xdeadbeef == ti.lParam, "Expected 0xdeadbeef, got %lx\n", ti.lParam);
+
+ tiW.cbSize = TTTOOLINFOW_V2_SIZE;
+ tiW.hwnd = NULL;
+ tiW.uId = 0x1234ABCD;
+ tiW.lParam = 0xaaaaaaaa;
+ r = SendMessageA(hwnd, TTM_GETTOOLINFOW, 0, (LPARAM)&tiW);
+ ok(r, "Getting tooltip info failed\n");
+ ok(0xdeadbeef == tiW.lParam, "Expected 0xdeadbeef, got %lx\n", tiW.lParam);
+
+ ti.cbSize = TTTOOLINFOA_V2_SIZE;
+ ti.uId = 0x1234ABCD;
+ ti.lParam = 0xaaaaaaaa;
+ r = SendMessageA(hwnd, TTM_SETTOOLINFOA, 0, (LPARAM)&ti);
+
+ ti.cbSize = TTTOOLINFOA_V2_SIZE;
+ ti.lParam = 0xdeadbeef;
+ r = SendMessageA(hwnd, TTM_GETTOOLINFOA, 0, (LPARAM)&ti);
+ ok(r, "Getting tooltip info failed\n");
+ ok(0xaaaaaaaa == ti.lParam, "Expected 0xaaaaaaaa, got %lx\n", ti.lParam);
+
+ DestroyWindow(hwnd);
+}
+
START_TEST(tooltips)
{
InitCommonControls();
test_create_tooltip();
test_customdraw();
test_gettext();
+ test_ttm_gettoolinfo();
}
}
}
- if (lpToolInfo->cbSize >= sizeof(TTTOOLINFOA))
+ if (lpToolInfo->cbSize >= TTTOOLINFOA_V2_SIZE)
toolPtr->lParam = lpToolInfo->lParam;
/* install subclassing hook */
}
}
- if (lpToolInfo->cbSize >= sizeof(TTTOOLINFOW))
+ if (lpToolInfo->cbSize >= TTTOOLINFOW_V2_SIZE)
toolPtr->lParam = lpToolInfo->lParam;
/* install subclassing hook */
/* lpToolInfo->lpszText = toolPtr->lpszText; */
lpToolInfo->lpszText = NULL; /* FIXME */
- if (lpToolInfo->cbSize >= sizeof(TTTOOLINFOA))
+ if (lpToolInfo->cbSize >= TTTOOLINFOA_V2_SIZE)
lpToolInfo->lParam = toolPtr->lParam;
return TRUE;
/* lpToolInfo->lpszText = toolPtr->lpszText; */
lpToolInfo->lpszText = NULL; /* FIXME */
- if (lpToolInfo->cbSize >= sizeof(TTTOOLINFOW))
+ if (lpToolInfo->cbSize >= TTTOOLINFOW_V2_SIZE)
lpToolInfo->lParam = toolPtr->lParam;
return TRUE;
/* lpToolInfo->lpszText = toolPtr->lpszText; */
lpToolInfo->lpszText = NULL; /* FIXME */
- if (lpToolInfo->cbSize >= sizeof(TTTOOLINFOA))
+ if (lpToolInfo->cbSize >= TTTOOLINFOA_V2_SIZE)
lpToolInfo->lParam = toolPtr->lParam;
return TRUE;
/* lpToolInfo->lpszText = toolPtr->lpszText; */
lpToolInfo->lpszText = NULL; /* FIXME */
- if (lpToolInfo->cbSize >= sizeof(TTTOOLINFOW))
+ if (lpToolInfo->cbSize >= TTTOOLINFOW_V2_SIZE)
lpToolInfo->lParam = toolPtr->lParam;
return TRUE;
/* lpToolInfo->lpszText = toolPtr->lpszText; */
lpToolInfo->lpszText = NULL; /* FIXME */
- if (lpToolInfo->cbSize >= sizeof(TTTOOLINFOA))
+ if (lpToolInfo->cbSize >= TTTOOLINFOA_V2_SIZE)
lpToolInfo->lParam = toolPtr->lParam;
return TRUE;
/* lpToolInfo->lpszText = toolPtr->lpszText; */
lpToolInfo->lpszText = NULL; /* FIXME */
- if (lpToolInfo->cbSize >= sizeof(TTTOOLINFOW))
+ if (lpToolInfo->cbSize >= TTTOOLINFOW_V2_SIZE)
lpToolInfo->lParam = toolPtr->lParam;
return TRUE;
TRACE("tool %d!\n", nTool);
/* copy tool data */
- if (lptthit->ti.cbSize >= sizeof(TTTOOLINFOA)) {
+ if (lptthit->ti.cbSize >= TTTOOLINFOA_V1_SIZE) {
toolPtr = &infoPtr->tools[nTool];
lptthit->ti.uFlags = toolPtr->uFlags;
lptthit->ti.hinst = toolPtr->hinst;
/* lptthit->ti.lpszText = toolPtr->lpszText; */
lptthit->ti.lpszText = NULL; /* FIXME */
- lptthit->ti.lParam = toolPtr->lParam;
+ if (lptthit->ti.cbSize >= TTTOOLINFOA_V2_SIZE)
+ lptthit->ti.lParam = toolPtr->lParam;
}
return TRUE;
TRACE("tool %d!\n", nTool);
/* copy tool data */
- if (lptthit->ti.cbSize >= sizeof(TTTOOLINFOW)) {
+ if (lptthit->ti.cbSize >= TTTOOLINFOW_V1_SIZE) {
toolPtr = &infoPtr->tools[nTool];
lptthit->ti.uFlags = toolPtr->uFlags;
lptthit->ti.hinst = toolPtr->hinst;
/* lptthit->ti.lpszText = toolPtr->lpszText; */
lptthit->ti.lpszText = NULL; /* FIXME */
- lptthit->ti.lParam = toolPtr->lParam;
+ if (lptthit->ti.cbSize >= TTTOOLINFOW_V2_SIZE)
+ lptthit->ti.lParam = toolPtr->lParam;
}
return TRUE;
}
}
- if (lpToolInfo->cbSize >= sizeof(TTTOOLINFOA))
+ if (lpToolInfo->cbSize >= TTTOOLINFOA_V2_SIZE)
toolPtr->lParam = lpToolInfo->lParam;
return 0;
}
}
- if (lpToolInfo->cbSize >= sizeof(TTTOOLINFOW))
+ if (lpToolInfo->cbSize >= TTTOOLINFOW_V2_SIZE)
toolPtr->lParam = lpToolInfo->lParam;
if (infoPtr->nCurrentTool == nTool)