shell32: Return NULL from ExtractIcon() for all error cases.

This commit is contained in:
Brendan Shanks 2022-08-24 15:26:03 -07:00 committed by Alexandre Julliard
parent 584eb4e804
commit 42f9a8ef79
2 changed files with 4 additions and 14 deletions

View file

@ -606,16 +606,13 @@ HICON WINAPI ExtractIconW(HINSTANCE hInstance, LPCWSTR lpszFile, UINT nIconIndex
ret = PrivateExtractIconsW(lpszFile, 0, cx, cy, NULL, NULL, 0, LR_DEFAULTCOLOR);
if (ret != (UINT)-1 && ret)
return (HICON)(UINT_PTR)ret;
return NULL;
}
else
{
ret = PrivateExtractIconsW(lpszFile, nIconIndex, cx, cy, &hIcon, NULL, 1, LR_DEFAULTCOLOR);
if (ret == (UINT)-1)
return (HICON)1;
else if (ret > 0 && hIcon)
return hIcon;
if (ret > 0 && hIcon)
return hIcon;
}
return NULL;
}

View file

@ -1185,7 +1185,6 @@ static void test_ExtractIcon(void)
/* specified instance handle */
hicon = ExtractIconA(GetModuleHandleA("shell32.dll"), NULL, 0);
todo_wine
ok(hicon == NULL, "Got icon %p\n", hicon);
hicon2 = ExtractIconA(GetModuleHandleA("shell32.dll"), "shell32.dll", -1);
ok(hicon2 != NULL, "Got icon %p\n", hicon2);
@ -1211,14 +1210,12 @@ static void test_ExtractIcon(void)
CloseHandle(file);
hicon = ExtractIconA(NULL, path, 0);
todo_wine
ok(hicon == NULL, "Got icon %p\n", hicon);
hicon = ExtractIconA(NULL, path, -1);
ok(hicon == NULL, "Got icon %p\n", hicon);
hicon = ExtractIconA(NULL, path, 1);
todo_wine
ok(hicon == NULL, "Got icon %p\n", hicon);
r = DeleteFileA(path);
@ -1229,7 +1226,6 @@ static void test_ExtractIcon(void)
ok(hicon == NULL, "Got icon %p\n", hicon);
hicon = ExtractIconA(NULL, "", 0);
todo_wine
ok(hicon == NULL, "Got icon %p\n", hicon);
/* same for W variant */
@ -1267,14 +1263,12 @@ if (0)
CloseHandle(file);
hicon = ExtractIconW(NULL, pathW, 0);
todo_wine
ok(hicon == NULL, "Got icon %p\n", hicon);
hicon = ExtractIconW(NULL, pathW, -1);
ok(hicon == NULL, "Got icon %p\n", hicon);
hicon = ExtractIconW(NULL, pathW, 1);
todo_wine
ok(hicon == NULL, "Got icon %p\n", hicon);
r = DeleteFileW(pathW);
@ -1285,7 +1279,6 @@ if (0)
ok(hicon == NULL, "Got icon %p\n", hicon);
hicon = ExtractIconW(NULL, emptyW, 0);
todo_wine
ok(hicon == NULL, "Got icon %p\n", hicon);
}