teclado simbolos poner pensativo pensando para hacer emoticono emoticones emojis crear con computadora como c++ c windows mfc

c++ - poner - emojis con simbolos



Fuga de memoria al usar emoticones en CRichEditCtrl (1)

OleCreateStaticFromData devuelve un puntero COM que pasa al control Rich Edit. A este puntero COM se le ha aplicado un AddRef , por lo que debe llamar a Release una vez que lo haya pasado al control, para indicar que ya no podrá acceder a él directamente. El control también emitirá un Release cuando se destruya, lo que debería provocar la eliminación del objeto COM.

También puede almacenar el puntero devuelto en una clase de puntero inteligente _com_ptr_t o CComPtr y lo liberará automáticamente.

Estoy desarrollando una clase de editor de texto (para una aplicación de chat) basada en CRichEditCtrl (MFC) con soporte para emoticones.

Después de cargar el mapa de bits del emoticón, utilizo la función OleCreateStaticFromData para insertarlo en CRichEditCtrl . Después de eso, simplemente elimino el objeto de mapa de bits asignado por mí mismo. Puedo verificar (utilizando una utilidad GDIView ) que todos los recursos que GDIView se han lanzado correctamente.

Esto funciona perfectamente: el mapa de bits (emoticon) se dibuja en la ventana CRichEditCtrl y se maneja como un personaje.

Mi problema es que no sé cómo desasignar la memoria (interna) asignada por OleCreateStaticFromData para administrar el mapa de bits (emoticon). La memoria asignada para cualquier emoticon utilizado nunca se libera, incluso si CRichEditCtrl objeto CRichEditCtrl . Me gustaría saber cómo solucionar ese problema. ¿Es ese un problema de MFC o estoy haciendo algo mal?