With the help of ChatGTP I found a great solution that works great for me.
It turns out that
there is an image list associated with the desktop ListView, but acquiring that list is really vague and mysterious:
HIMAGELIST hSysImageList = (HIMAGELIST)SHGetFileInfo(L"C:\\", 0, &sfi, sizeof(sfi), SHGFI_SYSICONINDEX | SHGFI_ICON);
If you enumerate every single image from that list you'll see that it has almost all icons from your desktop.
There is one downside though: as you can see in my original question, the file in second column is a file, for which Shell generated a preview (it works pretty much for all images, videos, pdfs, etc.). This list does not contain those previews.
Edit: I found some info on this topic:
StackOverflow link
Big thanks to Richard MacCutchan whose suggestion lead me to this solution.
Edit: Full demo code you can find here:
link