Signed-off-by: Nikolay Sivov <nsivov(a)codeweavers.com>
---
v2: fixed test failures on WinXP
dlls/comctl32/tests/Makefile.in | 2 +-
dlls/comctl32/tests/animate.c | 22 +----------
dlls/comctl32/tests/combo.c | 29 +++++++-------
dlls/comctl32/tests/datetime.c | 22 ++++++-----
dlls/comctl32/tests/dpa.c | 67 +++++++++++++-------------------
dlls/comctl32/tests/header.c | 38 +++++++++---------
dlls/comctl32/tests/imagelist.c | 36 ++++++++---------
dlls/comctl32/tests/ipaddress.c | 25 ------------
dlls/comctl32/tests/listview.c | 74 +++++++++++++++++++----------------
dlls/comctl32/tests/monthcal.c | 25 ++++++------
dlls/comctl32/tests/mru.c | 30 +++++++-------
dlls/comctl32/tests/pager.c | 1 -
dlls/comctl32/tests/progress.c | 34 +++++++++-------
dlls/comctl32/tests/propsheet.c | 86 +++++++++++++++++++++++++----------------
dlls/comctl32/tests/rebar.c | 35 ++++++++---------
dlls/comctl32/tests/status.c | 21 +++++++++-
dlls/comctl32/tests/subclass.c | 2 +-
dlls/comctl32/tests/tab.c | 42 ++++++++++++++------
dlls/comctl32/tests/toolbar.c | 63 +++++++++++++++++++-----------
dlls/comctl32/tests/tooltips.c | 2 +-
dlls/comctl32/tests/trackbar.c | 3 +-
dlls/comctl32/tests/treeview.c | 34 ++++++++--------
dlls/comctl32/tests/updown.c | 21 +++++++---
23 files changed, 378 insertions(+), 336 deletions(-)
diff --git a/dlls/comctl32/tests/Makefile.in b/dlls/comctl32/tests/Makefile.in
index f93ff2585d..4669efcf2b 100644
--- a/dlls/comctl32/tests/Makefile.in
+++ b/dlls/comctl32/tests/Makefile.in
@@ -1,5 +1,5 @@
TESTDLL = comctl32.dll
-IMPORTS = comctl32 ole32 user32 gdi32 advapi32
+IMPORTS = ole32 user32 gdi32 advapi32
C_SRCS = \
animate.c \
diff --git a/dlls/comctl32/tests/animate.c b/dlls/comctl32/tests/animate.c
index fab345bb47..400de55b5e 100644
--- a/dlls/comctl32/tests/animate.c
+++ b/dlls/comctl32/tests/animate.c
@@ -108,26 +108,6 @@ static void create_animate(DWORD parent_style, DWORD animate_style)
update_window(hAnimateParentWnd);
}
-static void init(void)
-{
- HMODULE hComctl32;
- BOOL (WINAPI *pInitCommonControlsEx)(const INITCOMMONCONTROLSEX*);
-
- hComctl32 = GetModuleHandleA("comctl32.dll");
- pInitCommonControlsEx = (void*)GetProcAddress(hComctl32, "InitCommonControlsEx");
- if (pInitCommonControlsEx)
- {
- INITCOMMONCONTROLSEX iccex;
- iccex.dwSize = sizeof(iccex);
- iccex.dwICC = ICC_ANIMATE_CLASS;
- pInitCommonControlsEx(&iccex);
- }
- else
- InitCommonControls();
-
- shell32 = LoadLibraryA("Shell32.dll");
-}
-
static void destroy_animate(void)
{
MSG msg;
@@ -175,7 +155,7 @@ static void test_play(void)
START_TEST(animate)
{
- init();
+ shell32 = LoadLibraryA("Shell32.dll");
test_play();
diff --git a/dlls/comctl32/tests/combo.c b/dlls/comctl32/tests/combo.c
index ef7c3f796b..895d9429b4 100644
--- a/dlls/comctl32/tests/combo.c
+++ b/dlls/comctl32/tests/combo.c
@@ -480,25 +480,20 @@ static LRESULT CALLBACK ComboExTestWndProc(HWND hWnd, UINT msg, WPARAM wParam, L
return 0L;
}
-static BOOL init(void)
+static void init_functions(void)
{
- HMODULE hComctl32;
- BOOL (WINAPI *pInitCommonControlsEx)(const INITCOMMONCONTROLSEX*);
- WNDCLASSA wc;
- INITCOMMONCONTROLSEX iccex;
+ HMODULE hComCtl32 = LoadLibraryA("comctl32.dll");
- hComctl32 = GetModuleHandleA("comctl32.dll");
- pInitCommonControlsEx = (void*)GetProcAddress(hComctl32, "InitCommonControlsEx");
- if (!pInitCommonControlsEx)
- {
- win_skip("InitCommonControlsEx() is missing. Skipping the tests\n");
- return FALSE;
- }
- iccex.dwSize = sizeof(iccex);
- iccex.dwICC = ICC_USEREX_CLASSES;
- pInitCommonControlsEx(&iccex);
+#define X(f) p##f = (void*)GetProcAddress(hComCtl32, #f);
+#define X2(f, ord) p##f = (void*)GetProcAddress(hComCtl32, (const char *)ord);
+ X2(SetWindowSubclass, 410);
+#undef X
+#undef X2
+}
- pSetWindowSubclass = (void*)GetProcAddress(hComctl32, (LPSTR)410);
+static BOOL init(void)
+{
+ WNDCLASSA wc;
wc.style = CS_HREDRAW | CS_VREDRAW;
wc.cbClsExtra = 0;
@@ -1161,6 +1156,8 @@ START_TEST(combo)
ULONG_PTR ctx_cookie;
HANDLE hCtx;
+ init_functions();
+
if (!init())
return;
diff --git a/dlls/comctl32/tests/datetime.c b/dlls/comctl32/tests/datetime.c
index c9407bef61..4036e9defd 100644
--- a/dlls/comctl32/tests/datetime.c
+++ b/dlls/comctl32/tests/datetime.c
@@ -30,6 +30,8 @@
#define NUM_MSG_SEQUENCES 1
#define DATETIME_SEQ_INDEX 0
+static BOOL (WINAPI *pInitCommonControlsEx)(const INITCOMMONCONTROLSEX*);
+
static struct msg_sequence *sequences[NUM_MSG_SEQUENCES];
static const struct message test_dtm_set_format_seq[] = {
@@ -777,19 +779,21 @@ static void test_dts_shownone(void)
DestroyWindow(hwnd);
}
+static void init_functions(void)
+{
+ HMODULE hComCtl32 = LoadLibraryA("comctl32.dll");
+
+#define X(f) p##f = (void*)GetProcAddress(hComCtl32, #f);
+ X(InitCommonControlsEx);
+#undef X
+}
+
START_TEST(datetime)
{
- HMODULE hComctl32;
- BOOL (WINAPI *pInitCommonControlsEx)(const INITCOMMONCONTROLSEX*);
INITCOMMONCONTROLSEX iccex;
- hComctl32 = GetModuleHandleA("comctl32.dll");
- pInitCommonControlsEx = (void*)GetProcAddress(hComctl32, "InitCommonControlsEx");
- if (!pInitCommonControlsEx)
- {
- win_skip("InitCommonControlsEx() is missing. Skipping the tests\n");
- return;
- }
+ init_functions();
+
iccex.dwSize = sizeof(iccex);
iccex.dwICC = ICC_DATE_CLASSES;
pInitCommonControlsEx(&iccex);
diff --git a/dlls/comctl32/tests/dpa.c b/dlls/comctl32/tests/dpa.c
index 4eb32a4187..c795c14f4e 100644
--- a/dlls/comctl32/tests/dpa.c
+++ b/dlls/comctl32/tests/dpa.c
@@ -59,38 +59,33 @@ static INT (WINAPI *pDPA_Search)(HDPA,PVOID,INT,PFNDPACOMPARE,LPARAM,UINT);
static BOOL (WINAPI *pDPA_SetPtr)(HDPA,INT,PVOID);
static BOOL (WINAPI *pDPA_Sort)(HDPA,PFNDPACOMPARE,LPARAM);
-#define COMCTL32_GET_PROC(func, ord) \
- ((p ## func = (PVOID)GetProcAddress(hcomctl32,(LPCSTR)ord)) ? 1 \
- : (trace( #func " not exported\n"), 0))
-
-static BOOL InitFunctionPtrs(HMODULE hcomctl32)
+static void init_functions(void)
{
- /* 4.00+ */
- if(COMCTL32_GET_PROC(DPA_Clone, 331) &&
- COMCTL32_GET_PROC(DPA_Create, 328) &&
- COMCTL32_GET_PROC(DPA_CreateEx, 340) &&
- COMCTL32_GET_PROC(DPA_DeleteAllPtrs, 337) &&
- COMCTL32_GET_PROC(DPA_DeletePtr, 336) &&
- COMCTL32_GET_PROC(DPA_Destroy, 329) &&
- COMCTL32_GET_PROC(DPA_GetPtr, 332) &&
- COMCTL32_GET_PROC(DPA_GetPtrIndex, 333) &&
- COMCTL32_GET_PROC(DPA_Grow, 330) &&
- COMCTL32_GET_PROC(DPA_InsertPtr, 334) &&
- COMCTL32_GET_PROC(DPA_Search, 339) &&
- COMCTL32_GET_PROC(DPA_SetPtr, 335) &&
- COMCTL32_GET_PROC(DPA_Sort, 338))
- {
- /* 4.71+ */
- COMCTL32_GET_PROC(DPA_DestroyCallback, 386) &&
- COMCTL32_GET_PROC(DPA_EnumCallback, 385) &&
- COMCTL32_GET_PROC(DPA_LoadStream, 9) &&
- COMCTL32_GET_PROC(DPA_Merge, 11) &&
- COMCTL32_GET_PROC(DPA_SaveStream, 10);
-
- return TRUE;
- }
+ HMODULE hComCtl32 = LoadLibraryA("comctl32.dll");
- return FALSE;
+#define X2(f, ord) p##f = (void*)GetProcAddress(hComCtl32, (const char *)ord);
+ /* 4.00+ */
+ X2(DPA_Clone, 331);
+ X2(DPA_Create, 328);
+ X2(DPA_CreateEx, 340);
+ X2(DPA_DeleteAllPtrs, 337);
+ X2(DPA_DeletePtr, 336);
+ X2(DPA_Destroy, 329);
+ X2(DPA_GetPtr, 332);
+ X2(DPA_GetPtrIndex, 333);
+ X2(DPA_Grow, 330);
+ X2(DPA_InsertPtr, 334);
+ X2(DPA_Search, 339);
+ X2(DPA_SetPtr, 335);
+ X2(DPA_Sort, 338);
+
+ /* 4.71+ */
+ X2(DPA_DestroyCallback, 386);
+ X2(DPA_EnumCallback, 385);
+ X2(DPA_LoadStream, 9);
+ X2(DPA_Merge, 11);
+ X2(DPA_SaveStream, 10);
+#undef X2
}
/* Callbacks */
@@ -628,7 +623,7 @@ static void test_DPA_LoadStream(void)
dpa = NULL;
hRes = pDPA_LoadStream(&dpa, CB_Load, pStm, NULL);
expect(S_OK, hRes);
- DPA_Destroy(dpa);
+ pDPA_Destroy(dpa);
/* try with altered dwData2 field */
header.dwSize = sizeof(header);
@@ -742,15 +737,7 @@ if (0) {
START_TEST(dpa)
{
- HMODULE hcomctl32;
-
- hcomctl32 = GetModuleHandleA("comctl32.dll");
-
- if(!InitFunctionPtrs(hcomctl32))
- {
- win_skip("Needed functions are not available\n");
- return;
- }
+ init_functions();
test_dpa();
test_DPA_Merge();
diff --git a/dlls/comctl32/tests/header.c b/dlls/comctl32/tests/header.c
index ae75199be2..31610f0c9a 100644
--- a/dlls/comctl32/tests/header.c
+++ b/dlls/comctl32/tests/header.c
@@ -26,6 +26,9 @@
#include "v6util.h"
#include "msg.h"
+static HIMAGELIST (WINAPI *pImageList_Create)(int, int, UINT, int, int);
+static BOOL (WINAPI *pImageList_Destroy)(HIMAGELIST);
+
typedef struct tagEXPECTEDNOTIFY
{
INT iCode;
@@ -953,7 +956,7 @@ static void test_hdm_sethotdivider(HWND hParent)
static void test_hdm_imageMessages(HWND hParent)
{
- HIMAGELIST hImageList = ImageList_Create (4, 4, 0, 1, 0);
+ HIMAGELIST hImageList = pImageList_Create (4, 4, 0, 1, 0);
HIMAGELIST hIml;
BOOL wasValid;
HWND hChild;
@@ -973,13 +976,13 @@ static void test_hdm_imageMessages(HWND hParent)
hIml = (HIMAGELIST) SendMessageA(hChild, HDM_CREATEDRAGIMAGE, 0, 0);
ok(hIml != NULL, "Expected non-NULL handle, got %p\n", hIml);
- ImageList_Destroy(hIml);
+ pImageList_Destroy(hIml);
ok_sequence(sequences, HEADER_SEQ_INDEX, imageMessages_seq, "imageMessages sequence testing", FALSE);
DestroyWindow(hChild);
- wasValid = ImageList_Destroy(hImageList);
+ wasValid = pImageList_Destroy(hImageList);
ok(wasValid, "Header must not free image list at destruction!\n");
}
@@ -1644,28 +1647,23 @@ static LRESULT CALLBACK HeaderTestWndProc(HWND hWnd, UINT msg, WPARAM wParam, LP
return 0L;
}
+static void init_functions(void)
+{
+ HMODULE hComCtl32 = LoadLibraryA("comctl32.dll");
+
+#define X(f) p##f = (void*)GetProcAddress(hComCtl32, #f);
+ X(ImageList_Create);
+ X(ImageList_Destroy);
+#undef X
+}
+
static BOOL init(void)
{
- HMODULE hComctl32;
- BOOL (WINAPI *pInitCommonControlsEx)(const INITCOMMONCONTROLSEX*);
WNDCLASSA wc;
- INITCOMMONCONTROLSEX iccex;
TEXTMETRICA tm;
HFONT hOldFont;
HDC hdc;
- hComctl32 = GetModuleHandleA("comctl32.dll");
- pInitCommonControlsEx = (void*)GetProcAddress(hComctl32, "InitCommonControlsEx");
- if (!pInitCommonControlsEx)
- {
- win_skip("InitCommonControlsEx() is missing. Skipping the tests\n");
- return FALSE;
- }
-
- iccex.dwSize = sizeof(iccex);
- iccex.dwICC = ICC_USEREX_CLASSES;
- pInitCommonControlsEx(&iccex);
-
wc.style = CS_HREDRAW | CS_VREDRAW;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
@@ -1821,6 +1819,8 @@ START_TEST(header)
ULONG_PTR ctx_cookie;
HANDLE hCtx;
+ init_functions();
+
if (!init())
return;
@@ -1852,6 +1852,8 @@ START_TEST(header)
return;
}
+ init_functions();
+
/* comctl32 version 6 tests start here */
test_hdf_fixedwidth(parent_hwnd);
test_hds_nosizing(parent_hwnd);
diff --git a/dlls/comctl32/tests/imagelist.c b/dlls/comctl32/tests/imagelist.c
index 653467c999..3838563c38 100644
--- a/dlls/comctl32/tests/imagelist.c
+++ b/dlls/comctl32/tests/imagelist.c
@@ -85,6 +85,7 @@ static BOOL (WINAPI *pImageList_Write)(HIMAGELIST, IStream *);
static HIMAGELIST (WINAPI *pImageList_Read)(IStream *);
static BOOL (WINAPI *pImageList_Copy)(HIMAGELIST, int, HIMAGELIST, int, UINT);
static HIMAGELIST (WINAPI *pImageList_LoadImageW)(HINSTANCE, LPCWSTR, int, int, COLORREF, UINT, UINT);
+static BOOL (WINAPI *pImageList_Draw)(HIMAGELIST,INT,HDC,INT,INT,UINT);
static HINSTANCE hinst;
@@ -205,7 +206,7 @@ static HDC show_image(HWND hwnd, HIMAGELIST himl, int idx, int size,
SetWindowTextA(hwnd, loc);
hdc = GetDC(hwnd);
- ImageList_Draw(himl, idx, hdc, 0, 0, ILD_TRANSPARENT);
+ pImageList_Draw(himl, idx, hdc, 0, 0, ILD_TRANSPARENT);
force_redraw(hwnd);
@@ -504,8 +505,8 @@ static void test_DrawIndirect(void)
ok(hbm3 != 0, "no bitmap 3\n");
/* add three */
- ok(0 == ImageList_Add(himl, hbm1, 0),"failed to add bitmap 1\n");
- ok(1 == ImageList_Add(himl, hbm2, 0),"failed to add bitmap 2\n");
+ ok(0 == pImageList_Add(himl, hbm1, 0),"failed to add bitmap 1\n");
+ ok(1 == pImageList_Add(himl, hbm2, 0),"failed to add bitmap 2\n");
if (pImageList_SetImageCount)
{
@@ -1576,7 +1577,7 @@ cleanup:
if(himl)
{
- ret = ImageList_Destroy(himl);
+ ret = pImageList_Destroy(himl);
ok(ret, "ImageList_Destroy failed\n");
}
}
@@ -1599,21 +1600,21 @@ static void test_iimagelist(void)
imgl = (IImageList*)createImageList(32, 32);
ret = IImageList_AddRef(imgl);
ok(ret == 2, "Expected 2, got %d\n", ret);
- ret = ImageList_Destroy((HIMAGELIST)imgl);
+ ret = pImageList_Destroy((HIMAGELIST)imgl);
ok(ret == TRUE, "Expected TRUE, got %d\n", ret);
- ret = ImageList_Destroy((HIMAGELIST)imgl);
+ ret = pImageList_Destroy((HIMAGELIST)imgl);
ok(ret == TRUE, "Expected TRUE, got %d\n", ret);
- ret = ImageList_Destroy((HIMAGELIST)imgl);
+ ret = pImageList_Destroy((HIMAGELIST)imgl);
ok(ret == FALSE, "Expected FALSE, got %d\n", ret);
imgl = (IImageList*)createImageList(32, 32);
ret = IImageList_AddRef(imgl);
ok(ret == 2, "Expected 2, got %d\n", ret);
- ret = ImageList_Destroy((HIMAGELIST)imgl);
+ ret = pImageList_Destroy((HIMAGELIST)imgl);
ok(ret == TRUE, "Expected TRUE, got %d\n", ret);
ret = IImageList_Release(imgl);
ok(ret == 0, "Expected 0, got %d\n", ret);
- ret = ImageList_Destroy((HIMAGELIST)imgl);
+ ret = pImageList_Destroy((HIMAGELIST)imgl);
ok(ret == FALSE, "Expected FALSE, got %d\n", ret);
/* ref counting, HIMAGELIST_QueryInterface adds a reference */
@@ -1674,7 +1675,7 @@ static void test_IImageList_Add_Remove(void)
int ret;
/* create an imagelist to play with */
- himl = ImageList_Create(84, 84, ILC_COLOR16, 0, 3);
+ himl = pImageList_Create(84, 84, ILC_COLOR16, 0, 3);
ok(himl != 0,"failed to create imagelist\n");
imgl = (IImageList *) himl;
@@ -1728,7 +1729,7 @@ static void test_IImageList_Get_SetImageCount(void)
INT ret;
/* create an imagelist to play with */
- himl = ImageList_Create(84, 84, ILC_COLOR16, 0, 3);
+ himl = pImageList_Create(84, 84, ILC_COLOR16, 0, 3);
ok(himl != 0,"failed to create imagelist\n");
imgl = (IImageList *) himl;
@@ -1773,7 +1774,7 @@ static void test_IImageList_Draw(void)
ok(hdc!=NULL, "couldn't get DC\n");
/* create an imagelist to play with */
- himl = ImageList_Create(48, 48, ILC_COLOR16, 0, 3);
+ himl = pImageList_Create(48, 48, ILC_COLOR16, 0, 3);
ok(himl!=0,"failed to create imagelist\n");
imgl = (IImageList *) himl;
@@ -1850,10 +1851,10 @@ static void test_IImageList_Merge(void)
HRESULT hr;
int ret;
- himl1 = ImageList_Create(32,32,0,0,3);
+ himl1 = pImageList_Create(32,32,0,0,3);
ok(himl1 != NULL,"failed to create himl1\n");
- himl2 = ImageList_Create(32,32,0,0,3);
+ himl2 = pImageList_Create(32,32,0,0,3);
ok(himl2 != NULL,"failed to create himl2\n");
hicon1 = CreateIcon(hinst, 32, 32, 1, 1, icon_bits, icon_bits);
@@ -1887,7 +1888,7 @@ if (0)
/* Same happens if himl2 is empty */
IImageList_Release(imgl2);
- himl2 = ImageList_Create(32,32,0,0,3);
+ himl2 = pImageList_Create(32,32,0,0,3);
ok(himl2 != NULL,"failed to recreate himl2\n");
imgl2 = (IImageList *) himl2;
@@ -2385,7 +2386,7 @@ static void test_IImageList_GetIconSize(void)
static void init_functions(void)
{
- HMODULE hComCtl32 = GetModuleHandleA("comctl32.dll");
+ HMODULE hComCtl32 = LoadLibraryA("comctl32.dll");
#define X(f) p##f = (void*)GetProcAddress(hComCtl32, #f);
#define X2(f, ord) p##f = (void*)GetProcAddress(hComCtl32, (const char *)ord);
@@ -2414,6 +2415,7 @@ static void init_functions(void)
X(ImageList_LoadImageW);
X(ImageList_CoCreateInstance);
X(HIMAGELIST_QueryInterface);
+ X(ImageList_Draw);
#undef X
#undef X2
}
@@ -2427,8 +2429,6 @@ START_TEST(imagelist)
hinst = GetModuleHandleA(NULL);
- InitCommonControls();
-
test_create_destroy();
test_begindrag();
test_hotspot();
diff --git a/dlls/comctl32/tests/ipaddress.c b/dlls/comctl32/tests/ipaddress.c
index 093f649c9e..6d8e9ccf4b 100644
--- a/dlls/comctl32/tests/ipaddress.c
+++ b/dlls/comctl32/tests/ipaddress.c
@@ -61,32 +61,7 @@ static void test_get_set_text(void)
DestroyWindow(hwnd);
}
-static BOOL init(void)
-{
- HMODULE hComctl32;
- BOOL (WINAPI *pInitCommonControlsEx)(const INITCOMMONCONTROLSEX*);
- INITCOMMONCONTROLSEX iccex;
-
- hComctl32 = GetModuleHandleA("comctl32.dll");
- pInitCommonControlsEx = (void*)GetProcAddress(hComctl32, "InitCommonControlsEx");
- if (!pInitCommonControlsEx)
- {
- win_skip("InitCommonControlsEx() is missing.\n");
- return FALSE;
- }
-
- iccex.dwSize = sizeof(iccex);
- /* W2K and below need ICC_INTERNET_CLASSES for the IP Address Control */
- iccex.dwICC = ICC_INTERNET_CLASSES;
- pInitCommonControlsEx(&iccex);
-
- return TRUE;
-}
-
START_TEST(ipaddress)
{
- if (!init())
- return;
-
test_get_set_text();
}
diff --git a/dlls/comctl32/tests/listview.c b/dlls/comctl32/tests/listview.c
index 18e874a00f..72367c67b3 100644
--- a/dlls/comctl32/tests/listview.c
+++ b/dlls/comctl32/tests/listview.c
@@ -28,6 +28,11 @@
#include "v6util.h"
#include "msg.h"
+static HIMAGELIST (WINAPI *pImageList_Create)(int, int, UINT, int, int);
+static BOOL (WINAPI *pImageList_Destroy)(HIMAGELIST);
+static int (WINAPI *pImageList_Add)(HIMAGELIST, HBITMAP, HBITMAP);
+static BOOL (WINAPI *p_TrackMouseEvent)(TRACKMOUSEEVENT *);
+
enum seq_index {
PARENT_SEQ_INDEX,
PARENT_FULL_SEQ_INDEX,
@@ -73,6 +78,18 @@ static BOOL g_focus_test_LVN_DELETEITEM;
static HWND subclass_editbox(HWND hwndListview);
+static void init_functions(void)
+{
+ HMODULE hComCtl32 = LoadLibraryA("comctl32.dll");
+
+#define X(f) p##f = (void*)GetProcAddress(hComCtl32, #f);
+ X(ImageList_Create);
+ X(ImageList_Destroy);
+ X(ImageList_Add);
+ X(_TrackMouseEvent);
+#undef X
+}
+
static struct msg_sequence *sequences[NUM_MSG_SEQUENCES];
static const struct message create_ownerdrawfixed_parent_seq[] = {
@@ -848,13 +865,13 @@ static void test_images(void)
RECT r1, r2;
static CHAR hello[] = "hello";
- himl = ImageList_Create(40, 40, 0, 4, 4);
+ himl = pImageList_Create(40, 40, 0, 4, 4);
ok(himl != NULL, "failed to create imagelist\n");
hbmp = CreateBitmap(40, 40, 1, 1, NULL);
ok(hbmp != NULL, "failed to create bitmap\n");
- r = ImageList_Add(himl, hbmp, 0);
+ r = pImageList_Add(himl, hbmp, 0);
ok(r == 0, "should be zero\n");
hwnd = CreateWindowExA(0, "SysListView32", "foo", LVS_OWNERDRAWFIXED,
@@ -1539,7 +1556,7 @@ static void test_create(void)
cls.lpszClassName = "MyListView32";
ok(RegisterClassExA(&cls), "RegisterClassEx failed\n");
- test_create_imagelist = ImageList_Create(16, 16, 0, 5, 10);
+ test_create_imagelist = pImageList_Create(16, 16, 0, 5, 10);
hList = CreateWindowA("MyListView32", "Test", WS_VISIBLE, 0, 0, 100, 100, NULL, NULL, GetModuleHandleA(NULL), 0);
ok((HIMAGELIST)SendMessageA(hList, LVM_GETIMAGELIST, 0, 0) == test_create_imagelist, "Image list not obtained\n");
hHeader = (HWND)SendMessageA(hList, LVM_GETHEADER, 0, 0);
@@ -3732,15 +3749,15 @@ static void test_hittest(void)
test_lvm_hittest(hwnd, x, y, -1, LVHT_TORIGHT, 0, FALSE, TRUE);
test_lvm_subitemhittest(hwnd, x, y, -1, -1, LVHT_NOWHERE, FALSE, FALSE, FALSE);
/* try with icons, state icons index is 1 based so at least 2 bitmaps needed */
- himl = ImageList_Create(16, 16, 0, 4, 4);
+ himl = pImageList_Create(16, 16, 0, 4, 4);
ok(himl != NULL, "failed to create imagelist\n");
hbmp = CreateBitmap(16, 16, 1, 1, NULL);
ok(hbmp != NULL, "failed to create bitmap\n");
- r = ImageList_Add(himl, hbmp, 0);
+ r = pImageList_Add(himl, hbmp, 0);
ok(r == 0, "should be zero\n");
hbmp = CreateBitmap(16, 16, 1, 1, NULL);
ok(hbmp != NULL, "failed to create bitmap\n");
- r = ImageList_Add(himl, hbmp, 0);
+ r = pImageList_Add(himl, hbmp, 0);
ok(r == 1, "should be one\n");
r = SendMessageA(hwnd, LVM_SETIMAGELIST, LVSIL_STATE, (LPARAM)himl);
@@ -4022,15 +4039,15 @@ todo_wine
expect(TRUE, r);
/* state icons */
- himl = ImageList_Create(16, 16, 0, 2, 2);
+ himl = pImageList_Create(16, 16, 0, 2, 2);
ok(himl != NULL, "failed to create imagelist\n");
hbm = CreateBitmap(16, 16, 1, 1, NULL);
ok(hbm != NULL, "failed to create bitmap\n");
- r = ImageList_Add(himl, hbm, 0);
+ r = pImageList_Add(himl, hbm, 0);
expect(0, r);
hbm = CreateBitmap(16, 16, 1, 1, NULL);
ok(hbm != NULL, "failed to create bitmap\n");
- r = ImageList_Add(himl, hbm, 0);
+ r = pImageList_Add(himl, hbm, 0);
expect(1, r);
r = SendMessageA(hwnd, LVM_SETIMAGELIST, LVSIL_STATE, (LPARAM)himl);
@@ -4702,9 +4719,9 @@ static void test_getitemspacing(void)
expect(cy, HIWORD(ret));
/* now try with icons */
- himl40 = ImageList_Create(40, 40, 0, 4, 4);
+ himl40 = pImageList_Create(40, 40, 0, 4, 4);
ok(himl40 != NULL, "failed to create imagelist\n");
- himl80 = ImageList_Create(80, 80, 0, 4, 4);
+ himl80 = pImageList_Create(80, 80, 0, 4, 4);
ok(himl80 != NULL, "failed to create imagelist\n");
ret = SendMessageA(hwnd, LVM_SETIMAGELIST, LVSIL_NORMAL, (LPARAM)himl40);
expect(0, ret);
@@ -4772,7 +4789,7 @@ static void test_getitemspacing(void)
expect(cy + 40, HIWORD(ret));
SendMessageA(hwnd, LVM_SETIMAGELIST, LVSIL_NORMAL, 0);
- ImageList_Destroy(himl80);
+ pImageList_Destroy(himl80);
DestroyWindow(hwnd);
/* LVS_SMALLICON */
hwnd = create_listview_control(LVS_SMALLICON);
@@ -4790,7 +4807,7 @@ static void test_getitemspacing(void)
expect(cy + 40, HIWORD(ret));
SendMessageA(hwnd, LVM_SETIMAGELIST, LVSIL_NORMAL, 0);
- ImageList_Destroy(himl40);
+ pImageList_Destroy(himl40);
DestroyWindow(hwnd);
/* LVS_REPORT */
hwnd = create_listview_control(LVS_REPORT);
@@ -4973,11 +4990,11 @@ static void test_approximate_viewrect(void)
/* LVS_ICON */
hwnd = create_listview_control(LVS_ICON);
- himl = ImageList_Create(40, 40, 0, 4, 4);
+ himl = pImageList_Create(40, 40, 0, 4, 4);
ok(himl != NULL, "failed to create imagelist\n");
hbmp = CreateBitmap(40, 40, 1, 1, NULL);
ok(hbmp != NULL, "failed to create bitmap\n");
- ret = ImageList_Add(himl, hbmp, 0);
+ ret = pImageList_Add(himl, hbmp, 0);
expect(0, ret);
ret = SendMessageA(hwnd, LVM_SETIMAGELIST, 0, (LPARAM)himl);
expect(0, ret);
@@ -5594,7 +5611,7 @@ static void test_createdragimage(void)
himl = (HIMAGELIST)SendMessageA(list, LVM_CREATEDRAGIMAGE, 0, (LPARAM)&pt);
ok(himl != NULL, "got %p\n", himl);
- ImageList_Destroy(himl);
+ pImageList_Destroy(himl);
DestroyWindow(list);
}
@@ -5709,9 +5726,9 @@ static void test_imagelists(void)
HIMAGELIST himl1, himl2, himl3;
LRESULT ret;
- himl1 = ImageList_Create(40, 40, 0, 4, 4);
- himl2 = ImageList_Create(40, 40, 0, 4, 4);
- himl3 = ImageList_Create(40, 40, 0, 4, 4);
+ himl1 = pImageList_Create(40, 40, 0, 4, 4);
+ himl2 = pImageList_Create(40, 40, 0, 4, 4);
+ himl3 = pImageList_Create(40, 40, 0, 4, 4);
ok(himl1 != NULL, "Failed to create imagelist\n");
ok(himl2 != NULL, "Failed to create imagelist\n");
ok(himl3 != NULL, "Failed to create imagelist\n");
@@ -5977,7 +5994,7 @@ static void test_oneclickactivate(void)
track.cbSize = sizeof(track);
track.dwFlags = TME_QUERY;
- _TrackMouseEvent(&track);
+ p_TrackMouseEvent(&track);
ok(track.hwndTrack == hwnd, "hwndTrack != hwnd\n");
ok(track.dwFlags == TME_LEAVE, "dwFlags = %x\n", track.dwFlags);
@@ -6241,23 +6258,10 @@ static void test_state_image(void)
START_TEST(listview)
{
- HMODULE hComctl32;
- BOOL (WINAPI *pInitCommonControlsEx)(const INITCOMMONCONTROLSEX*);
-
ULONG_PTR ctx_cookie;
HANDLE hCtx;
- hComctl32 = GetModuleHandleA("comctl32.dll");
- pInitCommonControlsEx = (void*)GetProcAddress(hComctl32, "InitCommonControlsEx");
- if (pInitCommonControlsEx)
- {
- INITCOMMONCONTROLSEX iccex;
- iccex.dwSize = sizeof(iccex);
- iccex.dwICC = ICC_LISTVIEW_CLASSES;
- pInitCommonControlsEx(&iccex);
- }
- else
- InitCommonControls();
+ init_functions();
init_msg_sequences(sequences, NUM_MSG_SEQUENCES);
@@ -6319,6 +6323,8 @@ START_TEST(listview)
return;
}
+ init_functions();
+
/* comctl32 version 6 tests start here */
test_get_set_view();
test_canceleditlabel();
diff --git a/dlls/comctl32/tests/monthcal.c b/dlls/comctl32/tests/monthcal.c
index 4216fd5e67..85822a320c 100644
--- a/dlls/comctl32/tests/monthcal.c
+++ b/dlls/comctl32/tests/monthcal.c
@@ -42,6 +42,8 @@
#define SEL_NOTIFY_TEST_ID 100
+static BOOL (WINAPI *pInitCommonControlsEx)(const INITCOMMONCONTROLSEX*);
+
static struct msg_sequence *sequences[NUM_MSG_SEQUENCES];
static HWND parent_wnd;
@@ -598,8 +600,6 @@ static HWND create_parent_window(void)
{
HWND hwnd;
- InitCommonControls();
-
/* flush message sequences, so we can check the new sequence by the end of function */
flush_sequences(sequences, NUM_MSG_SEQUENCES);
@@ -2039,22 +2039,23 @@ static void test_sel_notify(void)
}
}
+static void init_functions(void)
+{
+ HMODULE hComCtl32 = LoadLibraryA("comctl32.dll");
+
+#define X(f) p##f = (void*)GetProcAddress(hComCtl32, #f);
+ X(InitCommonControlsEx);
+#undef X
+}
+
START_TEST(monthcal)
{
- BOOL (WINAPI *pInitCommonControlsEx)(const INITCOMMONCONTROLSEX*);
INITCOMMONCONTROLSEX iccex;
- HMODULE hComctl32;
-
ULONG_PTR ctx_cookie;
HANDLE hCtx;
- hComctl32 = GetModuleHandleA("comctl32.dll");
- pInitCommonControlsEx = (void*)GetProcAddress(hComctl32, "InitCommonControlsEx");
- if (!pInitCommonControlsEx)
- {
- win_skip("InitCommonControlsEx() is missing. Skipping the tests\n");
- return;
- }
+ init_functions();
+
iccex.dwSize = sizeof(iccex);
iccex.dwICC = ICC_DATE_CLASSES;
pInitCommonControlsEx(&iccex);
diff --git a/dlls/comctl32/tests/mru.c b/dlls/comctl32/tests/mru.c
index af49aba213..664f7a54f4 100644
--- a/dlls/comctl32/tests/mru.c
+++ b/dlls/comctl32/tests/mru.c
@@ -76,18 +76,22 @@ static INT (WINAPI *pFindMRUData)(HANDLE, LPCVOID, DWORD, LPINT);
static INT (WINAPI *pAddMRUData)(HANDLE, LPCVOID, DWORD);
static HANDLE (WINAPI *pCreateMRUListW)(MRUINFOW*);
-static void InitPointers(void)
+static void init_functions(void)
{
- pCreateMRUListA = (void*)GetProcAddress(hComctl32,(LPCSTR)151);
- pFreeMRUList = (void*)GetProcAddress(hComctl32,(LPCSTR)152);
- pAddMRUStringA = (void*)GetProcAddress(hComctl32,(LPCSTR)153);
- pEnumMRUListA = (void*)GetProcAddress(hComctl32,(LPCSTR)154);
- pCreateMRUListLazyA = (void*)GetProcAddress(hComctl32,(LPCSTR)157);
- pAddMRUData = (void*)GetProcAddress(hComctl32,(LPCSTR)167);
- pFindMRUData = (void*)GetProcAddress(hComctl32,(LPCSTR)169);
- pCreateMRUListW = (void*)GetProcAddress(hComctl32,(LPCSTR)400);
- pEnumMRUListW = (void*)GetProcAddress(hComctl32,(LPCSTR)403);
- pCreateMRUListLazyW = (void*)GetProcAddress(hComctl32,(LPCSTR)404);
+ hComctl32 = LoadLibraryA("comctl32.dll");
+
+#define X2(f, ord) p##f = (void*)GetProcAddress(hComctl32, (const char *)ord);
+ X2(CreateMRUListA, 151);
+ X2(FreeMRUList, 152);
+ X2(AddMRUStringA, 153);
+ X2(EnumMRUListA, 154);
+ X2(CreateMRUListLazyA, 157);
+ X2(AddMRUData, 167);
+ X2(FindMRUData, 169);
+ X2(CreateMRUListW, 400);
+ X2(EnumMRUListW, 403);
+ X2(CreateMRUListLazyW, 404);
+#undef X2
}
/* Based on RegDeleteTreeW from dlls/advapi32/registry.c */
@@ -705,13 +709,11 @@ static void test_CreateMRUListLazyW(void)
START_TEST(mru)
{
- hComctl32 = GetModuleHandleA("comctl32.dll");
-
delete_reg_entries();
if (!create_reg_entries())
return;
- InitPointers();
+ init_functions();
test_MRUListA();
test_CreateMRUListLazyA();
diff --git a/dlls/comctl32/tests/pager.c b/dlls/comctl32/tests/pager.c
index a9409eac08..0da396cdd1 100644
--- a/dlls/comctl32/tests/pager.c
+++ b/dlls/comctl32/tests/pager.c
@@ -339,7 +339,6 @@ START_TEST(pager)
pSetWindowSubclass = (void*)GetProcAddress(mod, (LPSTR)410);
- InitCommonControls();
init_msg_sequences(sequences, NUM_MSG_SEQUENCES);
parent_wnd = create_parent_window();
diff --git a/dlls/comctl32/tests/progress.c b/dlls/comctl32/tests/progress.c
index 7f69c35232..9dd4b55202 100644
--- a/dlls/comctl32/tests/progress.c
+++ b/dlls/comctl32/tests/progress.c
@@ -30,6 +30,7 @@
static HWND hProgressParentWnd, hProgressWnd;
static const char progressTestClass[] = "ProgressBarTestClass";
+static BOOL (WINAPI *pInitCommonControlsEx)(const INITCOMMONCONTROLSEX*);
static HWND create_progress(DWORD style)
{
@@ -94,24 +95,10 @@ static void update_window(HWND hWnd)
static void init(void)
{
- HMODULE hComctl32;
- BOOL (WINAPI *pInitCommonControlsEx)(const INITCOMMONCONTROLSEX*);
WNDCLASSA wc;
RECT rect;
BOOL ret;
- hComctl32 = GetModuleHandleA("comctl32.dll");
- pInitCommonControlsEx = (void*)GetProcAddress(hComctl32, "InitCommonControlsEx");
- if (pInitCommonControlsEx)
- {
- INITCOMMONCONTROLSEX iccex;
- iccex.dwSize = sizeof(iccex);
- iccex.dwICC = ICC_PROGRESS_CLASS;
- pInitCommonControlsEx(&iccex);
- }
- else
- InitCommonControls();
-
wc.style = CS_HREDRAW | CS_VREDRAW;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
@@ -135,7 +122,7 @@ static void init(void)
GetClientRect(hProgressParentWnd, &rect);
hProgressWnd = CreateWindowExA(0, PROGRESS_CLASSA, "", WS_CHILD | WS_VISIBLE,
0, 0, rect.right, rect.bottom, hProgressParentWnd, NULL, GetModuleHandleA(NULL), 0);
- ok(hProgressWnd != NULL, "failed to create parent wnd\n");
+ ok(hProgressWnd != NULL, "Failed to create progress bar.\n");
progress_wndproc = (WNDPROC)SetWindowLongPtrA(hProgressWnd, GWLP_WNDPROC, (LPARAM)progress_subclass_proc);
ShowWindow(hProgressParentWnd, SW_SHOWNORMAL);
@@ -250,8 +237,25 @@ static void test_setcolors(void)
DestroyWindow(progress);
}
+static void init_functions(void)
+{
+ HMODULE hComCtl32 = LoadLibraryA("comctl32.dll");
+
+#define X(f) p##f = (void*)GetProcAddress(hComCtl32, #f);
+ X(InitCommonControlsEx);
+#undef X
+}
+
START_TEST(progress)
{
+ INITCOMMONCONTROLSEX iccex;
+
+ init_functions();
+
+ iccex.dwSize = sizeof(iccex);
+ iccex.dwICC = ICC_PROGRESS_CLASS;
+ pInitCommonControlsEx(&iccex);
+
init();
test_redraw();
diff --git a/dlls/comctl32/tests/propsheet.c b/dlls/comctl32/tests/propsheet.c
index ec53e6bc7c..2a4afaa51e 100644
--- a/dlls/comctl32/tests/propsheet.c
+++ b/dlls/comctl32/tests/propsheet.c
@@ -34,6 +34,10 @@ static LONG active_page = -1;
#define IDC_APPLY_BUTTON 12321
+static HPROPSHEETPAGE (WINAPI *pCreatePropertySheetPageA)(const PROPSHEETPAGEA *desc);
+static HPROPSHEETPAGE (WINAPI *pCreatePropertySheetPageW)(const PROPSHEETPAGEW *desc);
+static BOOL (WINAPI *pDestroyPropertySheetPage)(HPROPSHEETPAGE proppage);
+static INT_PTR (WINAPI *pPropertySheetA)(const PROPSHEETHEADERA *header);
static void detect_locale(void)
{
@@ -141,7 +145,7 @@ static void test_title(void)
psp.pfnDlgProc = page_dlg_proc;
psp.lParam = 0;
- hpsp[0] = CreatePropertySheetPageA(&psp);
+ hpsp[0] = pCreatePropertySheetPageA(&psp);
memset(&psh, 0, sizeof(psh));
psh.dwSize = PROPSHEETHEADERA_V1_SIZE;
@@ -152,7 +156,7 @@ static void test_title(void)
U3(psh).phpage = hpsp;
psh.pfnCallback = sheet_callback;
- hdlg = (HWND)PropertySheetA(&psh);
+ hdlg = (HWND)pPropertySheetA(&psh);
ok(hdlg != INVALID_HANDLE_VALUE, "got invalid handle value %p\n", hdlg);
style = GetWindowLongA(hdlg, GWL_STYLE);
@@ -180,7 +184,7 @@ static void test_nopage(void)
psp.pfnDlgProc = page_dlg_proc;
psp.lParam = 0;
- hpsp[0] = CreatePropertySheetPageA(&psp);
+ hpsp[0] = pCreatePropertySheetPageA(&psp);
memset(&psh, 0, sizeof(psh));
psh.dwSize = PROPSHEETHEADERA_V1_SIZE;
@@ -191,7 +195,7 @@ static void test_nopage(void)
U3(psh).phpage = hpsp;
psh.pfnCallback = sheet_callback;
- hdlg = (HWND)PropertySheetA(&psh);
+ hdlg = (HWND)pPropertySheetA(&psh);
ok(hdlg != INVALID_HANDLE_VALUE, "got invalid handle value %p\n", hdlg);
ShowWindow(hdlg,SW_NORMAL);
@@ -260,7 +264,7 @@ static void test_disableowner(void)
psp.pfnDlgProc = NULL;
psp.lParam = 0;
- hpsp[0] = CreatePropertySheetPageA(&psp);
+ hpsp[0] = pCreatePropertySheetPageA(&psp);
memset(&psh, 0, sizeof(psh));
psh.dwSize = PROPSHEETHEADERA_V1_SIZE;
@@ -271,7 +275,7 @@ static void test_disableowner(void)
U3(psh).phpage = hpsp;
psh.pfnCallback = disableowner_callback;
- p = PropertySheetA(&psh);
+ p = pPropertySheetA(&psh);
todo_wine
ok(p == 0, "Expected 0, got %ld\n", p);
ok(IsWindowEnabled(parenthwnd) != 0, "parent window should be enabled\n");
@@ -357,25 +361,25 @@ static void test_wiznavigation(void)
psp[0].hInstance = GetModuleHandleA(NULL);
U(psp[0]).pszTemplate = (LPCSTR)MAKEINTRESOURCE(IDD_PROP_PAGE_INTRO);
psp[0].pfnDlgProc = nav_page_proc;
- hpsp[0] = CreatePropertySheetPageA(&psp[0]);
+ hpsp[0] = pCreatePropertySheetPageA(&psp[0]);
psp[1].dwSize = sizeof(PROPSHEETPAGEA);
psp[1].hInstance = GetModuleHandleA(NULL);
U(psp[1]).pszTemplate = (LPCSTR)MAKEINTRESOURCE(IDD_PROP_PAGE_EDIT);
psp[1].pfnDlgProc = nav_page_proc;
- hpsp[1] = CreatePropertySheetPageA(&psp[1]);
+ hpsp[1] = pCreatePropertySheetPageA(&psp[1]);
psp[2].dwSize = sizeof(PROPSHEETPAGEA);
psp[2].hInstance = GetModuleHandleA(NULL);
U(psp[2]).pszTemplate = (LPCSTR)MAKEINTRESOURCE(IDD_PROP_PAGE_RADIO);
psp[2].pfnDlgProc = nav_page_proc;
- hpsp[2] = CreatePropertySheetPageA(&psp[2]);
+ hpsp[2] = pCreatePropertySheetPageA(&psp[2]);
psp[3].dwSize = sizeof(PROPSHEETPAGEA);
psp[3].hInstance = GetModuleHandleA(NULL);
U(psp[3]).pszTemplate = (LPCSTR)MAKEINTRESOURCE(IDD_PROP_PAGE_EXIT);
psp[3].pfnDlgProc = nav_page_proc;
- hpsp[3] = CreatePropertySheetPageA(&psp[3]);
+ hpsp[3] = pCreatePropertySheetPageA(&psp[3]);
/* set up the property sheet dialog */
memset(&psh, 0, sizeof(psh));
@@ -385,7 +389,7 @@ static void test_wiznavigation(void)
psh.nPages = 4;
psh.hwndParent = GetDesktopWindow();
U3(psh).phpage = hpsp;
- hdlg = (HWND)PropertySheetA(&psh);
+ hdlg = (HWND)pPropertySheetA(&psh);
ok(hdlg != INVALID_HANDLE_VALUE, "got invalid handle %p\n", hdlg);
ok(active_page == 0, "Active page should be 0. Is: %d\n", active_page);
@@ -480,7 +484,7 @@ static void test_buttons(void)
psp.pfnDlgProc = page_dlg_proc;
psp.lParam = 0;
- hpsp[0] = CreatePropertySheetPageA(&psp);
+ hpsp[0] = pCreatePropertySheetPageA(&psp);
memset(&psh, 0, sizeof(psh));
psh.dwSize = PROPSHEETHEADERA_V1_SIZE;
@@ -491,7 +495,7 @@ static void test_buttons(void)
U3(psh).phpage = hpsp;
psh.pfnCallback = sheet_callback;
- hdlg = (HWND)PropertySheetA(&psh);
+ hdlg = (HWND)pPropertySheetA(&psh);
ok(hdlg != INVALID_HANDLE_VALUE, "got null handle\n");
/* OK button */
@@ -587,7 +591,7 @@ static void test_custom_default_button(void)
add_button_has_been_pressed = FALSE;
/* Create the modeless property sheet. */
- hdlg = (HWND)PropertySheetA(&psh);
+ hdlg = (HWND)pPropertySheetA(&psh);
ok(hdlg != INVALID_HANDLE_VALUE, "Cannot create the property sheet\n");
/* Set the Add button as the default button. */
@@ -798,7 +802,7 @@ static void test_messages(void)
psp.pfnDlgProc = page_dlg_proc_messages;
psp.lParam = 0;
- hpsp[0] = CreatePropertySheetPageA(&psp);
+ hpsp[0] = pCreatePropertySheetPageA(&psp);
memset(&psh, 0, sizeof(psh));
psh.dwSize = PROPSHEETHEADERA_V1_SIZE;
@@ -810,7 +814,7 @@ static void test_messages(void)
U3(psh).phpage = hpsp;
psh.pfnCallback = sheet_callback_messages;
- hdlg = (HWND)PropertySheetA(&psh);
+ hdlg = (HWND)pPropertySheetA(&psh);
ok(hdlg != INVALID_HANDLE_VALUE, "got invalid handle %p\n", hdlg);
ShowWindow(hdlg,SW_NORMAL);
@@ -839,15 +843,15 @@ static void test_PSM_ADDPAGE(void)
psp.lParam = 0;
/* multiple pages with the same data */
- hpsp[0] = CreatePropertySheetPageA(&psp);
- hpsp[1] = CreatePropertySheetPageA(&psp);
- hpsp[2] = CreatePropertySheetPageA(&psp);
+ hpsp[0] = pCreatePropertySheetPageA(&psp);
+ hpsp[1] = pCreatePropertySheetPageA(&psp);
+ hpsp[2] = pCreatePropertySheetPageA(&psp);
U(psp).pszTemplate = (LPCSTR)MAKEINTRESOURCE(IDD_PROP_PAGE_ERROR);
- hpsp[3] = CreatePropertySheetPageA(&psp);
+ hpsp[3] = pCreatePropertySheetPageA(&psp);
psp.dwFlags = PSP_PREMATURE;
- hpsp[4] = CreatePropertySheetPageA(&psp);
+ hpsp[4] = pCreatePropertySheetPageA(&psp);
memset(&psh, 0, sizeof(psh));
psh.dwSize = PROPSHEETHEADERA_V1_SIZE;
@@ -857,7 +861,7 @@ static void test_PSM_ADDPAGE(void)
psh.hwndParent = GetDesktopWindow();
U3(psh).phpage = hpsp;
- hdlg = (HWND)PropertySheetA(&psh);
+ hdlg = (HWND)pPropertySheetA(&psh);
ok(hdlg != INVALID_HANDLE_VALUE, "got invalid handle %p\n", hdlg);
/* add pages one by one */
@@ -906,7 +910,7 @@ if (0)
r = SendMessageA(tab, TCM_GETITEMCOUNT, 0, 0);
ok(r == 3, "got %d\n", r);
- DestroyPropertySheetPage(hpsp[4]);
+ pDestroyPropertySheetPage(hpsp[4]);
DestroyWindow(hdlg);
}
@@ -929,15 +933,15 @@ static void test_PSM_INSERTPAGE(void)
psp.lParam = 0;
/* multiple pages with the same data */
- hpsp[0] = CreatePropertySheetPageA(&psp);
- hpsp[1] = CreatePropertySheetPageA(&psp);
- hpsp[2] = CreatePropertySheetPageA(&psp);
+ hpsp[0] = pCreatePropertySheetPageA(&psp);
+ hpsp[1] = pCreatePropertySheetPageA(&psp);
+ hpsp[2] = pCreatePropertySheetPageA(&psp);
U(psp).pszTemplate = (LPCSTR)MAKEINTRESOURCE(IDD_PROP_PAGE_ERROR);
- hpsp[3] = CreatePropertySheetPageA(&psp);
+ hpsp[3] = pCreatePropertySheetPageA(&psp);
psp.dwFlags = PSP_PREMATURE;
- hpsp[4] = CreatePropertySheetPageA(&psp);
+ hpsp[4] = pCreatePropertySheetPageA(&psp);
memset(&psh, 0, sizeof(psh));
psh.dwSize = PROPSHEETHEADERA_V1_SIZE;
@@ -947,7 +951,7 @@ static void test_PSM_INSERTPAGE(void)
psh.hwndParent = GetDesktopWindow();
U3(psh).phpage = hpsp;
- hdlg = (HWND)PropertySheetA(&psh);
+ hdlg = (HWND)pPropertySheetA(&psh);
ok(hdlg != INVALID_HANDLE_VALUE, "got invalid handle %p\n", hdlg);
/* add pages one by one */
@@ -1000,7 +1004,7 @@ if (0)
r = SendMessageA(tab, TCM_GETITEMCOUNT, 0, 0);
ok(r == 3, "got %d\n", r);
- DestroyPropertySheetPage(hpsp[4]);
+ pDestroyPropertySheetPage(hpsp[4]);
DestroyWindow(hdlg);
}
@@ -1090,7 +1094,7 @@ static void test_CreatePropertySheetPage(void)
for (page.u.pageA.dwSize = PROPSHEETPAGEA_V1_SIZE - 1; page.u.pageA.dwSize <= PROPSHEETPAGEA_V4_SIZE + 1; page.u.pageA.dwSize++)
{
page.addref_called = 0;
- hpsp = CreatePropertySheetPageA(&page.u.pageA);
+ hpsp = pCreatePropertySheetPageA(&page.u.pageA);
if (page.u.pageA.dwSize < PROPSHEETPAGEA_V1_SIZE)
ok(hpsp == NULL, "Expected failure, size %u\n", page.u.pageA.dwSize);
@@ -1103,7 +1107,7 @@ static void test_CreatePropertySheetPage(void)
if (hpsp)
{
page.release_called = 0;
- ret = DestroyPropertySheetPage(hpsp);
+ ret = pDestroyPropertySheetPage(hpsp);
ok(ret, "Failed to destroy a page\n");
ok(page.release_called == 1, "Expected RELEASE callback message\n");
}
@@ -1119,7 +1123,7 @@ static void test_CreatePropertySheetPage(void)
for (page.u.pageW.dwSize = PROPSHEETPAGEW_V1_SIZE - 1; page.u.pageW.dwSize <= PROPSHEETPAGEW_V4_SIZE + 1; page.u.pageW.dwSize++)
{
page.addref_called = 0;
- hpsp = CreatePropertySheetPageW(&page.u.pageW);
+ hpsp = pCreatePropertySheetPageW(&page.u.pageW);
if (page.u.pageW.dwSize < PROPSHEETPAGEW_V1_SIZE)
ok(hpsp == NULL, "Expected failure, size %u\n", page.u.pageW.dwSize);
@@ -1132,13 +1136,25 @@ static void test_CreatePropertySheetPage(void)
if (hpsp)
{
page.release_called = 0;
- ret = DestroyPropertySheetPage(hpsp);
+ ret = pDestroyPropertySheetPage(hpsp);
ok(ret, "Failed to destroy a page\n");
ok(page.release_called == 1, "Expected RELEASE callback message\n");
}
}
}
+static void init_functions(void)
+{
+ HMODULE hComCtl32 = LoadLibraryA("comctl32.dll");
+
+#define X(f) p##f = (void*)GetProcAddress(hComCtl32, #f);
+ X(CreatePropertySheetPageA);
+ X(CreatePropertySheetPageW);
+ X(DestroyPropertySheetPage);
+ X(PropertySheetA);
+#undef X
+}
+
START_TEST(propsheet)
{
detect_locale();
@@ -1150,6 +1166,8 @@ START_TEST(propsheet)
SetProcessDefaultLayout(LAYOUT_RTL);
}
+ init_functions();
+
test_title();
test_nopage();
test_disableowner();
diff --git a/dlls/comctl32/tests/rebar.c b/dlls/comctl32/tests/rebar.c
index 6430ba2b61..2ff4cebdf9 100644
--- a/dlls/comctl32/tests/rebar.c
+++ b/dlls/comctl32/tests/rebar.c
@@ -30,6 +30,9 @@
#include "wine/test.h"
+static BOOL (WINAPI *pImageList_Destroy)(HIMAGELIST);
+static HIMAGELIST (WINAPI *pImageList_LoadImageA)(HINSTANCE, LPCSTR, int, int, COLORREF, UINT, UINT);
+
static RECT height_change_notify_rect;
static HWND hMainWnd;
static int system_font_height;
@@ -577,7 +580,7 @@ static void test_layout(void)
check_sizes();
/* an image will increase the band height */
- himl = ImageList_LoadImageA(GetModuleHandleA("comctl32"), MAKEINTRESOURCEA(121), 24, 2,
+ himl = pImageList_LoadImageA(GetModuleHandleA("comctl32"), MAKEINTRESOURCEA(121), 24, 2,
CLR_NONE, IMAGE_BITMAP, LR_DEFAULTCOLOR);
ri.cbSize = sizeof(ri);
ri.fMask = RBIM_IMAGELIST;
@@ -658,7 +661,7 @@ static void test_layout(void)
rbsize_results_free();
DestroyWindow(hRebar);
- ImageList_Destroy(himl);
+ pImageList_Destroy(himl);
}
#if 0 /* use this to generate more tests */
@@ -1125,26 +1128,22 @@ static void test_notification(void)
DestroyWindow(rebar);
}
+static void init_functions(void)
+{
+ HMODULE hComCtl32 = LoadLibraryA("comctl32.dll");
+
+#define X(f) p##f = (void*)GetProcAddress(hComCtl32, #f);
+ X(ImageList_Destroy);
+ X(ImageList_LoadImageA);
+#undef X
+}
+
START_TEST(rebar)
{
- HMODULE hComctl32;
- BOOL (WINAPI *pInitCommonControlsEx)(const INITCOMMONCONTROLSEX*);
- INITCOMMONCONTROLSEX iccex;
MSG msg;
init_system_font_height();
-
- /* LoadLibrary is needed. This file has no reference to functions in comctl32 */
- hComctl32 = LoadLibraryA("comctl32.dll");
- pInitCommonControlsEx = (void*)GetProcAddress(hComctl32, "InitCommonControlsEx");
- if (!pInitCommonControlsEx)
- {
- win_skip("InitCommonControlsEx() is missing. Skipping the tests\n");
- return;
- }
- iccex.dwSize = sizeof(iccex);
- iccex.dwICC = ICC_COOL_CLASSES;
- pInitCommonControlsEx(&iccex);
+ init_functions();
hMainWnd = create_parent_window();
@@ -1169,6 +1168,4 @@ out:
DispatchMessageA(&msg);
}
DestroyWindow(hMainWnd);
-
- FreeLibrary(hComctl32);
}
diff --git a/dlls/comctl32/tests/status.c b/dlls/comctl32/tests/status.c
index a394beb42a..f2fe1abf98 100644
--- a/dlls/comctl32/tests/status.c
+++ b/dlls/comctl32/tests/status.c
@@ -43,6 +43,8 @@ static INT g_dpisize;
static int g_wmdrawitm_ctr;
static WNDPROC g_wndproc_saved;
+static BOOL (WINAPI *pInitCommonControlsEx)(const INITCOMMONCONTROLSEX*);
+
static HWND create_status_control(DWORD style, DWORD exstyle)
{
HWND hWndStatus;
@@ -584,17 +586,32 @@ static void test_notify(void)
ok(g_got_contextmenu, "WM_RBUTTONUP did not activate the context menu!\n");
}
+static void init_functions(void)
+{
+ HMODULE hComCtl32 = LoadLibraryA("comctl32.dll");
+
+#define X(f) p##f = (void*)GetProcAddress(hComCtl32, #f);
+ X(InitCommonControlsEx);
+#undef X
+}
+
START_TEST(status)
{
+ INITCOMMONCONTROLSEX iccex;
+
+ init_functions();
+
hinst = GetModuleHandleA(NULL);
+ iccex.dwSize = sizeof(iccex);
+ iccex.dwICC = ICC_BAR_CLASSES;
+ pInitCommonControlsEx(&iccex);
+
g_hMainWnd = CreateWindowExA(0, "static", "", WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, CW_USEDEFAULT, 672+2*GetSystemMetrics(SM_CXSIZEFRAME),
226+GetSystemMetrics(SM_CYCAPTION)+2*GetSystemMetrics(SM_CYSIZEFRAME),
NULL, NULL, GetModuleHandleA(NULL), 0);
- InitCommonControls();
-
register_subclass();
test_status_control();
diff --git a/dlls/comctl32/tests/subclass.c b/dlls/comctl32/tests/subclass.c
index 720c68e28d..abe63a1547 100644
--- a/dlls/comctl32/tests/subclass.c
+++ b/dlls/comctl32/tests/subclass.c
@@ -286,7 +286,7 @@ static BOOL init_function_pointers(void)
HMODULE hmod;
void *ptr;
- hmod = GetModuleHandleA("comctl32.dll");
+ hmod = LoadLibraryA("comctl32.dll");
ok(hmod != NULL, "got %p\n", hmod);
/* Functions have to be loaded by ordinal. Only XP and W2K3 export
diff --git a/dlls/comctl32/tests/tab.c b/dlls/comctl32/tests/tab.c
index 72165c8100..0bfbb38a58 100644
--- a/dlls/comctl32/tests/tab.c
+++ b/dlls/comctl32/tests/tab.c
@@ -40,6 +40,11 @@
#define TabWidthPadded(padd_x, num) (DEFAULT_MIN_TAB_WIDTH - (TAB_PADDING_X - (padd_x)) * num)
+static HIMAGELIST (WINAPI *pImageList_Create)(INT,INT,UINT,INT,INT);
+static BOOL (WINAPI *pImageList_Destroy)(HIMAGELIST);
+static INT (WINAPI *pImageList_GetImageCount)(HIMAGELIST);
+static INT (WINAPI *pImageList_ReplaceIcon)(HIMAGELIST,INT,HICON);
+
static void CheckSize(HWND hwnd, INT width, INT height, const char *msg, int line)
{
RECT r;
@@ -470,7 +475,7 @@ static void test_tab(INT nMinTabWidth)
{
HWND hwTab;
RECT rTab;
- HIMAGELIST himl = ImageList_Create(21, 21, ILC_COLOR, 3, 4);
+ HIMAGELIST himl = pImageList_Create(21, 21, ILC_COLOR, 3, 4);
SIZE size;
HDC hdc;
HFONT hOldFont;
@@ -608,7 +613,7 @@ static void test_tab(INT nMinTabWidth)
DestroyWindow (hwTab);
- ImageList_Destroy(himl);
+ pImageList_Destroy(himl);
}
static void test_width(void)
@@ -1165,12 +1170,12 @@ static void test_removeimage(void)
INT i;
TCITEMA item;
HICON hicon;
- HIMAGELIST himl = ImageList_Create(16, 16, ILC_COLOR, 3, 4);
+ HIMAGELIST himl = pImageList_Create(16, 16, ILC_COLOR, 3, 4);
hicon = CreateIcon(NULL, 16, 16, 1, 1, bits, bits);
- ImageList_AddIcon(himl, hicon);
- ImageList_AddIcon(himl, hicon);
- ImageList_AddIcon(himl, hicon);
+ pImageList_ReplaceIcon(himl, -1, hicon);
+ pImageList_ReplaceIcon(himl, -1, hicon);
+ pImageList_ReplaceIcon(himl, -1, hicon);
hwTab = create_tabcontrol(TCS_FIXEDWIDTH, TCIF_TEXT|TCIF_IMAGE);
SendMessageA(hwTab, TCM_SETIMAGELIST, 0, (LPARAM)himl);
@@ -1185,7 +1190,8 @@ static void test_removeimage(void)
/* remove image middle image */
SendMessageA(hwTab, TCM_REMOVEIMAGE, 1, 0);
- expect(2, ImageList_GetImageCount(himl));
+ i = pImageList_GetImageCount(himl);
+ ok(i == 2, "Unexpected image count %d.\n", i);
item.iImage = -1;
SendMessageA(hwTab, TCM_GETITEMA, 0, (LPARAM)&item);
expect(0, item.iImage);
@@ -1197,7 +1203,8 @@ static void test_removeimage(void)
expect(1, item.iImage);
/* remove first image */
SendMessageA(hwTab, TCM_REMOVEIMAGE, 0, 0);
- expect(1, ImageList_GetImageCount(himl));
+ i = pImageList_GetImageCount(himl);
+ ok(i == 1, "Unexpected image count %d.\n", i);
item.iImage = 0;
SendMessageA(hwTab, TCM_GETITEMA, 0, (LPARAM)&item);
expect(-1, item.iImage);
@@ -1209,7 +1216,8 @@ static void test_removeimage(void)
expect(0, item.iImage);
/* remove the last one */
SendMessageA(hwTab, TCM_REMOVEIMAGE, 0, 0);
- expect(0, ImageList_GetImageCount(himl));
+ i = pImageList_GetImageCount(himl);
+ ok(i == 0, "Unexpected image count %d.\n", i);
for(i = 0; i < 3; i++) {
item.iImage = 0;
SendMessageA(hwTab, TCM_GETITEMA, i, (LPARAM)&item);
@@ -1217,7 +1225,7 @@ static void test_removeimage(void)
}
DestroyWindow(hwTab);
- ImageList_Destroy(himl);
+ pImageList_Destroy(himl);
DestroyIcon(hicon);
}
@@ -1423,6 +1431,18 @@ static void test_create(void)
}
}
+static void init_functions(void)
+{
+ HMODULE hComCtl32 = LoadLibraryA("comctl32.dll");
+
+#define X(f) p##f = (void*)GetProcAddress(hComCtl32, #f);
+ X(ImageList_Create);
+ X(ImageList_Destroy);
+ X(ImageList_GetImageCount);
+ X(ImageList_ReplaceIcon);
+#undef X
+}
+
START_TEST(tab)
{
LOGFONTA logfont;
@@ -1434,7 +1454,7 @@ START_TEST(tab)
logfont.lfCharSet = ANSI_CHARSET;
hFont = CreateFontIndirectA(&logfont);
- InitCommonControls();
+ init_functions();
test_width();
diff --git a/dlls/comctl32/tests/toolbar.c b/dlls/comctl32/tests/toolbar.c
index 2c1b789484..38b8339378 100644
--- a/dlls/comctl32/tests/toolbar.c
+++ b/dlls/comctl32/tests/toolbar.c
@@ -37,6 +37,13 @@
#define PARENT_SEQ_INDEX 0
#define NUM_MSG_SEQUENCES 1
+static HWND (WINAPI *pCreateToolbarEx)(HWND, DWORD, UINT, INT, HINSTANCE, UINT_PTR, const TBBUTTON *,
+ INT, INT, INT, INT, INT, UINT);
+static BOOL (WINAPI *pImageList_Destroy)(HIMAGELIST);
+static INT (WINAPI *pImageList_GetImageCount)(HIMAGELIST);
+static BOOL (WINAPI *pImageList_GetIconSize)(HIMAGELIST, int *, int *);
+static HIMAGELIST (WINAPI *pImageList_LoadImageA)(HINSTANCE, LPCSTR, int, int, COLORREF, UINT, UINT);
+
static struct msg_sequence *sequences[NUM_MSG_SEQUENCES];
static HWND hMainWnd;
@@ -376,7 +383,7 @@ static void basic_test(void)
MakeButton(buttons+3, 1003, TBSTYLE_SEP|TBSTYLE_GROUP, 0);
MakeButton(buttons+6, 1006, TBSTYLE_SEP, 0);
- hToolbar = CreateToolbarEx(hMainWnd,
+ hToolbar = pCreateToolbarEx(hMainWnd,
WS_VISIBLE | WS_CLIPCHILDREN | CCS_TOP |
WS_CHILD | TBSTYLE_LIST,
100,
@@ -482,8 +489,8 @@ static void add_128x15_bitmap(HWND hToolbar, int nCmds)
HIMAGELIST himl = (HIMAGELIST)SendMessageA(hToolbar, TB_GETIMAGELIST, 0, 0); \
ok(himl != NULL, "No image list\n"); \
if (himl != NULL) {\
- ok(ImageList_GetImageCount(himl) == count, "Images count mismatch - %d vs %d\n", count, ImageList_GetImageCount(himl)); \
- ImageList_GetIconSize(himl, &cx, &cy); \
+ ok(pImageList_GetImageCount(himl) == count, "Images count mismatch - %d vs %d\n", count, pImageList_GetImageCount(himl)); \
+ pImageList_GetIconSize(himl, &cx, &cy); \
ok(cx == dx && cy == dy, "Icon size mismatch - %dx%d vs %dx%d\n", dx, dy, cx, cy); \
} \
}
@@ -515,11 +522,11 @@ static void test_add_bitmap(void)
himl = (HIMAGELIST)SendMessageA(hToolbar, TB_GETIMAGELIST, 0, 0);
ok(himl != NULL, "Got %p\n", himl);
- ret = ImageList_GetIconSize(himl, &cx, &cy);
+ ret = pImageList_GetIconSize(himl, &cx, &cy);
ok(ret, "Got %d\n", ret);
ok(cx == cy, "Got %d x %d\n", cx, cy);
- count = ImageList_GetImageCount(himl);
+ count = pImageList_GetImageCount(himl);
/* Image count */
switch (id)
@@ -688,7 +695,7 @@ static void test_add_bitmap(void)
/* the control can add bitmaps to an existing image list */
rebuild_toolbar(&hToolbar);
- himl = ImageList_LoadImageA(GetModuleHandleA(NULL), (LPCSTR)MAKEINTRESOURCE(IDB_BITMAP_80x15),
+ himl = pImageList_LoadImageA(GetModuleHandleA(NULL), (LPCSTR)MAKEINTRESOURCE(IDB_BITMAP_80x15),
20, 2, CLR_NONE, IMAGE_BITMAP, LR_DEFAULTCOLOR);
ok(himl != NULL, "failed to create imagelist\n");
ok(SendMessageA(hToolbar, TB_SETIMAGELIST, 0, (LPARAM)himl) == 0, "TB_SETIMAGELIST failed\n");
@@ -709,7 +716,7 @@ static void test_add_bitmap(void)
addbmp.hInst = HINST_COMMCTRL;
addbmp.nID = IDB_STD_SMALL_COLOR;
rebuild_toolbar(&hToolbar);
- ImageList_Destroy(himl);
+ pImageList_Destroy(himl);
ok(SendMessageA(hToolbar, TB_ADDBITMAP, 1, (LPARAM)&addbmp) == 0, "TB_ADDBITMAP - unexpected return\n");
CHECK_IMAGELIST(15, 16, 16);
@@ -1506,14 +1513,14 @@ static void test_sizes(void)
/* TB_SETIMAGELIST always changes the height but the width only if necessary */
SendMessageA(hToolbar, TB_SETBUTTONSIZE, 0, MAKELONG(100, 100));
- himl = ImageList_LoadImageA(GetModuleHandleA(NULL), (LPCSTR)MAKEINTRESOURCE(IDB_BITMAP_80x15),
+ himl = pImageList_LoadImageA(GetModuleHandleA(NULL), (LPCSTR)MAKEINTRESOURCE(IDB_BITMAP_80x15),
20, 2, CLR_NONE, IMAGE_BITMAP, LR_DEFAULTCOLOR);
ok(SendMessageA(hToolbar, TB_SETIMAGELIST, 0, (LPARAM)himl) == 0, "TB_SETIMAGELIST failed\n");
check_button_size(hToolbar, 100, 21);
SendMessageA(hToolbar, TB_SETBUTTONSIZE, 0, MAKELONG(100, 100));
check_button_size(hToolbar, 100, 100);
/* But there are no update when we change imagelist, and image sizes are the same */
- himl2 = ImageList_LoadImageA(GetModuleHandleA(NULL), (LPCSTR)MAKEINTRESOURCE(IDB_BITMAP_128x15),
+ himl2 = pImageList_LoadImageA(GetModuleHandleA(NULL), (LPCSTR)MAKEINTRESOURCE(IDB_BITMAP_128x15),
20, 2, CLR_NONE, IMAGE_BITMAP, LR_DEFAULTCOLOR);
ok(SendMessageA(hToolbar, TB_SETIMAGELIST, 0, (LRESULT)himl2) == (LRESULT)himl, "TB_SETIMAGELIST failed\n");
check_button_size(hToolbar, 100, 100);
@@ -1538,8 +1545,8 @@ static void test_sizes(void)
check_sizes_todo(0x30); /* some small problems with BTNS_AUTOSIZE button sizes */
rebuild_toolbar(&hToolbar);
- ImageList_Destroy(himl);
- ImageList_Destroy(himl2);
+ pImageList_Destroy(himl);
+ pImageList_Destroy(himl2);
SendMessageA(hToolbar, TB_ADDBUTTONSA, 1, (LPARAM)&buttons3[3]);
check_button_size(hToolbar, 7 + string_width(STRING2), 23 + fontheight);
@@ -1823,43 +1830,43 @@ static void test_createtoolbarex(void)
TBBUTTON btns[3];
ZeroMemory(&btns, sizeof(btns));
- hToolbar = CreateToolbarEx(hMainWnd, WS_VISIBLE, 1, 16, GetModuleHandleA(NULL), IDB_BITMAP_128x15, btns,
+ hToolbar = pCreateToolbarEx(hMainWnd, WS_VISIBLE, 1, 16, GetModuleHandleA(NULL), IDB_BITMAP_128x15, btns,
3, 20, 20, 16, 16, sizeof(TBBUTTON));
CHECK_IMAGELIST(16, 20, 20);
compare((int)SendMessageA(hToolbar, TB_GETBUTTONSIZE, 0, 0), 0x1a001b, "%x");
DestroyWindow(hToolbar);
- hToolbar = CreateToolbarEx(hMainWnd, WS_VISIBLE, 1, 16, GetModuleHandleA(NULL), IDB_BITMAP_128x15, btns,
+ hToolbar = pCreateToolbarEx(hMainWnd, WS_VISIBLE, 1, 16, GetModuleHandleA(NULL), IDB_BITMAP_128x15, btns,
3, 4, 4, 16, 16, sizeof(TBBUTTON));
CHECK_IMAGELIST(32, 4, 4);
compare((int)SendMessageA(hToolbar, TB_GETBUTTONSIZE, 0, 0), 0xa000b, "%x");
DestroyWindow(hToolbar);
- hToolbar = CreateToolbarEx(hMainWnd, WS_VISIBLE, 1, 16, GetModuleHandleA(NULL), IDB_BITMAP_128x15, btns,
+ hToolbar = pCreateToolbarEx(hMainWnd, WS_VISIBLE, 1, 16, GetModuleHandleA(NULL), IDB_BITMAP_128x15, btns,
3, 0, 8, 12, 12, sizeof(TBBUTTON));
CHECK_IMAGELIST(16, 12, 12);
compare((int)SendMessageA(hToolbar, TB_GETBUTTONSIZE, 0, 0), 0x120013, "%x");
DestroyWindow(hToolbar);
- hToolbar = CreateToolbarEx(hMainWnd, WS_VISIBLE, 1, 16, GetModuleHandleA(NULL), IDB_BITMAP_128x15, btns,
+ hToolbar = pCreateToolbarEx(hMainWnd, WS_VISIBLE, 1, 16, GetModuleHandleA(NULL), IDB_BITMAP_128x15, btns,
3, -1, 8, 12, 12, sizeof(TBBUTTON));
CHECK_IMAGELIST(16, 12, 8);
compare((int)SendMessageA(hToolbar, TB_GETBUTTONSIZE, 0, 0), 0xe0013, "%x");
DestroyWindow(hToolbar);
- hToolbar = CreateToolbarEx(hMainWnd, WS_VISIBLE, 1, 16, GetModuleHandleA(NULL), IDB_BITMAP_128x15, btns,
+ hToolbar = pCreateToolbarEx(hMainWnd, WS_VISIBLE, 1, 16, GetModuleHandleA(NULL), IDB_BITMAP_128x15, btns,
3, -1, 8, -1, 12, sizeof(TBBUTTON));
CHECK_IMAGELIST(16, 16, 8);
compare((int)SendMessageA(hToolbar, TB_GETBUTTONSIZE, 0, 0), 0xe0017, "%x");
DestroyWindow(hToolbar);
- hToolbar = CreateToolbarEx(hMainWnd, WS_VISIBLE, 1, 16, GetModuleHandleA(NULL), IDB_BITMAP_128x15, btns,
+ hToolbar = pCreateToolbarEx(hMainWnd, WS_VISIBLE, 1, 16, GetModuleHandleA(NULL), IDB_BITMAP_128x15, btns,
3, 0, 0, 12, -1, sizeof(TBBUTTON));
CHECK_IMAGELIST(16, 12, 16);
compare((int)SendMessageA(hToolbar, TB_GETBUTTONSIZE, 0, 0), 0x160013, "%x");
DestroyWindow(hToolbar);
- hToolbar = CreateToolbarEx(hMainWnd, WS_VISIBLE, 1, 16, GetModuleHandleA(NULL), IDB_BITMAP_128x15, btns,
+ hToolbar = pCreateToolbarEx(hMainWnd, WS_VISIBLE, 1, 16, GetModuleHandleA(NULL), IDB_BITMAP_128x15, btns,
3, 0, 0, 0, 12, sizeof(TBBUTTON));
CHECK_IMAGELIST(16, 16, 16);
compare((int)SendMessageA(hToolbar, TB_GETBUTTONSIZE, 0, 0), 0x160017, "%x");
@@ -1928,7 +1935,7 @@ static void test_setrows(void)
MakeButton(buttons+i, 1000+i, TBSTYLE_FLAT | TBSTYLE_CHECKGROUP, 0);
/* Test 1 - 9 buttons */
- hToolbar = CreateToolbarEx(hMainWnd,
+ hToolbar = pCreateToolbarEx(hMainWnd,
WS_VISIBLE | WS_CLIPCHILDREN | WS_CHILD | CCS_NORESIZE | CCS_NOPARENTALIGN
| CCS_NOMOVEY | CCS_TOP,
0,
@@ -2047,7 +2054,7 @@ static void test_get_set_style(void)
MakeButton(buttons+3, 1003, TBSTYLE_SEP|TBSTYLE_GROUP, 0);
MakeButton(buttons+6, 1006, TBSTYLE_SEP, 0);
- hToolbar = CreateToolbarEx(hMainWnd,
+ hToolbar = pCreateToolbarEx(hMainWnd,
WS_VISIBLE | WS_CLIPCHILDREN | CCS_TOP |
WS_CHILD | TBSTYLE_LIST,
100,
@@ -2507,6 +2514,19 @@ static void test_imagelist(void)
DestroyWindow(hwnd);
}
+static void init_functions(void)
+{
+ HMODULE hComCtl32 = LoadLibraryA("comctl32.dll");
+
+#define X(f) p##f = (void*)GetProcAddress(hComCtl32, #f);
+ X(CreateToolbarEx);
+ X(ImageList_GetIconSize);
+ X(ImageList_GetImageCount);
+ X(ImageList_LoadImageA);
+ X(ImageList_Destroy);
+#undef X
+}
+
START_TEST(toolbar)
{
WNDCLASSA wc;
@@ -2514,9 +2534,8 @@ START_TEST(toolbar)
RECT rc;
init_msg_sequences(sequences, NUM_MSG_SEQUENCES);
+ init_functions();
- InitCommonControls();
-
wc.style = CS_HREDRAW | CS_VREDRAW;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
diff --git a/dlls/comctl32/tests/tooltips.c b/dlls/comctl32/tests/tooltips.c
index be6ab400a0..7e82604376 100644
--- a/dlls/comctl32/tests/tooltips.c
+++ b/dlls/comctl32/tests/tooltips.c
@@ -1057,7 +1057,7 @@ static void test_margin(void)
START_TEST(tooltips)
{
- InitCommonControls();
+ LoadLibraryA("comctl32.dll");
test_create_tooltip();
test_customdraw();
diff --git a/dlls/comctl32/tests/trackbar.c b/dlls/comctl32/tests/trackbar.c
index 9cc8b277ee..31845d10e0 100644
--- a/dlls/comctl32/tests/trackbar.c
+++ b/dlls/comctl32/tests/trackbar.c
@@ -1296,8 +1296,9 @@ static void test_create(void)
START_TEST(trackbar)
{
+ LoadLibraryA("comctl32.dll");
+
init_msg_sequences(sequences, NUM_MSG_SEQUENCE);
- InitCommonControls();
/* create parent window */
hWndParent = create_parent_window();
diff --git a/dlls/comctl32/tests/treeview.c b/dlls/comctl32/tests/treeview.c
index a014625a0a..51404af089 100644
--- a/dlls/comctl32/tests/treeview.c
+++ b/dlls/comctl32/tests/treeview.c
@@ -33,6 +33,7 @@
#include "v6util.h"
#include "msg.h"
+static BOOL (WINAPI *pInitCommonControlsEx)(const INITCOMMONCONTROLSEX*);
static const char *TEST_CALLBACK_TEXT = "callback_text";
static TVITEMA g_item_expanding, g_item_expanded;
@@ -2666,27 +2667,28 @@ static void test_right_click(void)
DestroyWindow(hTree);
}
+static void init_functions(void)
+{
+ HMODULE hComCtl32 = LoadLibraryA("comctl32.dll");
+
+#define X(f) p##f = (void*)GetProcAddress(hComCtl32, #f);
+ X(InitCommonControlsEx);
+#undef X
+}
+
START_TEST(treeview)
{
- HMODULE hComctl32;
- BOOL (WINAPI *pInitCommonControlsEx)(const INITCOMMONCONTROLSEX*);
+ INITCOMMONCONTROLSEX iccex;
+ ULONG_PTR ctx_cookie;
+ HANDLE hCtx;
WNDCLASSA wc;
MSG msg;
- ULONG_PTR ctx_cookie;
- HANDLE hCtx;
-
- hComctl32 = GetModuleHandleA("comctl32.dll");
- pInitCommonControlsEx = (void*)GetProcAddress(hComctl32, "InitCommonControlsEx");
- if (pInitCommonControlsEx)
- {
- INITCOMMONCONTROLSEX iccex;
- iccex.dwSize = sizeof(iccex);
- iccex.dwICC = ICC_TREEVIEW_CLASSES;
- pInitCommonControlsEx(&iccex);
- }
- else
- InitCommonControls();
+ init_functions();
+
+ iccex.dwSize = sizeof(iccex);
+ iccex.dwICC = ICC_TREEVIEW_CLASSES;
+ pInitCommonControlsEx(&iccex);
init_msg_sequences(sequences, NUM_MSG_SEQUENCES);
init_msg_sequences(item_sequence, 1);
diff --git a/dlls/comctl32/tests/updown.c b/dlls/comctl32/tests/updown.c
index 639e7802a9..f549c41583 100644
--- a/dlls/comctl32/tests/updown.c
+++ b/dlls/comctl32/tests/updown.c
@@ -63,6 +63,8 @@
static HWND parent_wnd, g_edit;
+static HWND (WINAPI *pCreateUpDownControl)(DWORD, INT, INT, INT, INT,
+ HWND, INT, HINSTANCE, HWND, INT, INT, INT);
static BOOL (WINAPI *pSetWindowSubclass)(HWND, SUBCLASSPROC, UINT_PTR, DWORD_PTR);
static struct msg_sequence *sequences[NUM_MSG_SEQUENCES];
@@ -882,7 +884,7 @@ static void test_CreateUpDownControl(void)
RECT rect;
GetClientRect(parent_wnd, &rect);
- updown = CreateUpDownControl(WS_CHILD | WS_BORDER | WS_VISIBLE,
+ updown = pCreateUpDownControl(WS_CHILD | WS_BORDER | WS_VISIBLE,
0, 0, rect.right, rect.bottom, parent_wnd, 1, GetModuleHandleA(NULL), g_edit, 100, 10, 50);
ok(updown != NULL, "Failed to create control.\n");
@@ -898,13 +900,22 @@ static void test_CreateUpDownControl(void)
DestroyWindow(updown);
}
-START_TEST(updown)
+static void init_functions(void)
{
- HMODULE mod = GetModuleHandleA("comctl32.dll");
+ HMODULE hComCtl32 = LoadLibraryA("comctl32.dll");
+
+#define X(f) p##f = (void*)GetProcAddress(hComCtl32, #f);
+#define X2(f, ord) p##f = (void*)GetProcAddress(hComCtl32, (const char *)ord);
+ X(CreateUpDownControl);
+ X2(SetWindowSubclass, 410);
+#undef X
+#undef X2
+}
- pSetWindowSubclass = (void*)GetProcAddress(mod, (LPSTR)410);
+START_TEST(updown)
+{
+ init_functions();
- InitCommonControls();
init_msg_sequences(sequences, NUM_MSG_SEQUENCES);
parent_wnd = create_parent_window();
--
2.15.1