Featured image of post Почему для иконок, полученных функцией LoadIcon, не требуется вызов DestroyIcon

Почему для иконок, полученных функцией LoadIcon, не требуется вызов DestroyIcon

Объясняются условия, при которых следует или не следует вызывать DestroyIcon для ресурсов иконок, полученных с помощью LoadIcon или LoadImage из Windows API. Сформулированы правильные спецификации для предотвращения утечек ресурсов.

О необходимости вызова DestroyIcon

Вызывать DestroyIcon необходимо в следующих случаях:

  • CreateIconFromResourceEx (если вызвано без флага LR_SHARED)
  • CreateIconIndirect
  • CopyIcon

При создании с помощью указанных выше функций.

  • LoadIcon
  • LoadImage (при использовании флага LR_SHARED)
  • CopyImage (при использовании флага LR_COPYRETURNORG, если параметр hImage — общая иконка)
  • CreateIconFromResource
  • CreateIconFromResourceEx (при использовании флага LR_SHARED)

Иконки, созданные и загруженные в перечисленных выше случаях, не должны вызывать DestroyIcon.

Ссылки

comments powered by Disqus