А вот тут рассказывается о том, почему в Висте перестали показываться иконки Win16 программ:
https://docs.microsoft.com/.../cc462815(v=msdn.10)
Я знала, что народ любил всюду использовать Win16 DLL с расширением ICL (например, Microangelo так делал), но не знала, как система эти иконки использует. Думала, что там какие thunk'и, вызывающие Win16 функции, а оказалось, что просто некий велокод парсит блоки ресурсов и вытаскивает данные иконок, которые уже подсовывает Win32 функциям.