Back to index

im-sdk  12.3.91
iiimcf.h
Go to the documentation of this file.
00001 /*
00002   iiimcf.h
00003 */
00004 #ifndef _IIIMCF_H_
00005 #define _IIIMCF_H_
00006 #ifdef HAVE_CONFIG_H
00007 #include <config.h>
00008 #endif
00009 #include <iiimp.h>
00010 
00011 /*
00012   constants
00013 */
00014 
00015 enum IIIMCF_VERSION_ITEMS {
00016        IIIMCF_LIBRARY_VERSION = (1 << 0),
00017        IIIMCF_PROTOCOL_VERSION = (1 << 1)
00018 };
00019 enum IIIMCF_VERSION_CATEGORIES {
00020        IIIMCF_MAJOR_VERSION = (1 << 8),
00021        IIIMCF_MINOR_VERSION = (1 << 9)
00022 };
00023 
00024 enum IIIMCF_UISTATE {
00025        IIIMCF_STATE_PREEDIT_CHANGED = (1 << 0),
00026        IIIMCF_STATE_LOOKUP_CHOICE_CHANGED = (1 << 1),
00027        IIIMCF_STATE_STATUS_CHANGED = (1 << 2),
00028        IIIMCF_STATE_COMMIT_REQUIRED = (1 << 3),
00029        IIIMCF_STATE_PENDING_EVENT = (1 << 4),
00030        IIIMCF_STATE_CONVERSION_MODE_CHANGED = (1 << 5),
00031        /* 5 - 15 are reserved.  */
00032        IIIMCF_STATE_INVALIDATED = (1 << 16)
00033 };
00034 
00035 enum IIIMCF_LOOKUP_CHOICE_DIRECTION {
00036        IIIMCF_LOOKUP_CHOICE_HORIZONTAL_DIRECTION = 0,
00037        IIIMCF_LOOKUP_CHOICE_VERTICAL_DIRECTION = 1
00038 };
00039 
00040 enum IIIMCF_LOOKUP_CHOICE_ITEM_FLAGS {
00041        IIIMCF_LOOKUP_CHOICE_ITEM_ENABLED = (1 << 0),
00042        IIIMCF_LOOKUP_CHOICE_SELECTED_ITEM = (1 << 1)
00043 };
00044 
00045 enum IIIMCF_ATTRS {
00046        IIIMCF_ATTR_SERVER_ADDRESS = 1,
00047        IIIMCF_ATTR_SERVER_SERVICE,
00048        IIIMCF_ATTR_USERNAME,
00049        IIIMCF_ATTR_PASSWORD,
00050        IIIMCF_ATTR_CLIENT_TYPE,
00051        IIIMCF_ATTR_DISABLE_AUTOMATIC_RESTORATION,
00052        IIIMCF_ATTR_CLIENT_X_DISPLAY_NAME,
00053        IIIMCF_ATTR_CLIENT_X_SERVER_VENDOR,
00054 
00055        IIIMCF_ATTR_INPUT_LANGUAGE = 0x1000,
00056        IIIMCF_ATTR_INPUT_METHOD,
00057        IIIMCF_ATTR_DISABLE_AUTOMATIC_TRIGGER_NOTIFY,
00058        IIIMCF_ATTR_INPUT_METHOD_NAME,
00059 
00060        /* for private use area. */
00061        IIIMCF_ATTR_PRIVATE_START = 0x10000
00062 };
00063 
00064 enum IIIMCF_EVENT_TYPES {
00065        IIIMCF_EVENT_TYPE_DESTROY = -2,
00066        IIIMCF_EVENT_TYPE_RESET = -1,
00067 
00068        IIIMCF_EVENT_TYPE_EVENTLIKE = 1,
00069        IIIMCF_EVENT_TYPE_KEYEVENT = 2,
00070        IIIMCF_EVENT_TYPE_KEYEVENT_END = 0x0FFF,
00071        
00072        IIIMCF_EVENT_TYPE_TRIGGER_NOTIFY_START = 0x1000,
00073        IIIMCF_EVENT_TYPE_TRIGGER_NOTIFY = 0x1000,
00074        IIIMCF_EVENT_TYPE_TRIGGER_NOTIFY_END = 0x1FFF,
00075        IIIMCF_EVENT_TYPE_OPERATION = 0x2000,
00076        IIIMCF_EVENT_TYPE_SETICFOCUS = 0x3000,
00077        IIIMCF_EVENT_TYPE_UNSETICFOCUS = 0x3001,
00078        IIIMCF_EVENT_TYPE_EVENTLIKE_END = 0x3FFF,
00079 
00080        IIIMCF_EVENT_TYPE_HOTKEY_NOTIFY = 0x4000,
00081 
00082        IIIMCF_EVENT_TYPE_UI = 0x8000,
00083 
00084        IIIMCF_EVENT_TYPE_UI_PREEDIT = 0x9000,
00085        IIIMCF_EVENT_TYPE_UI_PREEDIT_START,
00086        IIIMCF_EVENT_TYPE_UI_PREEDIT_CHANGE,
00087        IIIMCF_EVENT_TYPE_UI_PREEDIT_DONE,
00088        IIIMCF_EVENT_TYPE_UI_PREEDIT_END = 0x9FFF,
00089        
00090        IIIMCF_EVENT_TYPE_UI_LOOKUP_CHOICE = 0xA000,
00091        IIIMCF_EVENT_TYPE_UI_LOOKUP_CHOICE_START,
00092        IIIMCF_EVENT_TYPE_UI_LOOKUP_CHOICE_CHANGE,
00093        IIIMCF_EVENT_TYPE_UI_LOOKUP_CHOICE_DONE,
00094        IIIMCF_EVENT_TYPE_UI_LOOKUP_CHOICE_END = 0xAFFF,
00095 
00096        IIIMCF_EVENT_TYPE_UI_STATUS = 0xB000,
00097        IIIMCF_EVENT_TYPE_UI_STATUS_START,
00098        IIIMCF_EVENT_TYPE_UI_STATUS_CHANGE,
00099        IIIMCF_EVENT_TYPE_UI_STATUS_DONE,
00100        IIIMCF_EVENT_TYPE_UI_STATUS_END = 0xBFFF,
00101 
00102        IIIMCF_EVENT_TYPE_UI_COMMIT = 0xC000,
00103        IIIMCF_EVENT_TYPE_UI_COMMIT_END = 0xCFFF,
00104 
00105        IIIMCF_EVENT_TYPE_UI_END = 0xFFFF,
00106 
00107        IIIMCF_EVENT_TYPE_AUX = 0x80000,
00108        IIIMCF_EVENT_TYPE_AUX_START,
00109        IIIMCF_EVENT_TYPE_AUX_DRAW,
00110        IIIMCF_EVENT_TYPE_AUX_SETVALUES,
00111        IIIMCF_EVENT_TYPE_AUX_DONE,
00112        IIIMCF_EVENT_TYPE_AUX_GETVALUES,
00113        IIIMCF_EVENT_TYPE_AUX_END = 0x8FFFF
00114 };
00115 typedef enum IIIMCF_EVENT_TYPES IIIMCF_event_type;
00116 #define IIIMCF_IS_EVENT_TYPE_BROADCAST(type) ((type) < 0)
00117 
00118 /*
00119   typedefs & structures
00120 */
00121 
00122 /* opaque object type */
00123 #if 1
00124 typedef struct IIIMCF_handle_rec* IIIMCF_handle;
00125 typedef struct IIIMCF_attr_rec* IIIMCF_attr;
00126 typedef struct IIIMCF_context_rec* IIIMCF_context;
00127 typedef struct IIIMCF_text_rec* IIIMCF_text;
00128 /* typedef struct IIIMCF_text_property_value_rec* IIIMCF_text_property_value; */
00129 typedef struct IIIMCF_lookup_choice_rec* IIIMCF_lookup_choice;
00130 typedef struct IIIMCF_language_rec* IIIMCF_language;
00131 typedef struct IIIMCF_input_method_rec* IIIMCF_input_method;
00132 typedef struct IIIMCF_imeinfo_rec* IIIMCF_imeinfo;
00133 typedef struct IIIMCF_event_rec* IIIMCF_event;
00134 typedef struct IIIMCF_component_rec* IIIMCF_component;
00135 typedef struct IIIMCF_downloaded_object_rec* IIIMCF_downloaded_object;
00136 #else
00137 /* In case that a compiler does not accept the above declaration
00138    without proper definition (normally that does not happen),
00139    use the following declarations instead.  */
00140 typedef void* IIIMCF_handle;
00141 typedef void* IIIMCF_attr;
00142 typedef void* IIIMCF_context;
00143 typedef void* IIIMCF_text;
00144 typedef void* IIIMCF_text_property_value;
00145 typedef void* IIIMCF_lookup_choice;
00146 typedef void* IIIMCF_language;
00147 typedef void* IIIMCF_input_method;
00148 typedef void* IIIMCF_event;
00149 typedef void* IIIMCF_component;
00150 typedef void* IIIMCF_downloaded_object;
00151 #endif
00152 
00153 /* special attr */
00154 #define IIIMCF_ATTR_NULL ((IIIMCF_attr) (NULL))
00155 
00156 /* transparent object typedefs & structures */
00157 
00158 /* object descriptor */
00159 typedef struct {
00160     int category;
00161     size_t size;
00162     int predefined_id;
00163     int dynamic_id;
00164     const IIIMP_card16 *domain;
00165     const IIIMP_card16 *hrn;
00166     const IIIMP_card16 *signature;
00167     const IIIMP_card16 *user;
00168 } IIIMCF_object_descriptor;
00169 
00170 /* the information of input method engine */
00171 typedef struct IIIMCF_imeinfo_rec IIIMCF_imeinfo_rec;
00172 struct IIIMCF_imeinfo_rec {
00173     int enable;
00174     char *ime_id;
00175     IIIMP_card16 *imename;
00176     IIIMP_card16 *version;
00177     IIIMP_card16 *description;
00178     IIIMP_card16 *author;
00179     IIIMP_card16 *copyright;
00180     IIIMP_card16 *reserved1;
00181     IIIMP_card16 *reserved2;
00182 };
00183 
00184 /* keyevent */
00185 typedef struct IIIMCF_keyevent IIIMCF_keyevent;
00186 struct IIIMCF_keyevent {
00187     IIIMP_int32 keycode;
00188     IIIMP_int32 keychar;
00189     IIIMP_int32 modifier;
00190     IIIMP_int32 time_stamp;
00191 };
00192 
00193 /* Hotkeys */
00194 typedef struct IIIMCF_hotkey IIIMCF_hotkey;
00195 struct IIIMCF_hotkey {
00196     int hotkey_id;
00197     int state_flag;
00198     int action_flag;
00199     char *hotkey_label; /* identify which specific hotkey it is */
00200     int nkeys; 
00201     IIIMCF_keyevent *keys;
00202 };
00203 
00204 /* Hotkey Profile */
00205 typedef struct IIIMCF_hotkey_profile IIIMCF_hotkey_profile;
00206 struct IIIMCF_hotkey_profile {
00207     int scope;
00208     int profile_id;
00209     int num_hotkeys;
00210     IIIMCF_hotkey *phot_keys;
00211 };
00212 
00213 /* Namespace Listener*/
00214 typedef struct IIIMCF_ns_listener IIIMCF_ns_listener;
00215 struct IIIMCF_ns_listener {
00216     int listener_id;
00217     void *nscl_fp;
00218     char *filename;
00219 };
00220 
00221 /* Namespace */
00222 typedef struct IIIMCF_ns IIIMCF_ns;
00223 struct IIIMCF_ns {
00224     int ns_id;
00225     int nsc_fd;
00226     char *filename;
00227     int size;
00228     DIR *nsc_dirp;
00229     char *dirname;
00230 };
00231 
00232 /* component interface */
00233 typedef IIIMF_status
00234 (*IIIMCF_component_interface)(
00235     IIIMCF_context context,
00236     IIIMCF_event event,
00237     IIIMCF_component current,
00238     IIIMCF_component parent
00239 );
00240 
00241 #define IIIMCF_ROOT_COMPONENT ((IIIMCF_component) NULL)
00242 
00243 /*
00244   Functions 
00245 */
00246 #ifdef __cplusplus
00247 extern "C" {
00248 #endif
00249 
00250 /* Initialization & finalization */
00251 
00252 extern IIIMF_status iiimcf_initialize(
00253     IIIMCF_attr attr
00254 );
00255 extern IIIMF_status iiimcf_finalize();
00256 
00257 /* create & destroy handle */
00258 
00259 extern IIIMF_status iiimcf_create_handle(
00260     IIIMCF_attr attr,
00261     IIIMCF_handle *phandle
00262 );
00263 extern IIIMF_status iiimcf_destroy_handle(
00264     IIIMCF_handle handle
00265 );
00266 
00267 /* create & destroy context */
00268 
00269 extern IIIMF_status iiimcf_create_context(
00270     IIIMCF_handle handle,
00271     IIIMCF_attr attr,
00272     IIIMCF_context *pcontext
00273 );
00274 extern IIIMF_status iiimcf_destroy_context(
00275     IIIMCF_context context
00276 );
00277 
00278 /* IM_SETICVALUES */
00279 extern IIIMF_status iiimcf_context_set_attr(
00280     IIIMCF_context context,
00281     IIIMCF_attr attr
00282 );
00283 
00284 /* reset context */
00285 
00286 extern IIIMF_status iiimcf_reset_context(
00287     IIIMCF_context context
00288 );
00289 
00290 /* data manipulation */
00291 /* attribute */
00292 
00293 extern IIIMF_status iiimcf_create_attr(
00294     IIIMCF_attr *pattr
00295 );
00296 extern IIIMF_status iiimcf_destroy_attr(
00297     IIIMCF_attr attr
00298 );
00299 
00300 extern IIIMF_status iiimcf_attr_put_string_value(
00301     IIIMCF_attr attr,
00302     int property,
00303     const char *str
00304 );
00305 extern IIIMF_status iiimcf_attr_get_string_value(
00306     IIIMCF_attr attr,
00307     int property,
00308     const char **pstr
00309 );
00310 
00311 extern IIIMF_status iiimcf_attr_put_integer_value(
00312     IIIMCF_attr attr,
00313     int property,
00314     int number
00315 );
00316 extern IIIMF_status iiimcf_attr_get_integer_value(
00317     IIIMCF_attr attr,
00318     int property,
00319     int *pnumber
00320 );
00321 
00322 extern IIIMF_status iiimcf_attr_put_ptr_value(
00323     IIIMCF_attr attr,
00324     int property,
00325     void *ptr
00326 );
00327 extern IIIMF_status iiimcf_attr_get_ptr_value(
00328     IIIMCF_attr attr,
00329     int property,
00330     void **pptr
00331 );
00332 
00333 /* text */
00334 extern IIIMF_status iiimcf_get_text_utf16string(
00335     IIIMCF_text text,
00336     const IIIMP_card16** putf16str
00337 );
00338 extern IIIMF_status iiimcf_get_text_length(
00339     IIIMCF_text text,
00340     int *plen
00341 );
00342 extern IIIMF_status iiimcf_get_char_with_feedback(
00343     IIIMCF_text text,
00344     int pos,
00345     IIIMP_card16 *pch,
00346     int *pnum_feedbacks,
00347     const IIIMP_card32** pfeedback_id,
00348     const IIIMP_card32** pfeedback
00349 );
00350 extern IIIMF_status iiimcf_duplicate_text(
00351     IIIMCF_text src,
00352     IIIMCF_text *pduplicated
00353 );
00354 extern IIIMF_status iiimcf_destroy_text(
00355     IIIMCF_text text
00356 );
00357 
00358 /* lookup choice */
00359 
00360 extern IIIMF_status iiimcf_get_lookup_choice_configuration(
00361     IIIMCF_lookup_choice lookup_choice,
00362     int *pchoices_per_window,
00363     int *pnumber_of_rows,
00364     int *pnumber_of_columns,
00365     int *pdirection
00366 );
00367 extern IIIMF_status iiimcf_get_lookup_choice_size(
00368     IIIMCF_lookup_choice lookup_choice,
00369     int *psize,
00370     int *pindex_of_first_candidate,
00371     int *pindex_of_last_candidate,
00372     int *pindex_of_current_candidate
00373 );
00374 extern IIIMF_status iiimcf_get_lookup_choice_title(
00375     IIIMCF_lookup_choice lookup_choice,
00376     IIIMCF_text *ptitle
00377 );
00378 extern IIIMF_status iiimcf_get_lookup_choice_item(
00379     IIIMCF_lookup_choice lookup_choice,
00380     int idx,
00381     IIIMCF_text *pcandidate,
00382     IIIMCF_text *plabel,
00383     int *pflag
00384 );
00385 
00386 /* language */
00387 extern IIIMF_status iiimcf_get_language_id(
00388     IIIMCF_language lang,
00389     const char **plangid
00390 );
00391 
00392 /* input method */
00393 extern IIIMF_status iiimcf_get_input_method_desc(
00394     IIIMCF_input_method input_method,
00395     const IIIMP_card16** pinput_method_idname,
00396     const IIIMP_card16** pinput_method_hrn,
00397     const IIIMP_card16** pinput_method_domain
00398 );
00399 extern IIIMF_status iiimcf_get_input_method_languages(
00400     IIIMCF_input_method input_method,
00401     int *pinput_method_language_size,
00402     IIIMCF_language **pplanguages
00403 );
00404 extern IIIMF_status iiimcf_set_input_method_name(
00405     IIIMCF_input_method input_method,
00406     const IIIMP_card16 *input_method_name
00407 );
00408 
00409 extern IIIMF_status iiimcf_get_input_method_imeinfos(
00410     IIIMCF_input_method input_method,
00411     int *pinput_method_imeinfo_size,
00412     const IIIMCF_imeinfo_rec ***ppimeinfos
00413 );
00414 
00415 /* downloaded object */
00416 extern IIIMF_status iiimcf_get_downloaded_object_descriptor(
00417     IIIMCF_downloaded_object object,
00418     const IIIMCF_object_descriptor **ppdesc
00419 );
00420 extern IIIMF_status iiimcf_get_downloaded_object_filename(
00421     IIIMCF_downloaded_object object,
00422     const IIIMP_card16 **pfilename
00423 );
00424 extern IIIMF_status iiimcf_get_downloaded_objects(
00425     IIIMCF_handle handle,
00426     int num_objs,
00427     const IIIMCF_object_descriptor **ppdesc,
00428     IIIMCF_downloaded_object *pobjs
00429 );
00430 
00431 /* version */
00432 extern IIIMF_status iiimcf_get_version_number(
00433     IIIMCF_handle handle,
00434     int flag,
00435     int *pversion_number
00436 );
00437 
00438 /* state checking */
00439 extern IIIMF_status iiimcf_is_UIstate_changed(
00440     IIIMCF_context context,
00441     int *pflag
00442 );
00443 
00444 /* info */
00445 extern IIIMF_status iiimcf_get_supported_languages(
00446     IIIMCF_handle handle,
00447     int *pnum_langs,
00448     IIIMCF_language **pplangs
00449 );
00450 extern IIIMF_status iiimcf_get_supported_input_methods(
00451     IIIMCF_handle handle,
00452     int *pnum_input_methods,
00453     IIIMCF_input_method **ppinput_methods
00454 );
00455 extern IIIMF_status iiimcf_get_object_descriptor_list(
00456     IIIMCF_handle handle,
00457     int *pnum_object_descriptors,
00458     const IIIMCF_object_descriptor **ppdesc
00459 );
00460 extern IIIMF_status iiimcf_get_trigger_keys(
00461     IIIMCF_handle handle,
00462     int *pnum_on_keys,
00463     const IIIMCF_keyevent **pponkeys,
00464     int *pnum_off_keys,
00465     const IIIMCF_keyevent **ppoffkeys
00466 );
00467 extern IIIMF_status iiimcf_get_im_id(
00468     IIIMCF_handle handle,
00469     int *pim_id
00470 );
00471 extern IIIMF_status iiimcf_get_current_conversion_mode(
00472     IIIMCF_context context,
00473     int *pflag
00474 );
00475 extern IIIMF_status iiimcf_get_preedit_text(
00476     IIIMCF_context context,
00477     IIIMCF_text *ptext,
00478     int *pcaret_position
00479 );
00480 extern IIIMF_status iiimcf_get_status_text(
00481     IIIMCF_context context,
00482     IIIMCF_text *ptext
00483 );
00484 extern IIIMF_status iiimcf_get_lookup_choice(
00485     IIIMCF_context context,
00486     IIIMCF_lookup_choice *plookup_choice
00487 );
00488 extern IIIMF_status iiimcf_get_committed_text(
00489     IIIMCF_context context,
00490     IIIMCF_text *ptext
00491 );
00492 extern IIIMF_status iiimcf_get_aux_draw_data(
00493     IIIMCF_context context,
00494     const IIIMP_card16 *aux_name,
00495     IIIMP_card32 class_idx,
00496     int *pnum_intvals,
00497     const IIIMP_card32 **ppintvals,
00498     int *pnum_strvals,
00499     const IIIMP_card16 ***ppstrs
00500 );
00501 
00502 extern IIIMF_status iiimcf_context_get_attr(
00503     IIIMCF_context context,
00504     IIIMCF_attr *pattr
00505 );
00506 extern IIIMF_status iiimcf_get_ic_id(
00507     IIIMCF_context context,
00508     int *pic_id
00509 );
00510 
00511 /* event */
00512 extern IIIMF_status iiimcf_get_event_type(
00513     IIIMCF_event event,
00514     IIIMCF_event_type *pevent_type
00515 );
00516 
00517 extern IIIMF_status iiimcf_create_keyevent(
00518     const IIIMCF_keyevent *pkeyevent,
00519     IIIMCF_event *pevent
00520 );
00521 
00522 extern IIIMF_status iiimcf_create_trigger_notify_event(
00523     int flag,
00524     IIIMCF_event *pevent
00525 );
00526 
00527 extern IIIMF_status iiimcf_create_hotkey_notify_event(
00528     IIIMCF_event *pevent
00529 );
00530 
00531 extern IIIMF_status iiimcf_create_seticfocus_event(
00532     IIIMCF_event *pevent
00533 );
00534 
00535 extern IIIMF_status iiimcf_create_unseticfocus_event(
00536     IIIMCF_event *pevent
00537 );
00538 
00539 extern IIIMF_status iiimcf_create_aux_setvalues_event(
00540     const IIIMP_card16 *aux_name,
00541     IIIMP_card32 class_idx,
00542     int num_intvals,
00543     const IIIMP_card32 *pintvals,
00544     int num_strvals,
00545     const IIIMP_card16 **pstrs,
00546     IIIMCF_event *pevent
00547 );
00548 
00549 extern IIIMF_status iiimcf_create_aux_getvalues_event(
00550     const IIIMP_card16 *aux_name,
00551     IIIMP_card32 class_idx,
00552     int num_intvals,
00553     const IIIMP_card32 *pintvals,
00554     int num_strvals,
00555     const IIIMP_card16 **pstrs,
00556     IIIMCF_event *pevent
00557 );
00558 /* event value */
00559 extern IIIMF_status iiimcf_get_keyevent_value(
00560     IIIMCF_event event,
00561     IIIMCF_keyevent *pkeyevent
00562 );
00563 
00564 extern IIIMF_status iiimcf_get_trigger_notify_flag(
00565     IIIMCF_event event,
00566     int *pflag
00567 );
00568 
00569 extern IIIMF_status iiimcf_get_aux_event_value(
00570     IIIMCF_event event,
00571     const IIIMP_card16 **paux_name,
00572     IIIMP_card32 *pclass_idx,
00573     int *pnum_intvals,
00574     const IIIMP_card32 **ppintvals,
00575     int *pnum_strvals,
00576     const IIIMP_card16 ***ppstrs
00577 );
00578 
00579 /* event flow control */
00580 extern IIIMF_status iiimcf_forward_event(
00581     IIIMCF_context context,
00582     IIIMCF_event event
00583 );
00584 
00585 extern IIIMF_status iiimcf_dispatch_event(
00586     IIIMCF_context context,
00587     IIIMCF_event event
00588 );
00589 
00590 extern IIIMF_status iiimcf_get_next_event(
00591     IIIMCF_context context,
00592     IIIMCF_event *pevent
00593 );
00594 
00595 extern IIIMF_status iiimcf_peek_next_event(
00596     IIIMCF_context context,
00597     IIIMCF_event *pevent
00598 );
00599 
00600 extern IIIMF_status iiimcf_ignore_event(
00601     IIIMCF_event event
00602 );
00603 
00604 /* component management */
00605 
00606 extern IIIMF_status iiimcf_register_component(
00607     IIIMCF_handle handle,
00608     const char* name,
00609     IIIMCF_component_interface interface,
00610     IIIMCF_component parent,
00611     IIIMCF_component* pcomp
00612 );
00613 
00614 extern IIIMF_status iiimcf_unregister_component(
00615     IIIMCF_component component
00616 );
00617 
00618 extern IIIMF_status iiimcf_get_component(
00619     IIIMCF_handle handle,
00620     const char *name,
00621     IIIMCF_component* pcomponent
00622 );
00623 
00624 extern IIIMF_status iiimcf_component_get_attr(
00625     IIIMCF_component component,
00626     IIIMCF_attr* pattr
00627 );
00628 
00629 /* capability */
00630 
00631 extern IIIMF_status iiimcf_is_capability_supported(
00632     IIIMCF_handle handle,
00633     int capability
00634 );
00635 
00636 #ifdef __cplusplus
00637 }
00638 #endif
00639 
00640 #endif /* _IIIMCF_H_ */
00641 
00642 /* Local Variables: */
00643 /* c-file-style: "iiim-project" */
00644 /* End: */