[COMCTL32_WINETEST]

* Sync with Wine 1.7.1.

svn path=/trunk/; revision=60118
This commit is contained in:
Amine Khaldi 2013-09-14 20:07:14 +00:00
parent 1db9e9e88a
commit b6535e2e4b
13 changed files with 107 additions and 52 deletions

View file

@ -29,18 +29,13 @@ list(APPEND SOURCE
updown.c updown.c
testlist.c) testlist.c)
add_executable(comctl32_winetest add_executable(comctl32_winetest ${SOURCE} rsrc.rc)
${SOURCE} set_module_type(comctl32_winetest win32cui)
rsrc.rc) add_importlibs(comctl32_winetest comctl32 ole32 user32 gdi32 advapi32 msvcrt kernel32)
add_cd_file(TARGET comctl32_winetest DESTINATION reactos/bin FOR all)
target_link_libraries(comctl32_winetest wine)
if(NOT MSVC) if(NOT MSVC)
# FIXME: http://www.cmake.org/Bug/view.php?id=12998 # FIXME: http://www.cmake.org/Bug/view.php?id=12998
#add_target_compile_flags(comctl32_winetest "-Wno-format") #add_target_compile_flags(comctl32_winetest "-Wno-format")
set_source_files_properties(${SOURCE} PROPERTIES COMPILE_FLAGS "-Wno-format") set_source_files_properties(${SOURCE} PROPERTIES COMPILE_FLAGS "-Wno-format")
endif() endif()
set_module_type(comctl32_winetest win32cui)
add_importlibs(comctl32_winetest comctl32 ole32 user32 gdi32 advapi32 msvcrt kernel32 ntdll)
add_cd_file(TARGET comctl32_winetest DESTINATION reactos/bin FOR all)

View file

@ -280,8 +280,6 @@ static void test_WM_LBUTTONDOWN(void)
GetLastError()); GetLastError());
hList = cbInfo.hwndList; hList = cbInfo.hwndList;
trace("hWnd=%p, hComboEx=%p, hCombo=%p, hList=%p, hEdit=%p\n",
hComboExParentWnd, hComboEx, hCombo, hList, hEdit);
ok(GetFocus() == hComboExParentWnd, ok(GetFocus() == hComboExParentWnd,
"Focus not on Main Window, instead on %p\n", GetFocus()); "Focus not on Main Window, instead on %p\n", GetFocus());

View file

