Sample code

/* Initialization function */typedef int32_t 	(*ffh_mh_init_function)( 	ffh_mh_info    *,   /* handler info */
	ffh_init_param *,   /* array of init_param */
	int32_t );          /* num ffhinit_param items *//* Finalization function */typedef void (*ffh_mh_fini_fuction)( ffh_mh_info * );/* Process Function */typedef int32_t (*ffh_mh_process_function)( ffh_mh_event * );/* Return value from the above functions which retun int32_t indicating success.
Any other values indicate an error and are defined internally by the library. */
#define FFH_MH_SUCESS      0

/* Callback functions */
typedef void (*ffh_mh_p_session_shutdown)( ffh_mh_info * );
typedef void (*ffh_mh_p_release_message)( ffh_mh_info *,
	ffh_fast_message * );
typedef struct {const char * name;const char * value;} 
	ffh_init_param;typedef enum ffh_mh_event_type {MHET_RECEIVE_MESSAGE = 0};typedef struct {
	int16_t version;
	void * handlerID;
	void * loggerID;
	ffh_mh_p_session_shutdown shutdown;
	ffh_mh_p_release_message  release_message;
	void * user_data;} ffh_mh_info;typedef struct {	int16_t             version;
	ffh_mh_event_type   event;
	ffh_mh_info       * info;
	ffh_fast_message  * message;
}	ffh_mh_event;