| Overview | Group | Index | Concepts | 
The routine CPXaddfuncdest adds a function
 msgfunction to the message destination list for a channel.
 This routine allows users to trap messages instead of printing
 them. That is, when a message is sent to the channel, 
 each destination that was added to the message destination list
 by CPXaddfuncdest calls its associated message.
To illustrate, consider an application in which a developer wishes to
 trap CPLEX error messages and display them in a dialog box that prompts the
 user for an action. Use CPXaddfuncdest to add the address of
 a function to the list of message destinations associated with the cpxerror
 channel. Then write the msgfunction routine. It must contain
 the code that controls the dialog box. When CPXmsg is called
 with cpxerror as its first argument, it calls the
 msgfunction routine, which can then display the error
 message.
handle is a generic pointer that can be used to
 hold information needed by the msgfunction routine to avoid
 making such information global to all routines.Example
 void msgfunction (void *handle, char *msg_string)
 {
     FILE *fp;
     fp = (FILE *)handle;
     fprintf (fp, "%s", msg_string);
 }
 status = CPXaddfuncdest (env, mychannel, fileptr, msgfunction);
 Parameters
env
A pointer to the CPLEX environment 
 as returned by CPXopenCPLEX.
channel
A pointer to the channel to which the function destination is to be added.
handle
A void pointer that can be used  to 
 pass arbitrary information into 
 msgfunction. 
 
msgfunction
A pointer to the function to be called when a message is sent to a channel.
See Also:
The routine returns zero if successful and nonzero if an error 
 occurs. Failure occurs when msgfunction is not in the 
 message-destination list or the channel does not exist.