@ -145,8 +145,6 @@ static LRESULT WINAPI datetime_subclass_proc(HWND hwnd, UINT message, WPARAM wPa
LRESULT ret; LRESULT ret;
struct message msg; struct message msg;
trace("datetime: %p, %04x, %08lx, %08lx\n", hwnd, message, wParam, lParam);
msg.message = message; msg.message = message;
msg.flags = sent|wparam|lparam; msg.flags = sent|wparam|lparam;
if (defwndproc_counter) msg.flags |= defwinproc; if (defwndproc_counter) msg.flags |= defwinproc;

View file

@ -412,7 +412,6 @@ static LRESULT WINAPI header_subclass_proc(HWND hwnd, UINT message, WPARAM wPara
LRESULT ret; LRESULT ret;
struct message msg; struct message msg;
trace("header: %p, %04x, %08lx, %08lx\n", hwnd, message, wParam, lParam);
msg.message = message; msg.message = message;
msg.flags = sent|wparam|lparam; msg.flags = sent|wparam|lparam;
if (defwndproc_counter) msg.flags |= defwinproc; if (defwndproc_counter) msg.flags |= defwinproc;
@ -444,8 +443,6 @@ static LRESULT WINAPI parent_wnd_proc(HWND hwnd, UINT message, WPARAM wParam, LP
message != WM_DEVICECHANGE) message != WM_DEVICECHANGE)
{ {
trace("parent: %p, %04x, %08lx, %08lx\n", hwnd, message, wParam, lParam);
msg.message = message; msg.message = message;
msg.flags = sent|wparam|lparam; msg.flags = sent|wparam|lparam;
if (defwndproc_counter) msg.flags |= defwinproc; if (defwndproc_counter) msg.flags |= defwinproc;

View file

@ -30,7 +30,6 @@
//#include <stdarg.h> //#include <stdarg.h>
#include <stdio.h> #include <stdio.h>
#include <assert.h>
#include <windef.h> #include <windef.h>
#include <winbase.h> #include <winbase.h>
@ -655,26 +654,26 @@ static struct my_IStream *impl_from_IStream(IStream *iface)
static HRESULT STDMETHODCALLTYPE Test_Stream_QueryInterface(IStream *iface, REFIID riid, static HRESULT STDMETHODCALLTYPE Test_Stream_QueryInterface(IStream *iface, REFIID riid,
void **ppvObject) void **ppvObject)
{ {
assert(0); ok(0, "unexpected call\n");
return E_NOTIMPL; return E_NOTIMPL;
} }
static ULONG STDMETHODCALLTYPE Test_Stream_AddRef(IStream *iface) static ULONG STDMETHODCALLTYPE Test_Stream_AddRef(IStream *iface)
{ {
assert(0); ok(0, "unexpected call\n");
return 2; return 2;
} }
static ULONG STDMETHODCALLTYPE Test_Stream_Release(IStream *iface) static ULONG STDMETHODCALLTYPE Test_Stream_Release(IStream *iface)
{ {
assert(0); ok(0, "unexpected call\n");
return 1; return 1;
} }
static HRESULT STDMETHODCALLTYPE Test_Stream_Read(IStream *iface, void *pv, ULONG cb, static HRESULT STDMETHODCALLTYPE Test_Stream_Read(IStream *iface, void *pv, ULONG cb,
ULONG *pcbRead) ULONG *pcbRead)
{ {
assert(0); ok(0, "unexpected call\n");
return E_NOTIMPL; return E_NOTIMPL;
} }
@ -707,13 +706,13 @@ static HRESULT STDMETHODCALLTYPE Test_Stream_Write(IStream *iface, const void *p
static HRESULT STDMETHODCALLTYPE Test_Stream_Seek(IStream *iface, LARGE_INTEGER dlibMove, static HRESULT STDMETHODCALLTYPE Test_Stream_Seek(IStream *iface, LARGE_INTEGER dlibMove,
DWORD dwOrigin, ULARGE_INTEGER *plibNewPosition) DWORD dwOrigin, ULARGE_INTEGER *plibNewPosition)
{ {
assert(0); ok(0, "unexpected call\n");
return E_NOTIMPL; return E_NOTIMPL;
} }
static HRESULT STDMETHODCALLTYPE Test_Stream_SetSize(IStream *iface, ULARGE_INTEGER libNewSize) static HRESULT STDMETHODCALLTYPE Test_Stream_SetSize(IStream *iface, ULARGE_INTEGER libNewSize)
{ {
assert(0); ok(0, "unexpected call\n");
return E_NOTIMPL; return E_NOTIMPL;
} }
@ -721,46 +720,46 @@ static HRESULT STDMETHODCALLTYPE Test_Stream_CopyTo(IStream *iface, IStream *pst
ULARGE_INTEGER cb, ULARGE_INTEGER *pcbRead, ULARGE_INTEGER cb, ULARGE_INTEGER *pcbRead,
ULARGE_INTEGER *pcbWritten) ULARGE_INTEGER *pcbWritten)
{ {
assert(0); ok(0, "unexpected call\n");
return E_NOTIMPL; return E_NOTIMPL;
} }
static HRESULT STDMETHODCALLTYPE Test_Stream_Commit(IStream *iface, DWORD grfCommitFlags) static HRESULT STDMETHODCALLTYPE Test_Stream_Commit(IStream *iface, DWORD grfCommitFlags)
{ {
assert(0); ok(0, "unexpected call\n");
return E_NOTIMPL; return E_NOTIMPL;
} }
static HRESULT STDMETHODCALLTYPE Test_Stream_Revert(IStream *iface) static HRESULT STDMETHODCALLTYPE Test_Stream_Revert(IStream *iface)
{ {
assert(0); ok(0, "unexpected call\n");
return E_NOTIMPL; return E_NOTIMPL;
} }
static HRESULT STDMETHODCALLTYPE Test_Stream_LockRegion(IStream *iface, ULARGE_INTEGER libOffset, static HRESULT STDMETHODCALLTYPE Test_Stream_LockRegion(IStream *iface, ULARGE_INTEGER libOffset,
ULARGE_INTEGER cb, DWORD dwLockType) ULARGE_INTEGER cb, DWORD dwLockType)
{ {
assert(0); ok(0, "unexpected call\n");
return E_NOTIMPL; return E_NOTIMPL;
} }
static HRESULT STDMETHODCALLTYPE Test_Stream_UnlockRegion(IStream *iface, ULARGE_INTEGER libOffset, static HRESULT STDMETHODCALLTYPE Test_Stream_UnlockRegion(IStream *iface, ULARGE_INTEGER libOffset,
ULARGE_INTEGER cb, DWORD dwLockType) ULARGE_INTEGER cb, DWORD dwLockType)
{ {
assert(0); ok(0, "unexpected call\n");
return E_NOTIMPL; return E_NOTIMPL;
} }
static HRESULT STDMETHODCALLTYPE Test_Stream_Stat(IStream *iface, STATSTG *pstatstg, static HRESULT STDMETHODCALLTYPE Test_Stream_Stat(IStream *iface, STATSTG *pstatstg,
DWORD grfStatFlag) DWORD grfStatFlag)
{ {
assert(0); ok(0, "unexpected call\n");
return E_NOTIMPL; return E_NOTIMPL;
} }
static HRESULT STDMETHODCALLTYPE Test_Stream_Clone(IStream *iface, IStream **ppstm) static HRESULT STDMETHODCALLTYPE Test_Stream_Clone(IStream *iface, IStream **ppstm)
{ {
assert(0); ok(0, "unexpected call\n");
return E_NOTIMPL; return E_NOTIMPL;
} }

View file

@ -398,8 +398,6 @@ static LRESULT WINAPI parent_wnd_proc(HWND hwnd, UINT message, WPARAM wParam, LP
message != WM_GETICON && message != WM_GETICON &&
message != WM_DEVICECHANGE) message != WM_DEVICECHANGE)
{ {
trace("parent: %p, %04x, %08lx, %08lx\n", hwnd, message, wParam, lParam);
add_message(sequences, PARENT_SEQ_INDEX, &msg); add_message(sequences, PARENT_SEQ_INDEX, &msg);
add_message(sequences, COMBINED_SEQ_INDEX, &msg); add_message(sequences, COMBINED_SEQ_INDEX, &msg);
} }
@ -586,8 +584,6 @@ static LRESULT WINAPI listview_subclass_proc(HWND hwnd, UINT message, WPARAM wPa
LRESULT ret; LRESULT ret;
struct message msg; struct message msg;
trace("listview: %p, %04x, %08lx, %08lx\n", hwnd, message, wParam, lParam);
/* some debug output for style changing */ /* some debug output for style changing */
if ((message == WM_STYLECHANGING || if ((message == WM_STYLECHANGING ||
message == WM_STYLECHANGED) && lParam) message == WM_STYLECHANGED) && lParam)
@ -664,8 +660,6 @@ static LRESULT WINAPI header_subclass_proc(HWND hwnd, UINT message, WPARAM wPara
LRESULT ret; LRESULT ret;
struct message msg; struct message msg;
trace("header: %p, %04x, %08lx, %08lx\n", hwnd, message, wParam, lParam);
msg.message = message; msg.message = message;
msg.flags = sent|wparam|lparam; msg.flags = sent|wparam|lparam;
if (defwndproc_counter) msg.flags |= defwinproc; if (defwndproc_counter) msg.flags |= defwinproc;
@ -1757,8 +1751,8 @@ static LRESULT WINAPI cd_wndproc(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
if(msg == WM_NOTIFY) { if(msg == WM_NOTIFY) {
NMHDR *nmhdr = (PVOID)lp; NMHDR *nmhdr = (PVOID)lp;
if(nmhdr->code == NM_CUSTOMDRAW) { if(nmhdr->code == NM_CUSTOMDRAW) {
NMLVCUSTOMDRAW *nmlvcd = (PVOID)nmhdr; NMLVCUSTOMDRAW *nmlvcd = (NMLVCUSTOMDRAW*)nmhdr;
trace("NMCUSTOMDRAW (0x%.8x)\n", nmlvcd->nmcd.dwDrawStage);
switch(nmlvcd->nmcd.dwDrawStage) { switch(nmlvcd->nmcd.dwDrawStage) {
case CDDS_PREPAINT: case CDDS_PREPAINT:
SetBkColor(nmlvcd->nmcd.hdc, c0ffee); SetBkColor(nmlvcd->nmcd.hdc, c0ffee);

View file

@ -22,6 +22,7 @@
//#include <windows.h> //#include <windows.h>
#include <wine/test.h> #include <wine/test.h>
#include "v6util.h"
static PVOID (WINAPI * pAlloc)(LONG); static PVOID (WINAPI * pAlloc)(LONG);
static PVOID (WINAPI * pReAlloc)(PVOID, LONG); static PVOID (WINAPI * pReAlloc)(PVOID, LONG);
@ -186,13 +187,39 @@ static void test_Alloc(void)
ok(res == TRUE, "Expected TRUE, got %d\n", res); ok(res == TRUE, "Expected TRUE, got %d\n", res);
} }
static void test_TaskDialogIndirect(void)
{
HINSTANCE hinst;
void *ptr, *ptr2;
hinst = LoadLibraryA("comctl32.dll");
ptr = GetProcAddress(hinst, "TaskDialogIndirect");
if (!ptr)
{
win_skip("TaskDialogIndirect not exported by name\n");
return;
}
ptr2 = GetProcAddress(hinst, (const CHAR*)345);
ok(ptr == ptr2, "got wrong pointer for ordinal 345, %p expected %p\n", ptr2, ptr);
}
START_TEST(misc) START_TEST(misc)
{ {
ULONG_PTR ctx_cookie;
HANDLE hCtx;
if(!InitFunctionPtrs()) if(!InitFunctionPtrs())
return; return;
test_GetPtrAW(); test_GetPtrAW();
test_Alloc(); test_Alloc();
FreeLibrary(hComctl32); if (!load_v6_module(&ctx_cookie, &hCtx))
return;
test_TaskDialogIndirect();
unload_v6_module(ctx_cookie, hCtx);
} }

View file

@ -461,8 +461,6 @@ static LRESULT WINAPI parent_wnd_proc(HWND hwnd, UINT message, WPARAM wParam, LP
message != WM_GETICON && message != WM_GETICON &&
message != WM_DEVICECHANGE) message != WM_DEVICECHANGE)
{ {
trace("parent: %p, %04x, %08lx, %08lx\n", hwnd, message, wParam, lParam);
msg.message = message; msg.message = message;
msg.flags = sent|wparam|lparam; msg.flags = sent|wparam|lparam;
if (defwndproc_counter) msg.flags |= defwinproc; if (defwndproc_counter) msg.flags |= defwinproc;
@ -883,7 +881,6 @@ static void test_firstDay(void)
/* check for locale first day */ /* check for locale first day */
if(GetLocaleInfoA(lcid, LOCALE_IFIRSTDAYOFWEEK, b, 128)){ if(GetLocaleInfoA(lcid, LOCALE_IFIRSTDAYOFWEEK, b, 128)){
fday = atoi(b); fday = atoi(b);
trace("fday: %d\n", fday);
res = SendMessage(hwnd, MCM_GETFIRSTDAYOFWEEK, 0, 0); res = SendMessage(hwnd, MCM_GETFIRSTDAYOFWEEK, 0, 0);
expect(fday, res); expect(fday, res);
prev = fday; prev = fday;
@ -1330,6 +1327,9 @@ static void test_scroll(void)
hwnd = create_monthcal_control(0); hwnd = create_monthcal_control(0);
res = SendMessage(hwnd, MCM_GETMONTHDELTA, 0, 0);
expect(2, res);
flush_sequences(sequences, NUM_MSG_SEQUENCES); flush_sequences(sequences, NUM_MSG_SEQUENCES);
/* Setter and Getters for scroll rate */ /* Setter and Getters for scroll rate */
@ -1977,7 +1977,6 @@ static void test_sel_notify(void)
for(i = 0; i < sizeof styles / sizeof styles[0]; i++) for(i = 0; i < sizeof styles / sizeof styles[0]; i++)
{ {
trace("%s\n", styles[i].name);
hwnd = create_monthcal_control(styles[i].val); hwnd = create_monthcal_control(styles[i].val);
SetWindowLongPtr(hwnd, GWLP_ID, SEL_NOTIFY_TEST_ID); SetWindowLongPtr(hwnd, GWLP_ID, SEL_NOTIFY_TEST_ID);
assert(hwnd); assert(hwnd);

View file

@ -77,8 +77,6 @@ static LRESULT WINAPI parent_wnd_proc(HWND hwnd, UINT message, WPARAM wParam, LP
message != WM_GETICON && message != WM_GETICON &&
message != WM_DEVICECHANGE) message != WM_DEVICECHANGE)
{ {
trace("parent: %p, %04x, %08lx, %08lx\n", hwnd, message, wParam, lParam);
msg.message = message; msg.message = message;
msg.flags = sent|wparam|lparam|parent; msg.flags = sent|wparam|lparam|parent;
if (defwndproc_counter) msg.flags |= defwinproc; if (defwndproc_counter) msg.flags |= defwinproc;
@ -127,8 +125,6 @@ static LRESULT WINAPI pager_subclass_proc(HWND hwnd, UINT message, WPARAM wParam
WNDPROC oldproc = (WNDPROC)GetWindowLongPtrA(hwnd, GWLP_USERDATA); WNDPROC oldproc = (WNDPROC)GetWindowLongPtrA(hwnd, GWLP_USERDATA);
struct message msg; struct message msg;
trace("pager: %p, %04x, %08lx, %08lx\n", hwnd, message, wParam, lParam);
msg.message = message; msg.message = message;
msg.flags = sent|wparam|lparam; msg.flags = sent|wparam|lparam;
msg.wParam = wParam; msg.wParam = wParam;

View file

@ -32,6 +32,11 @@
static HWND hProgressParentWnd, hProgressWnd; static HWND hProgressParentWnd, hProgressWnd;
static const char progressTestClass[] = "ProgressBarTestClass"; static const char progressTestClass[] = "ProgressBarTestClass";
static HWND create_progress(DWORD style)
{
return CreateWindowExA(0, PROGRESS_CLASSA, "", WS_VISIBLE | style,
0, 0, 100, 20, NULL, NULL, GetModuleHandleA(NULL), 0);
}
/* try to make sure pending X events have been processed before continuing */ /* try to make sure pending X events have been processed before continuing */
static void flush_events(void) static void flush_events(void)
@ -224,12 +229,40 @@ static void test_redraw(void)
ok(erased, "Progress bar should have erased the background\n"); ok(erased, "Progress bar should have erased the background\n");
} }
static void test_setcolors(void)
{
HWND progress;
COLORREF clr;
progress = create_progress(PBS_SMOOTH);
clr = SendMessageA(progress, PBM_SETBARCOLOR, 0, 0);
ok(clr == CLR_DEFAULT, "got %x\n", clr);
clr = SendMessageA(progress, PBM_SETBARCOLOR, 0, RGB(0, 255, 0));
ok(clr == 0, "got %x\n", clr);
clr = SendMessageA(progress, PBM_SETBARCOLOR, 0, CLR_DEFAULT);
ok(clr == RGB(0, 255, 0), "got %x\n", clr);
clr = SendMessageA(progress, PBM_SETBKCOLOR, 0, 0);
ok(clr == CLR_DEFAULT, "got %x\n", clr);
clr = SendMessageA(progress, PBM_SETBKCOLOR, 0, RGB(255, 0, 0));
ok(clr == 0, "got %x\n", clr);
clr = SendMessageA(progress, PBM_SETBKCOLOR, 0, CLR_DEFAULT);
ok(clr == RGB(255, 0, 0), "got %x\n", clr);
DestroyWindow(progress);
}
START_TEST(progress) START_TEST(progress)
{ {
init(); init();
test_redraw(); test_redraw();
test_setcolors();
cleanup(); cleanup();
} }

View file

@ -669,8 +669,6 @@ static void save_message(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam,
(message < WM_MOUSEFIRST || message > WM_MOUSEHWHEEL) && (message < WM_MOUSEFIRST || message > WM_MOUSEHWHEEL) &&
message != 0x90) message != 0x90)
{ {
/*trace("check_message: %04x, %04x\n", message, receiver);*/
msg.message = message; msg.message = message;
msg.flags = sent|wparam|lparam|id; msg.flags = sent|wparam|lparam|id;
msg.wParam = wParam; msg.wParam = wParam;

View file

@ -126,7 +126,9 @@ static HWND build_toolbar(int nr, HWND hParent)
return hToolbar; return hToolbar;
} }
static LRESULT CALLBACK MyWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) static int g_parent_measureitem;
static LRESULT CALLBACK parent_wndproc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{ {
switch (msg) switch (msg)
{ {
@ -137,6 +139,9 @@ static LRESULT CALLBACK MyWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lPa
GetClientRect(lpnm->hwndFrom, &height_change_notify_rect); GetClientRect(lpnm->hwndFrom, &height_change_notify_rect);
} }
break; break;
case WM_MEASUREITEM:
g_parent_measureitem++;
break;
} }
return DefWindowProcA(hWnd, msg, wParam, lParam); return DefWindowProcA(hWnd, msg, wParam, lParam);
} }
@ -1058,7 +1063,7 @@ static BOOL register_parent_wnd_class(void)
wc.hbrBackground = GetSysColorBrush(COLOR_WINDOW); wc.hbrBackground = GetSysColorBrush(COLOR_WINDOW);
wc.lpszMenuName = NULL; wc.lpszMenuName = NULL;
wc.lpszClassName = "MyTestWnd"; wc.lpszClassName = "MyTestWnd";
wc.lpfnWndProc = MyWndProc; wc.lpfnWndProc = parent_wndproc;
return RegisterClassA(&wc); return RegisterClassA(&wc);
} }
@ -1108,6 +1113,20 @@ static void test_showband(void)
DestroyWindow(hRebar); DestroyWindow(hRebar);
} }
static void test_notification(void)
{
MEASUREITEMSTRUCT mis;
HWND rebar;
rebar = create_rebar_control();
g_parent_measureitem = 0;
SendMessageA(rebar, WM_MEASUREITEM, 0, (LPARAM)&mis);
ok(g_parent_measureitem == 1, "got %d\n", g_parent_measureitem);
DestroyWindow(rebar);
}
START_TEST(rebar) START_TEST(rebar)
{ {
HMODULE hComctl32; HMODULE hComctl32;
@ -1134,6 +1153,7 @@ START_TEST(rebar)
test_bandinfo(); test_bandinfo();
test_colors(); test_colors();
test_showband(); test_showband();
test_notification();
if(!is_font_installed("System") || !is_font_installed("Tahoma")) if(!is_font_installed("System") || !is_font_installed("Tahoma"))
{ {

View file

@ -394,6 +394,7 @@ static LRESULT WINAPI parent_wnd_proc(HWND hwnd, UINT message, WPARAM wParam, LP
if (defwndproc_counter) msg.flags |= defwinproc; if (defwndproc_counter) msg.flags |= defwinproc;
msg.wParam = wParam; msg.wParam = wParam;
msg.lParam = lParam; msg.lParam = lParam;
msg.id = 0;
add_message(sequences, PARENT_SEQ_INDEX, &msg); add_message(sequences, PARENT_SEQ_INDEX, &msg);
} }