Like many other frameworks, IIIMCF API is designed by object oriented base. API users are able to forward user inputs, receive the result from IM services, and constitute their own components that handle IM services.
IIIMCF API, however, never restricts any specific message processing models.
API users could fully control message flow. IIIMCF API does not deceivingly
call event handlers of components without explicitly calling
iiimcf_dispatch_event
except special emergency events.
Even if your application wants to behave as an active obejct, IIIMCF API does
not actively call your component, and your component does not need to be called
passively at all, it has only to call proper APIs to obtain current IM status
and result.
Therefore, IIIMCF API can be applied to wide range of targets. It would well worked not only with normal applications but also with many other existing frameworks.
IIIMCF API can be roughly splitted into 3 parts.
In principle, with event control APIs, user applications can forward or dispatch events that usually come from user input, and the applications can obtain the results (i.e. current status) with status acquisition APIs.
If user application need components that handle IM services, and are passively invoked, you can control event flow by event control APIs. But it is not indispensable at all. User application can retrieve any informations with status acquisition APIs.