Estoy creando íconos en mi aplicación usando LoadIconWithScaleDown()
. También recurro a CreateIconFromResourceEx()
si la función preferida no está disponible.¿Debo llamar a DestroyIcon si lo hice con LoadIconWithScaleDown?
La documentación para DestroyIcon()
estados:
Sólo es necesario llamar DestroyIcon para los iconos y cursores creados con las siguientes funciones: CreateIconFromResourceEx (si llama sin la bandera LR_SHARED), CreateIconIndirect, y CopyIcon. No use esta función para destruir un icono compartido . Un icono compartido es válido como siempre que el módulo desde el que estaba cargado permanezca en la memoria. Las siguientes funciones de obtienen un icono compartido.
- LoadIcon
- LoadImage (si se utiliza la bandera LR_SHARED)
- CopyImage (si se utiliza la bandera LR_COPYRETURNORG y el parámetro Himage es un icono compartido)
- CreateIconFromResource
- CreateIconFromResourceEx (si se utiliza la bandera LR_SHARED)
Nota: No estoy pasando LR_SHARED
a CreateIconFromResourceEx()
; quizás debería.
Lo que me gustaría saber es, ¿tengo que llamar al DestroyIcon()
para los iconos hechos con LoadIconWithScaleDown()
?
No documentado, doloroso. Tendría que votar Sí. Simplemente porque la función sería inutilizable de lo contrario. Hay posibilidades de que DestroyIcon devuelva FALSE cuando el icono se comparte realmente, así que no lo bombardees. –
@Hans ¡Muchas gracias por su consejo! –