Back to index

im-sdk  12.3.91
iiimcfint.h
Go to the documentation of this file.
00001 /*
00002   iiimcfint.h
00003 */
00004 #ifndef _IIIMCFINT_H_
00005 #define _IIIMCFINT_H_
00006 #ifdef HAVE_CONFIG_H
00007 #include <config.h>
00008 #endif
00009 #ifndef HAVE_NO_THREAD
00010 #include <threaddef.h>
00011 #endif
00012 #include <iiimcf.h>
00013 #include <EIMIL.h>
00014 
00015 typedef struct IIIMCF_client_env IIIMCF_client_env;
00016 typedef struct IIIMCF_client_conf IIIMCF_client_conf;
00017 
00018 typedef struct IIIMCF_handle_rec IIIMCF_handle_rec;
00019 typedef struct IIIMCF_context_rec IIIMCF_context_rec;
00020 typedef struct IIIMCF_version_rec IIIMCF_version_rec;
00021 typedef struct IIIMCF_attr_rec IIIMCF_attr_rec;
00022 typedef struct IIIMCF_text_rec IIIMCF_text_rec;
00023 typedef struct IIIMCF_text_property_value_rec IIIMCF_text_property_value_rec;
00024 typedef struct IIIMCF_lookup_choice_rec IIIMCF_lookup_choice_rec;
00025 typedef struct IIIMCF_language_rec IIIMCF_language_rec;
00026 typedef struct IIIMCF_input_method_rec IIIMCF_input_method_rec;
00027 typedef struct IIIMCF_event_rec IIIMCF_event_rec;
00028 typedef struct IIIMCF_component_rec IIIMCF_component_rec;
00029 typedef struct IIIMCF_downloaded_object_rec IIIMCF_downloaded_object_rec;
00030 typedef struct IIIMCF_aux_rec IIIMCF_aux_rec;
00031 
00032 typedef struct IIIMCF_ICAttribute_rec IIIMCF_ICAttribute_rec;
00033 
00034 struct IIIMCF_client_conf {
00035     int         use_tls;                /* whether tls is used or not */
00036     char *      server_node;            /* server node name or address */
00037     char *      service;                /* service name or port number or unix path */
00038     char *      cert_file;              /* certificate  */
00039     char *      cert_key;               /* certificate key */
00040     char *      ca_file;                /* trusted CA */
00041     char *      ca_path;                /* trusted CA's path */
00042     IIIMCF_client_conf *next;
00043 };
00044 
00045 struct IIIMCF_client_env {
00046     char *    user_name;           /* User name */
00047     char *    password;            /* password (if exists). */
00048     char *    home_dir;            /* Home directory */
00049     char *    node;                /* client node name */
00050 
00051 #if 0
00052     char *    server_node;         /* server node name or address */
00053     char *    service;             /* service name or port number */
00054 #endif
00055 
00056     char *    type;                /* Application type */
00057     char *    os_name;             /* Operating system name */
00058     char *    os_arch;             /* Operating system architecture */
00059     char *    os_version;          /* Operating system version */
00060     char *    X_display_name;             /* X display name */
00061     char *    X_server_vendor;     /* X service vendor */
00062 
00063     IIIMCF_client_conf *pconf;           /* client config */
00064 };
00065 
00066 enum IIIMCF_PROTOCOL_VERSION_MASK {
00067        IIIMCF_VERSION_FLAGS_CATEGORY_MASK = 0x00FF,
00068        IIIMCF_VERSION_FLAGS_ITEM_MASK = 0xFF00,
00069        IIIMCF_VERSION_FLAGS_MASK = (IIIMCF_VERSION_FLAGS_CATEGORY_MASK
00070                                  | IIIMCF_VERSION_FLAGS_ITEM_MASK)
00071 };
00072 
00073 struct IIIMCF_handle_rec {
00074     IIIMF_stream *pstream;
00075     IIIMP_data_s *data_s;
00076     IIIMCF_client_env *penv;
00077     int im_id;
00078 
00079     int num_input_methods;
00080     IIIMCF_input_method_rec **ppinput_methods;
00081 
00082     int num_langs;
00083     IIIMCF_language_rec **pplangs;
00084 
00085     int context_table_size;
00086     IIIMCF_context_rec **ppcontext_table;
00087 
00088     int object_descriptor_size;
00089     IIIMCF_object_descriptor *pobjdesc;
00090 
00091     IIIMCF_downloaded_object_rec *pdownloaded_objs;
00092 
00093     int num_on_keys;
00094     IIIMCF_keyevent *pon_keys;
00095     int num_off_keys;
00096     IIIMCF_keyevent *poff_keys;
00097 
00098     int num_of_hkprofiles;
00099     int curr_scope;
00100     int curr_profile_id;
00101     IIIMCF_hotkey_profile *phk_profile;
00102 
00103     int num_of_nsl;
00104     IIIMCF_ns_listener *pnsl;
00105     int num_of_ns;
00106     IIIMCF_ns *pns;
00107 
00108     IIIMCF_component_rec *proot_component;
00109 
00110     int disable_automatic_connection_restoration;
00111 
00112     int server_protocol_version;
00113 
00114     IIIMCF_client_conf *pconf;
00115 
00116 #ifndef HAVE_NO_THREAD
00117     THREAD_SYNC_OBJECT so;
00118     THREAD_ID_OBJECT thread_owner_id;
00119     int thread_lock_count;
00120 #endif
00121 };
00122 
00123 enum IIIMCF_CONTEXT_STATE_FLAGS {
00124        IIIMCF_CONTEXT_PREEDIT_ENABLED = (1 << 0),
00125        IIIMCF_CONTEXT_LOOKUP_CHOICE_ENABLED = (1 << 1),
00126        IIIMCF_CONTEXT_STATUS_ENABLED = (1 << 2),
00127        IIIMCF_CONTEXT_COMMITTED_TEXT_ENABLED = (1 << 3),
00128        IIIMCF_CONTEXT_AUTOMATIC_TRIGGER_NOTIFY = (1 << 4),
00129        IIIMCF_CONTEXT_CONVERSION_MODE = (1 << 5),
00130        IIIMCF_CONTEXT_BROADCASTING = (1 << 6)
00131 };
00132 
00133 enum IIIMCF_attr_type {
00134        IIIMCF_ATTR_TYPE_NONE = 0,
00135        IIIMCF_ATTR_TYPE_STRING,
00136        IIIMCF_ATTR_TYPE_INTEGER,
00137        IIIMCF_ATTR_TYPE_POINTER
00138 };
00139 
00140 typedef struct {
00141     int idx;
00142     enum IIIMCF_attr_type type;
00143     union {
00144        int number;
00145        const char *str;
00146        void *ptr;
00147     } v;
00148 } IIIMCF_attr_slot;
00149 
00150 struct IIIMCF_attr_rec {
00151     int nprops;
00152     IIIMCF_attr_slot *pslots;
00153 };
00154 
00155 #define IIIMCF_MAX_FEEDBACK_NUM 8
00156 struct IIIMCF_text_rec {
00157     int updated;
00158     int len;
00159     IIIMP_card16 *pu16;
00160     EIMIL_value *pv_mtext;
00161 
00162     /* only for buffer. */
00163     IIIMP_card32 pfeedback_ids[IIIMCF_MAX_FEEDBACK_NUM];
00164     IIIMP_card32 pfeedbacks[IIIMCF_MAX_FEEDBACK_NUM];
00165 };
00166 
00167 #if 0
00168 struct IIIMCF_text_property_value_rec {
00169 };
00170 #endif
00171 
00172 struct IIIMCF_lookup_choice_rec {
00173     int masterp;
00174     int choices_per_window;
00175     int rows;
00176     int cols;
00177     int direction;
00178     int label_owner;
00179 
00180     int size;
00181     int enabled_range_start;
00182     int enabled_range_end;
00183     int idx_first;
00184     int idx_last;
00185     int idx_current;
00186     int *pflags;
00187     IIIMCF_text_rec *plabels;
00188     IIIMCF_text_rec *pcandidates;
00189     IIIMCF_text_rec title;
00190 };
00191 
00192 struct IIIMCF_language_rec {
00193     char *lang_id;
00194     IIIMP_card16 *hrn;
00195 };
00196 
00197 struct IIIMCF_input_method_rec {
00198     int id;
00199     IIIMP_card16 *imname;
00200     IIIMP_card16 *domain;
00201     IIIMP_card16 *hrn;
00202     int num_langs;
00203     IIIMCF_language_rec **pplangs;
00204     int num_imeinfos;
00205     IIIMCF_imeinfo_rec **ppimeinfos;
00206 };
00207 
00208 struct IIIMCF_ICAttribute_rec {
00209     char *lang_id;
00210     int imname_len;
00211     IIIMP_card16 *imname;
00212 };
00213 
00214 typedef struct {
00215     IIIMP_card16 *name;
00216     IIIMP_card32 index;
00217     int num_intvals;
00218     IIIMP_card32 *pintvals;
00219     int num_strvals;
00220     IIIMP_card16 **pstrs;
00221 } IIIMCF_auxevent;
00222 
00223 struct IIIMCF_event_rec {
00224     IIIMCF_event_type type;
00225     union {
00226        int number;
00227        IIIMCF_keyevent keyevent;
00228        IIIMCF_auxevent *pauxevent;
00229     } v;
00230     int state;
00231 };
00232 
00233 struct IIIMCF_component_rec {
00234     IIIMCF_handle_rec *ph;
00235     char *name;
00236     IIIMCF_attr attr;
00237     IIIMCF_component_interface func;
00238     IIIMCF_component_rec *pparent;
00239     IIIMCF_component_rec *pchild;
00240     IIIMCF_component_rec *pnext;
00241     IIIMCF_component_rec *pprev;
00242 };
00243 
00244 struct IIIMCF_downloaded_object_rec {
00245     const IIIMCF_object_descriptor *pod;
00246     IIIMCF_downloaded_object_rec *pnext;
00247     union {
00248        IIIMP_card16 *str;
00249        IIIMP_card8 *pbin;
00250     } v;
00251 };
00252 
00253 struct IIIMCF_aux_rec {
00254     IIIMP_card16 *name;
00255     IIIMP_card32 index;
00256 
00257     int mode;
00258 
00259     int num_strvals;
00260     IIIMP_card16 **pstrs;
00261     int num_intvals;
00262     IIIMP_card32 *pintvals;
00263 
00264     IIIMCF_aux_rec *pnext;
00265 };
00266 
00267 struct IIIMCF_context_rec {
00268     IIIMCF_handle_rec *ph;
00269     int ic_id;
00270 
00271     IIIMCF_context_rec *pnext;
00272 
00273     int state_flag;
00274 
00275     int preedit_caret_position;
00276     IIIMCF_text_rec preedit_text;
00277     IIIMCF_lookup_choice_rec lookup_choice;
00278     IIIMCF_text_rec status_text;
00279     IIIMCF_text_rec committed_text;
00280 
00281     IIIMCF_aux_rec *paux;
00282 
00283     int state_change_flag;
00284 
00285     /* event queue */
00286     int evqueue_size;
00287     IIIMCF_event_rec **ppev_pro;
00288     IIIMCF_event_rec **ppev_con;
00289     IIIMCF_event_rec **ppevqueue;
00290 
00291     /* dispatchment state */
00292     IIIMCF_component_rec *pcurrent_component;
00293 
00294     /* IC attribute */
00295     IIIMCF_ICAttribute_rec icattr;
00296 
00297     /* user-defined attr */
00298     IIIMCF_attr attr;
00299 
00300 #ifdef IIIMCF_EVENT_STACK
00301     /* event stack */
00302     int evstack_size;
00303     IIIMCF_event_rec **ppevstack;
00304     IIIMCF_event_rec **ppev_sp;
00305 #endif
00306 };
00307 
00308 /* macros */
00309 
00310 #define IIIMCF_IS_CONNECTED(ph) (((ph)->im_id) >= 0)
00311 #define IIIMCF_IS_IC_INVALID(pc) (((pc)->ic_id) < 0)
00312 #define IIIMCF_IS_ENABLED(pc, flag) ((pc)->state_flag & (flag))
00313 #define IIIMCF_IS_STATE_CHANGED(pc, flag) ((pc)->state_change_flag & (flag))
00314 #define IIIMCF_SET_STATE(pc, flag) ((pc)->state_flag |= (flag))
00315 #define IIIMCF_SET_STATE_CHANGE(pc, flag) ((pc)->state_change_flag |= (flag))
00316 #define IIIMCF_RESET_STATE(pc, flag) ((pc)->state_flag &= (~(flag)))
00317 #define IIIMCF_RESET_STATE_CHANGE(pc, flag) ((pc)->state_change_flag &= (~(flag)))
00318 #define IIIMCF_IS_BROADCASTING(pc) IIIMCF_IS_ENABLED(pc, IIIMCF_CONTEXT_BROADCASTING)
00319 #define IIIMCF_IS_PREEDIT_IN_PROGRESS(pc) (((pc)->preedit_text.len) > 0 ? 1 : 0)
00320 #define IIIMCF_IS_VALID_TEXT(pt) ((pt)->pv_mtext)
00321 #define IIIMCF_IS_VALID_LOOKUP_CHOICE(pl) (((pl)->size) > 0)
00322 
00323 #define IIIMCF_IS_STATIC_EVENT_FLOW(ph) ((ph)->num_on_keys == 0)
00324 
00325 #define IIIMCF_IS_KEYEVENT_EQUAL(X, Y) (((X).keycode == (Y).keycode) \
00326                                         /* && ((X).keychar == (Y).keychar) */ \
00327                                         && ((X).modifier == (Y).modifier))
00328 
00329 #define IIIMCF_LOCK_HANDLE(ph) iiimcf_lock_handle(ph);
00330 #define IIIMCF_UNLOCK_HANDLE(ph) iiimcf_unlock_handle(ph);
00331 
00332 /* internal functions */
00333 
00334 #ifdef __cplusplus
00335 extern "C" {
00336 #endif
00337 
00338 /* iiimcf.c */
00339 extern IIIMP_card16* iiimcf_make_string(
00340     const IIIMP_card16 *str,
00341     int len
00342 );
00343 extern int iiimcf_string_length(
00344     const IIIMP_card16 *str
00345 );
00346 extern IIIMP_card16* iiimcf_duplicate_string(
00347     const IIIMP_card16 *str
00348 );
00349 
00350 extern void iiimcf_lock_handle(
00351     IIIMCF_handle_rec *ph
00352 );
00353 extern void iiimcf_unlock_handle(
00354     IIIMCF_handle_rec *ph
00355 );
00356 
00357 extern IIIMF_status iiimcf_register_trigger_keys(
00358     IIIMCF_handle_rec *ph,
00359     IIIMP_message *pmes
00360 );
00361 
00362 extern IIIMF_status iiimcf_register_hotkeys(
00363     IIIMCF_handle_rec *ph,
00364     IIIMP_message *pmes
00365 );
00366 
00367 extern IIIMF_status iiimcf_file_operation(
00368     IIIMCF_handle_rec *ph,
00369     IIIMP_message *pmes
00370 );
00371 
00372 extern IIIMF_status iiimcf_open(
00373     IIIMCF_handle_rec *ph,
00374     IIIMP_open *po
00375 );
00376 
00377 extern IIIMF_status iiimcf_read(
00378     IIIMCF_handle_rec *ph,
00379     IIIMP_read *pr
00380 );
00381 
00382 extern IIIMF_status iiimcf_write(
00383     IIIMCF_handle_rec *ph,
00384     IIIMP_write *pw
00385 );
00386 
00387 extern IIIMF_status iiimcf_seek(
00388     IIIMCF_handle_rec *ph,
00389     IIIMP_seek *ps
00390 );
00391 
00392 extern IIIMF_status iiimcf_close(
00393     IIIMCF_handle_rec *ph,
00394     IIIMP_close *pc
00395 );
00396 
00397 extern IIIMF_status iiimcf_opendir(
00398     IIIMCF_handle_rec *ph,
00399     IIIMP_opendir *pod
00400 );
00401 
00402 extern IIIMF_status iiimcf_closedir(
00403     IIIMCF_handle_rec *ph,
00404     IIIMP_closedir *pcd
00405 );
00406 
00407 extern IIIMF_status iiimcf_mkdir(
00408     IIIMCF_handle_rec *ph,
00409     IIIMP_mkdir *pm
00410 );
00411 
00412 extern IIIMF_status iiimcf_rmdir(
00413     IIIMCF_handle_rec *ph,
00414     IIIMP_rmdir *pr
00415 );
00416 
00417 extern IIIMF_status iiimcf_symlink(
00418     IIIMCF_handle_rec *ph,
00419     IIIMP_symlink *ps
00420 );
00421 
00422 extern IIIMF_status iiimcf_stat(
00423     IIIMCF_handle_rec *ph,
00424     IIIMP_stat *ps
00425 );
00426 
00427 extern IIIMF_status iiimcf_lstat(
00428     IIIMCF_handle_rec *ph,
00429     IIIMP_lstat *pl
00430 );
00431 
00432 extern IIIMF_status iiimcf_fstat(
00433     IIIMCF_handle_rec *ph,
00434     IIIMP_fstat *pf
00435 );
00436 
00437 extern IIIMF_status iiimcf_creat(
00438     IIIMCF_handle_rec *ph,
00439     IIIMP_creat *pc
00440 );
00441 
00442 extern IIIMF_status iiimcf_lseek(
00443     IIIMCF_handle_rec *ph,
00444     IIIMP_lseek *pl
00445 );
00446 
00447 extern IIIMF_status iiimcf_unlink(
00448     IIIMCF_handle_rec *ph,
00449     IIIMP_unlink *pu
00450 );
00451 
00452 extern IIIMF_status iiimcf_rename(
00453     IIIMCF_handle_rec *ph,
00454     IIIMP_rename *pr
00455 );
00456 
00457 extern IIIMF_status iiimcf_fcntl(
00458     IIIMCF_handle_rec *ph,
00459     IIIMP_fcntl *pf
00460 );
00461 
00462 extern IIIMF_status iiimcf_truncate(
00463     IIIMCF_handle_rec *ph,
00464     IIIMP_truncate *pt
00465 );
00466 
00467 extern IIIMF_status iiimcf_ftruncate(
00468     IIIMCF_handle_rec *ph,
00469     IIIMP_ftruncate *pf
00470 );
00471 
00472 extern IIIMF_status iiimcf_setimvalues(
00473     IIIMCF_handle_rec *ph,
00474     IIIMP_message *pmes
00475 );
00476 
00477 extern IIIMF_status iiimcf_connect(
00478     IIIMCF_handle_rec *ph
00479 );
00480 
00481 extern IIIMF_status iiimcf_send_message(
00482     IIIMCF_handle_rec *ph,
00483     IIIMP_message *pmes,
00484     int deletep
00485 );
00486 
00487 extern IIIMF_status iiimcf_receive_message(
00488     IIIMCF_handle_rec *ph,
00489     IIIMP_message **ppmes
00490 );
00491 
00492 extern void iiimcf_unregister_langs(
00493     int n,
00494     IIIMCF_language_rec **ppl
00495 );
00496 
00497 extern void check_pathname(
00498     char *p
00499 );
00500 
00501 /* input-method.c */
00502 
00503 extern IIIMF_status iiimcf_unregister_input_method_list(
00504     int n,
00505     IIIMCF_input_method_rec **ppi
00506 );
00507 
00508 extern IIIMF_status iiimcf_register_input_method_list(
00509     IIIMCF_handle_rec *ph,
00510     IIIMP_inputmethod_descriptor *piiimp_imlist
00511 );
00512 
00513 /* attr.c */
00514 /* NO INTERNAL FUNCTION */
00515 
00516 /* commit.c */
00517 extern IIIMF_status iiimcf_commit_string(
00518     IIIMCF_context_rec *pc,
00519     IIIMP_message *pstr
00520 );
00521 
00522 /* context.c */
00523 extern IIIMCF_context_rec* iiimcf_lookup_context(
00524     IIIMCF_handle_rec *ph,
00525     IIIMP_card16 ic_id
00526 );
00527 
00528 extern IIIMF_status iiimcf_cleanup_context(
00529     IIIMCF_handle_rec *ph,
00530     int destroyp
00531 );
00532 
00533 extern IIIMF_status iiimcf_enable_context(
00534     IIIMCF_context_rec *pc
00535 );
00536 
00537 /* event.c */
00538 extern IIIMF_status iiimcf_store_event(
00539     IIIMCF_context_rec *pc,
00540     IIIMCF_event_rec *pe
00541 );
00542 
00543 extern IIIMCF_event_rec* iiimcf_get_event(
00544     IIIMCF_context_rec *pc,
00545     int removep
00546 );
00547 
00548 extern IIIMCF_event_rec* iiimcf_make_event(
00549     IIIMCF_event_type type
00550 );
00551 
00552 extern IIIMF_status iiimcf_store_simple_event(
00553     IIIMCF_context_rec *pc,
00554     IIIMCF_event_type type
00555 );
00556 
00557 extern IIIMF_status iiimcf_delete_event_storage(
00558     IIIMCF_context_rec *pc
00559 );
00560 
00561 extern IIIMF_status iiimcf_receive_forwarded_event(
00562     IIIMCF_context_rec *pc,
00563     IIIMP_message *pmes
00564 );
00565 
00566 extern IIIMF_status iiimcf_broadcast_event(
00567     IIIMCF_context_rec *pc,
00568     IIIMCF_event_rec *pe
00569 );
00570 
00571 /* lookup_choice.c */
00572 
00573 extern IIIMF_status iiimcf_lookup_choice_start(
00574     IIIMCF_context_rec *pc,
00575     IIIMP_message *pmes
00576 );
00577 
00578 extern IIIMF_status iiimcf_update_lookup_choice(
00579     IIIMCF_context_rec *pc,
00580     IIIMP_message *pmes
00581 );
00582 
00583 extern IIIMF_status iiimcf_process_lookup_choice(
00584     IIIMCF_context_rec *pc,
00585     IIIMP_message *pmes
00586 );
00587 
00588 extern IIIMF_status iiimcf_lookup_choice_done(
00589     IIIMCF_context_rec *pc
00590 );
00591 
00592 extern void iiimcf_destruct_lookup_choice(
00593     IIIMCF_lookup_choice_rec *pl
00594 );
00595 
00596 /* message.c */
00597 extern IIIMF_status iiimcf_process_message(
00598     IIIMCF_handle_rec *ph,
00599     IIIMP_message *pmes
00600 );
00601 
00602 extern IIIMF_status iiimcf_wait_message(
00603     IIIMCF_handle_rec *ph,
00604     IIIMCF_context_rec *pc,
00605     int opcode,
00606     IIIMP_message **ppmes
00607 );
00608 
00609 extern IIIMF_status iiimcf_request_message(
00610     IIIMCF_handle_rec *ph,
00611     IIIMP_message *pmes,
00612     IIIMCF_context_rec *pc,
00613     int opcode,
00614     IIIMP_message **ppmes
00615 );
00616 
00617 /* preedit.c */
00618 extern IIIMF_status iiimcf_toggle_preedit(
00619     IIIMCF_context_rec *pc,
00620     int flag
00621 );
00622 
00623 extern IIIMF_status iiimcf_update_preedit(
00624     IIIMCF_context_rec *pc,
00625     IIIMP_message *pmes
00626 );
00627 
00628 /* status.c */
00629 extern IIIMF_status iiimcf_toggle_status(
00630     IIIMCF_context_rec *pc,
00631     int flag
00632 );
00633 
00634 extern IIIMF_status iiimcf_update_status(
00635     IIIMCF_context_rec *pc,
00636     IIIMP_message *pmes
00637 );
00638 
00639 /* trigger.c */
00640 extern IIIMF_status iiimcf_receive_trigger_notify(
00641     IIIMCF_context_rec *pc,
00642     int flag
00643 );
00644 
00645 extern IIIMF_status iiimcf_receive_hotkey_notify(
00646     IIIMCF_context_rec *pc
00647 );
00648 
00649 extern IIIMF_status iiimcf_process_trigger_keyevent(
00650     IIIMCF_context_rec *pc,
00651     IIIMCF_keyevent *pkev
00652 );
00653 
00654 extern IIIMF_status iiimcf_forward_trigger_notify(
00655     IIIMCF_context_rec *pc,
00656     int flag
00657 );
00658 
00659 extern IIIMF_status iiimcf_process_hotkey_keyevent(
00660     IIIMCF_context_rec *pc,
00661     IIIMCF_keyevent *pkev
00662 );
00663 
00664 extern IIIMF_status iiimcf_forward_hotkey_notify(
00665     IIIMCF_context_rec *pc,
00666     int hotkey_id,
00667     int ikev
00668 );
00669 
00670 /* aux.c */
00671 extern IIIMF_status iiimcf_enable_aux(
00672     IIIMCF_context_rec *pc,
00673     IIIMP_message *pmes
00674 );
00675 
00676 extern IIIMF_status iiimcf_update_aux_draw(
00677     IIIMCF_context_rec *pc,
00678     IIIMP_message *pmes
00679 );
00680 
00681 extern IIIMF_status iiimcf_disable_aux(
00682     IIIMCF_context_rec *pc,
00683     IIIMP_message *pmes
00684 );
00685 
00686 extern IIIMF_status iiimcf_forward_aux_setvalues(
00687     IIIMCF_context_rec *pc,
00688     IIIMCF_event_rec *pe
00689 );
00690 
00691 extern IIIMF_status iiimcf_forward_aux_getvalues(
00692     IIIMCF_context_rec *pc,
00693     IIIMCF_event_rec *pe
00694 );
00695 
00696 extern void iiimcf_delete_all_aux_data(
00697     IIIMCF_context_rec *pc
00698 );
00699 
00700 extern void iiimcf_delete_aux_event(
00701     IIIMCF_event_rec *pe
00702 );
00703 
00704 /* text.c */
00705 extern IIIMF_status iiimcf_destruct_text(
00706     IIIMCF_text_rec *pt
00707 );
00708 
00709 extern IIIMF_status iiimcf_construct_text_from_UTF8(
00710     const unsigned char *pstr,
00711     IIIMCF_text_rec *pt
00712 );
00713 
00714 extern IIIMF_status iiimcf_convert_iiimp_string_to_text(
00715     IIIMP_string *pstr,
00716     IIIMCF_text_rec *pt
00717 );
00718 
00719 extern IIIMF_status iiimcf_convert_iiimp_text_to_text(
00720     IIIMP_text *ptext,
00721     IIIMCF_text_rec *pt
00722 );
00723 
00724 extern IIIMF_status iiimcf_convert_iiimp_contents_to_text(
00725     IIIMP_contents *pcon,
00726     IIIMCF_text_rec *pt
00727 );
00728 
00729 extern IIIMF_status iiimcf_update_text_by_preedit_draw(
00730     IIIMCF_text_rec *pbase,
00731     IIIMP_message *pmes
00732 );
00733 
00734 extern IIIMF_status iiimcf_append_contents_to_text(
00735     IIIMCF_text_rec *pbase,
00736     IIIMP_contents *pcon
00737 );
00738 
00739 /* IIIMPEIMIL.c */
00740 extern EIMIL_value* EIMIL_construct_mtext_from_iiimp_text(
00741     IIIMP_text *pimt
00742 );
00743 
00744 extern EIMIL_value* EIMIL_construct_mtext_from_iiimp_string(
00745     IIIMP_string *pstr
00746 );
00747 
00748 extern EIMIL_value* EIMIL_construct_mtext_from_iiimp_contents(
00749     IIIMP_contents *pimc
00750 );
00751 
00752 extern int EIMIL_update_mtext_by_preedit_draw_message(
00753     EIMIL_value *pbase,
00754     IIIMP_message *pmes,
00755     EIMIL_value **ppv_result
00756 );
00757 
00758 /* component.c */
00759 extern IIIMF_status iiimcf_register_predefined_components(
00760     IIIMCF_handle_rec *ph
00761 );
00762 
00763 extern void iiimcf_delete_all_components(
00764     IIIMCF_handle_rec *ph
00765 );
00766 
00767 /* object.c */
00768 extern void iiimcf_delete_all_downloaded_objects(
00769     IIIMCF_handle_rec *ph
00770 );
00771 
00772 /* clientenv.c */
00773 extern IIIMF_status iiimcf_create_client_env(
00774     IIIMCF_attr attr,
00775     IIIMCF_client_env **ppenv
00776 );
00777 
00778 extern IIIMF_status iiimcf_delete_client_env(
00779     IIIMCF_client_env *penv
00780 );
00781 
00782 extern IIIMF_status iiimcf_create_im_connect_message(
00783     IIIMCF_handle_rec *ph,
00784     IIIMP_message **ppmes
00785 );
00786 
00787 extern IIIMF_status iiimcf_create_client_descriptor_message(
00788     IIIMCF_handle_rec *ph,
00789     IIIMP_message **ppmes
00790 );
00791 
00792 #ifdef __cplusplus
00793 }
00794 #endif
00795 
00796 #endif /* _IIIMCFINT_H_ */
00797 
00798 /* Local Variables: */
00799 /* c-file-style: "iiim-project" */
00800 /* End: */