Problem using lv_obj_add_event_cb with extraargument

I need pass a string when a button is clicked on list

extraction code of ui_events.cpp
/{
ssid = WiFi.SSID(i).c_str();
lv_obj_add_event_cb(btn, ui_event_botonMantenimiento, LV_EVENT_CLICKED, &ssid);
}
/

extraction code of ui.c
/{
void ui_event_botonMantenimiento(lv_event_t * e, const char * ssid)
{
Serial.println(“Pintamos %-32.32s”, ssid);
lv_event_code_t event_code = lv_event_get_code(e);
lv_obj_t * target = lv_event_get_target(e);
if(event_code == LV_EVENT_CLICKED) {
_ui_screen_change(&ui_Configuracion, LV_SCR_LOAD_ANIM_FADE_ON, 500,
0, &ui_Configuracion_screen_init);
}
}
}
/

and the error compiling on Arduino

/C:\Users\X\Desktop\Arduino\X\ui_events.cpp: In function 'void funcionBuscarWifis(lv_event_t)':
C:\Users\X\Desktop\Arduino\X\ui_events.cpp:34:38: error: invalid conversion from ‘void ()(lv_event_t, const char*)’ {aka ‘void ()(_lv_event_t, const char*)’} to ‘lv_event_cb_t’ {aka ‘void ()(_lv_event_t)’} [-fpermissive]
lv_obj_add_event_cb(btn, ui_event_botonMantenimiento, LV_EVENT_CLICKED, &ssid);
^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from c:\users\X\desktop\arduino\libraries\lvgl\src/core/lv_obj.h:143,
from c:\users\X\desktop\arduino\libraries\lvgl\lvgl.h:35,
from c:\Users\X\Desktop\Arduino\libraries\Lvgl\src/lvgl.h:17,
from C:\Users\X\Desktop\Arduino\X\ui.h:13,
from C:\Users\X\Desktop\Arduino\X\ui_events.cpp:6:
c:\users\X\desktop\arduino\libraries\lvgl\src/core/lv_event.h:237:84: note: initializing argument 2 of ‘_lv_event_dsc_t* lv_obj_add_event_cb(_lv_obj_t*, lv_event_cb_t, lv_event_code_t, void*)’
struct _lv_event_dsc_t * lv_obj_add_event_cb(struct _lv_obj_t * obj, lv_event_cb_t event_cb, lv_event_code_t filter,
~~~~~~~~^~
*/
Any idea? Thanks in advance

Instead of:

void ui_event_botonMantenimiento(lv_event_t * e, const char * ssid)
{
    ...

it should be:

void ui_event_botonMantenimiento(lv_event_t * e)
{
    const char *ssid = (const char *)e->user_data;
    ...