From: Esme Povirk esme@codeweavers.com
--- dlls/comctl32/listbox.c | 5 +++++ dlls/comctl32/tests/listbox.c | 4 ++++ 2 files changed, 9 insertions(+)
diff --git a/dlls/comctl32/listbox.c b/dlls/comctl32/listbox.c index 0ae511f7d70..3d55fc2ad83 100644 --- a/dlls/comctl32/listbox.c +++ b/dlls/comctl32/listbox.c @@ -2991,6 +2991,11 @@ static LRESULT CALLBACK LISTBOX_WindowProc( HWND hwnd, UINT msg, WPARAM wParam, case WM_NCPAINT: return LISTBOX_NCPaint( descr, (HRGN)wParam );
+ case WM_GETOBJECT: + if ((LONG)lParam == OBJID_QUERYCLASSNAMEIDX) + return 0x10000; + break; + case WM_SIZE: LISTBOX_UpdateSize( descr ); return 0; diff --git a/dlls/comctl32/tests/listbox.c b/dlls/comctl32/tests/listbox.c index 4012811473c..f507ba108f8 100644 --- a/dlls/comctl32/tests/listbox.c +++ b/dlls/comctl32/tests/listbox.c @@ -372,6 +372,7 @@ static void test_item_height(void) HFONT font; HWND hLB; HDC hdc; + DWORD idx;
hLB = create_listbox (0, 0); ok ((hdc = GetDCEx( hLB, 0, DCX_CACHE )) != 0, "Can't get hdc\n"); @@ -379,6 +380,9 @@ static void test_item_height(void) ok (GetTextMetricsA( hdc, &tm ), "Can't read font metrics\n"); ReleaseDC( hLB, hdc);
+ idx = SendMessageA(hLB, WM_GETOBJECT, 0, OBJID_QUERYCLASSNAMEIDX); + ok(idx == 0x10000, "Got index 0x%08lx\n", idx); + ok (SendMessageA(hLB, WM_SETFONT, (WPARAM)font, 0) == 0, "Can't set font\n");
itemHeight = SendMessageA(hLB, LB_GETITEMHEIGHT, 0, 0);
From: Esme Povirk esme@codeweavers.com
--- dlls/comctl32/static.c | 5 +++++ dlls/comctl32/tests/static.c | 4 ++++ 2 files changed, 9 insertions(+)
diff --git a/dlls/comctl32/static.c b/dlls/comctl32/static.c index 29a0498ba09..605b75612e8 100644 --- a/dlls/comctl32/static.c +++ b/dlls/comctl32/static.c @@ -587,6 +587,11 @@ static LRESULT CALLBACK STATIC_WindowProc( HWND hwnd, UINT uMsg, WPARAM wParam, } break;
+ case WM_GETOBJECT: + if ((LONG)lParam == OBJID_QUERYCLASSNAMEIDX) + return 0x10003; + break; + case WM_SETFONT: if (hasTextStyle( full_style )) { diff --git a/dlls/comctl32/tests/static.c b/dlls/comctl32/tests/static.c index 551aca2720f..d0c1da8818f 100644 --- a/dlls/comctl32/tests/static.c +++ b/dlls/comctl32/tests/static.c @@ -135,6 +135,10 @@ static void test_set_text(void) { HWND hStatic = create_static(SS_SIMPLE); char buffA[10]; + DWORD idx; + + idx = SendMessageA(hStatic, WM_GETOBJECT, 0, OBJID_QUERYCLASSNAMEIDX); + ok(idx == 0x10003, "Got index 0x%08lx\n", idx);
GetWindowTextA(hStatic, buffA, sizeof(buffA)); ok(!strcmp(buffA, "Test"), "got wrong text %s\n", buffA);
From: Esme Povirk esme@codeweavers.com
--- dlls/comctl32/edit.c | 5 +++++ dlls/comctl32/tests/edit.c | 5 +++++ 2 files changed, 10 insertions(+)
diff --git a/dlls/comctl32/edit.c b/dlls/comctl32/edit.c index c1d35fda3d3..b8f995057f4 100644 --- a/dlls/comctl32/edit.c +++ b/dlls/comctl32/edit.c @@ -4824,6 +4824,11 @@ static LRESULT CALLBACK EDIT_WindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPAR result = (LRESULT)es->font; break;
+ case WM_GETOBJECT: + if ((LONG)lParam == OBJID_QUERYCLASSNAMEIDX) + return 0x10004; + break; + case WM_GETTEXT: result = (LRESULT)EDIT_WM_GetText(es, (INT)wParam, (LPWSTR)lParam); break; diff --git a/dlls/comctl32/tests/edit.c b/dlls/comctl32/tests/edit.c index ec74311909b..d0a9d1901a4 100644 --- a/dlls/comctl32/tests/edit.c +++ b/dlls/comctl32/tests/edit.c @@ -768,6 +768,7 @@ static void test_edit_control_1(void) MSG msMessage; int i; LONG r; + DWORD idx;
msMessage.message = WM_KEYDOWN;
@@ -775,6 +776,10 @@ static void test_edit_control_1(void) hwEdit = create_editcontrol(ES_AUTOHSCROLL | ES_AUTOVSCROLL, 0); r = get_edit_style(hwEdit); ok(r == (ES_AUTOVSCROLL | ES_AUTOHSCROLL), "Wrong style expected 0xc0 got: 0x%lx\n", r); + + idx = SendMessageA(hwEdit, WM_GETOBJECT, 0, OBJID_QUERYCLASSNAMEIDX); + ok(idx == 0x10004, "Got index 0x%08lx\n", idx); + for (i = 0; i < 65535; i++) { msMessage.wParam = i;
From: Esme Povirk esme@codeweavers.com
--- dlls/comctl32/combo.c | 5 +++++ dlls/comctl32/tests/combo.c | 4 ++++ 2 files changed, 9 insertions(+)
diff --git a/dlls/comctl32/combo.c b/dlls/comctl32/combo.c index 09579952f22..1094132826b 100644 --- a/dlls/comctl32/combo.c +++ b/dlls/comctl32/combo.c @@ -1746,6 +1746,11 @@ static LRESULT CALLBACK COMBO_WindowProc( HWND hwnd, UINT message, WPARAM wParam COMBO_Size( lphc ); return TRUE;
+ case WM_GETOBJECT: + if ((LONG)lParam == OBJID_QUERYCLASSNAMEIDX) + return 0x10005; + break; + case WM_SETFONT: COMBO_Font( lphc, (HFONT)wParam, (BOOL)lParam ); return TRUE; diff --git a/dlls/comctl32/tests/combo.c b/dlls/comctl32/tests/combo.c index 0ba720a03ce..ddb3eb4d78a 100644 --- a/dlls/comctl32/tests/combo.c +++ b/dlls/comctl32/tests/combo.c @@ -1236,9 +1236,13 @@ static void test_combo_WS_VSCROLL(void) COMBOBOXINFO info; DWORD style; int i; + DWORD idx;
hCombo = create_combobox(CBS_DROPDOWNLIST);
+ idx = SendMessageA(hCombo, WM_GETOBJECT, 0, OBJID_QUERYCLASSNAMEIDX); + ok(idx == 0x10005, "Got index 0x%08lx\n", idx); + get_combobox_info(hCombo, &info); hList = info.hwndList;
This merge request was approved by Zhiyi Zhang.
Should these be added for user32 controls as well?