All callback functions share the same prototype, documented below. Note that any memory passed to the callback function is valid only during the callback and should be copied if it needs to persist. This callback function needs to be thread safe. The context of the callback is always on a valid thread context and standard synchronization methods can be used. Note, however, because of this the callback cannot call SDK functions unless explicitly noted.
int CallbackFxn(Upnp_EventType EventType, void *Event, void *Cookie);
where EventType is the event that triggered the callback, Event is a structure that denotes event-specific information for that event, and Cookie is the user data passed when the callback was registered.
See Upnp_EventType for more information on the callback values and the associated Event parameter.
The return value of the callback is currently ignored. It may be used in the future to communicate results back to the SDK.