diff --git a/dlls/comctl32/dpa.c b/dlls/comctl32/dpa.c index 1fc4e4f46c..618dd2358d 100644 --- a/dlls/comctl32/dpa.c +++ b/dlls/comctl32/dpa.c @@ -815,8 +815,7 @@ INT WINAPI DPA_Search (const HDPA hdpa, LPVOID pFind, INT nStart, else /* (n > 0) */ l = x + 1; } - - return l; + if (uOptions & (DPAS_INSERTBEFORE|DPAS_INSERTAFTER)) return l; } else { /* array is not sorted --> use linear search */ diff --git a/dlls/comctl32/tests/dpa.c b/dlls/comctl32/tests/dpa.c index f0e72f643e..dbc86ff302 100644 --- a/dlls/comctl32/tests/dpa.c +++ b/dlls/comctl32/tests/dpa.c @@ -307,6 +307,10 @@ static void test_dpa(void) i = pDPA_Search(dpa, (PVOID)3, 0, CB_CmpLT, 0xdeadbeef, DPAS_SORTED|DPAS_INSERTBEFORE); ok(i == 2, "i=%d\n", i); + /* without DPAS_INSERTBEFORE/AFTER */ + i = pDPA_Search(dpa, (PVOID)3, 0, + CB_CmpLT, 0xdeadbeef, DPAS_SORTED); + ok(i == -1, "i=%d\n", i); /* Re-insert the item */ ret = pDPA_InsertPtr(dpa, 2, (PVOID)3);