Mastering Pointers.......(Learning)
I did not understand what you meant by applet->initilize is not a valid function.
Here is a more clear explanation:
Everything starts here in my configuration file
void InitApplets ()
{
Applet * Calender;
Calender = CreateApplet("Calender","Tex","1.0","Displays Day,Month,Year",AppletCalenderPanel,AppletCalender_Drag,AppletCalenderInit,AppletCalenderDeInit);
RegisterApplet(Calender);
}
I give AppletCalenderInit function as function parameter.
And that parameter is processed here:
Applet * CreateApplet(STRING * Name,STRING * Author,STRING * Version,STRING * Description,PANEL * Container,BMAP * Drag,int * Initilizer,int * Deinitlizer)
{
if(!Container) { return error("CreateApplet:Invalid Container."); }
if(!Initilizer) { return error("CreateApplet:Invalid Initilizer."); }
if(!Deinitlizer) { return error("CreateApplet:Invalid Deinitilizer."); }
if(!Name) { return error("CreateApplet:Invalid Name."); }
Applet * Temp = sys_malloc(sizeof(Applet));
.....SOME STATEMENTS ARE HERE WHICH ARE NOT RELATED TO THIS
TOPIC:REMOVED
Temp->Initilize = Initilizer;
Temp->Deinitlize = Deinitlizer;
return Temp;
}
The structure stores the functions as:
typedef struct Applet
{
........
void *Initilize;
void *Deinitlize;
........
} Applet;
Now it must be very clear