diff --git a/dll/cpl/desk/background.c b/dll/cpl/desk/background.c index b13729c1e9c..1bb15a4e787 100644 --- a/dll/cpl/desk/background.c +++ b/dll/cpl/desk/background.c @@ -387,51 +387,45 @@ AddListViewItems(HWND hwndDlg, PBACKGROUND_DATA pData) } } - SHGetFileInfoW(wallpaperFilename, - 0, - &sfi, - sizeof(sfi), - SHGFI_ICON | SHGFI_SMALLICON | - SHGFI_DISPLAYNAME); - sfi.iIcon = ImageList_AddIcon(himl, sfi.hIcon); + if (SHGetFileInfoW(wallpaperFilename, 0, &sfi, sizeof(sfi), + SHGFI_ICON | SHGFI_SMALLICON | SHGFI_DISPLAYNAME)) + { + sfi.iIcon = ImageList_AddIcon(himl, sfi.hIcon); - i++; + ++i; - backgroundItem = &pData->backgroundItems[pData->listViewItemCount]; + backgroundItem = &pData->backgroundItems[pData->listViewItemCount]; + backgroundItem->bWallpaper = TRUE; - backgroundItem->bWallpaper = TRUE; + hr = StringCbCopy(backgroundItem->szDisplayName, + sizeof(backgroundItem->szDisplayName), sfi.szDisplayName); + if (FAILED(hr)) + { + RegCloseKey(regKey); + return; + } + PathRemoveExtension(backgroundItem->szDisplayName); - hr = StringCbCopy(backgroundItem->szDisplayName, sizeof(backgroundItem->szDisplayName), sfi.szDisplayName); - if (FAILED(hr)) - { - RegCloseKey(regKey); - return; - } + hr = StringCbCopy(backgroundItem->szFilename, sizeof(backgroundItem->szFilename), + wallpaperFilename); + if (FAILED(hr)) + { + RegCloseKey(regKey); + return; + } - PathRemoveExtension(backgroundItem->szDisplayName); + ZeroMemory(&listItem, sizeof(listItem)); + listItem.mask = LVIF_TEXT | LVIF_PARAM | LVIF_STATE | LVIF_IMAGE; + listItem.state = LVIS_SELECTED; + listItem.stateMask = LVIS_SELECTED; + listItem.pszText = backgroundItem->szDisplayName; + listItem.iImage = sfi.iIcon; + listItem.iItem = pData->listViewItemCount; + listItem.lParam = pData->listViewItemCount; + (void)ListView_InsertItem(hwndBackgroundList, &listItem); - hr = StringCbCopy(backgroundItem->szFilename, sizeof(backgroundItem->szFilename), wallpaperFilename); - if (FAILED(hr)) - { - RegCloseKey(regKey); - return; + ++pData->listViewItemCount; } - - ZeroMemory(&listItem, sizeof(LV_ITEM)); - listItem.mask = LVIF_TEXT | LVIF_PARAM | LVIF_STATE | LVIF_IMAGE; - listItem.state = 0; - listItem.pszText = backgroundItem->szDisplayName; - listItem.iImage = sfi.iIcon; - listItem.iItem = pData->listViewItemCount; - listItem.lParam = pData->listViewItemCount; - - (void)ListView_InsertItem(hwndBackgroundList, &listItem); - ListView_SetItemState(hwndBackgroundList, - pData->listViewItemCount, - LVIS_SELECTED, - LVIS_SELECTED); - - pData->listViewItemCount++; } RegCloseKey(regKey);