I am using extractIconEx and DrawIconEx to extract any embedded icons in a supplied DLL or EXE. I'd like to display the extracted image as 128 or 256bpp but it seems that the process I have selected only handles icons up to 32x32.

' icon count
lIcons = ExtractIconEx(sExeName, -1, 0, 0, 0)

' get the handle
Call ExtractIconEx(sExeName, lIndex, glLargeIcons(lIndex), glSmallIcons(lIndex), 1)

' draw the image
Set .Picture = LoadPicture("")
.AutoRedraw = True

Call DrawIconEx(.hDC, 0, 0, glLargeIcons(lIndex), IconSize, IconSize, 0, 0, DI_NORMAL)
.Refresh
End With

I want to keep it simple if possible, is there another API function that I can use to extract or draw the larger size of icon?

I briefly tried SHGetFileInfo but that seems limited to 32 x 32 as well.

I only want to extract from a DLL or EXE.

Any thoughts?