It's like that !. So you can't change a function prototype, especially a callback function. If you want to return a value, you can use the callbackData that is a pointer to any kind of object. For example, a structure, an interger,...When executing the callback function, that object must be valid : static memory, global memory. You can sets the callback Data by using SetMenuBarAttribute (panel, menubar, ATTR_CALLBACK_DATA, &object);