uilib

Autres langues

Langue: ja

Version: 4 April 1991 (debian - 07/07/09)

Section: 3 (Bibliothèques de fonctions)

ÌŸÁ°

UILib intro - ¥æ¡Œ¥¶¥€¥ó¥¿¥Õ¥§¡Œ¥¹¥é¥€¥Ö¥é¥ê¥€¥ó¥È¥í

ÀâÌÀ

¥æ¡Œ¥¶¥€¥ó¥¿¥Õ¥§¡Œ¥¹¥é¥€¥Ö¥é¥ê€Ï¡€£±Êž»ú€ÎÆþÎÏ¡€£±¥­¡Œ€ÎÆþÎÏ€ËÂбþ€·€Æ¡€ Ì€³ÎÄêÊž»úÎó¡€³ÎÄêÊž»úÎó¡€ÃíÌÜÊžÀá°ÌÃÖ¡€¥¹¥Æ¡Œ¥¿¥¹ÉœŒš€Î€¿€á€ÎÊž»úÎó¡€ žõÊä°ìÍ÷€Î€¿€á€ÎÊž»úÎó€Ê€É€òÊÖŽÔ€¹€ë¥é¥€¥Ö¥é¥ê€Ç€¹¡¥¥¢¥×¥ê¥±¡Œ¥·¥ç¥ó¥× ¥í¥°¥é¥à€Ï¡€ÊÖŽÔ€µ€ì€¿ŸðÊó€Ë€è€Ã€ÆÉœŒš€ò¹Ô€€€Þ€¹¡¥¥¢¥×¥ê¥±¡Œ¥·¥ç¥ó¥×¥í ¥°¥é¥à€Ï¡€¥­¡ŒÆþÎϰʳ°€Î¥È¥ê¥¬¡Œ€Ë€è€Ã€Æ(Î〚€Ð¥Þ¥Š¥¹€Ë€è€ëÁªÂò€Ê€É)¥â¡Œ ¥É€ÎÁ«°Ü€òÀ©žæ€¹€ë€³€È€â€Ç€­€Þ€¹¡¥

¥æ¡Œ¥¶¥€¥ó¥¿¥Õ¥§¡Œ¥¹¥é¥€¥Ö¥é¥ê€Ç€Ï¡€TTY¥Ù¡Œ¥¹ €ÇjrKanjiString€ª€è€ÓjrKanjiControl¡€£Ø¥Š¥£¥ó¥É¥Š¥Ù¡Œ¥¹€Ç XLookupKanjiString€ª€è€ÓXKanjiControl€òÄ󶡀·€Þ€¹¡¥

¥æ¡Œ¥¶¥€¥ó¥¿¥Õ¥§¡Œ¥¹¥é¥€¥Ö¥é¥ê€ò»ÈÍÑ€¹€ëŸì¹ç€Ë€Ï°Ê²Œ€Î¥Õ¥¡¥€¥ë€¬É¬Í×€Ë €Ê€ê€Þ€¹¡¥

¡Š
TTY¥Ù¡Œ¥¹
ŽØ¿ô
jrKanjiString, jrKanjiControl
¥Ø¥Ã¥À¥Õ¥¡¥€¥ë
canna/jrkanji.h
¥é¥€¥Ö¥é¥ê
libcanna.a, libcanna.so
¡Š
X¥Š¥£¥ó¥É¥Š¥Ù¡Œ¥¹
ŽØ¿ô
XLookupKanjiString, XKanjiControl
¥Ø¥Ã¥À¥Õ¥¡¥€¥ë
canna/kanji.h
¥é¥€¥Ö¥é¥ê
libXn.a, libXn.so, libcanna.a, libcanna.so

³µÍ×

jrKanjiString
TTY€«€é€ÎÆþÎÏ¡€£Ø€Ç€ÎÆþÎÏ¡€ŽðËÜ¥Š¥£¥ó¥É¥Š€Ç€ÎÆþÎπʀɰìÈÌŪ€Ê¥­¡Œ¥Ü¡Œ ¥ÉÆþÎÏ€ËÂЀ·€ÆŽÁ»úÊž»úÎó€Ø€ÎÊÑŽ¹€ò¹Ô€€€Þ€¹¡¥
jrKanjiControl
jrKanjiString€Ç€ÎÀ©žæ€ò»ØÄꀵ€ì€¿¥Ñ¥é¥á¥¿€Ë€è€ê¹Ô€€€Þ€¹¡¥
XLookupKanjiString
£Ø¥Š¥£¥ó¥É¥Š¥·¥¹¥Æ¥à€Ë€ª€€€Æ¡€¥­¡Œ¥Ü¡Œ¥ÉÆþÎÏ(¥­¡Œ¥€¥Ù¥ó¥È)€ÎŽÁ»úÊž»úÎó €Ø€ÎÊÑŽ¹€ò¹Ô€€€Þ€¹¡¥
XKanjiControl
XLookupKanjiString€Ç€ÎÀ©žæ€ò»ØÄꀵ€ì€¿¥Ñ¥é¥á¥¿€Ë€è€ê¹Ô€€€Þ€¹¡¥

ÌŸÁ°

jrKanjiString - °ìÈÌŪ̟¥­¡Œ¥Ü¡Œ¥ÉÆþÎÏ€ËÂЀ·€Æ€Î€«€ÊŽÁ»úÊÑŽ¹

·ÁŒ°

 #include <canna/jrkanji.h>
 int jrKanjiString(context_id, ch, buffer_return, bytes_buffer, kanji_status_return)
 int context_id;
 int ch;
 char *buffer_return;
 int bytes_buffer;
 jrKanjiStatus *kanji_status_return;
 

ÀâÌÀ

jrKanjiString€ÏTTY€«€é€ÎÆþÎÏ¡€£Ø€Ç€ÎÆþÎÏ¡€ŽðËÜ¥Š¥£¥ó¥É¥Š€Ç€ÎÆþÎπʀɡ€ °ìÈÌŪ€Ê¥­¡Œ¥Ü¡Œ¥ÉÆþÎÏ€ËÂЀ·€ÆŽÁ»úÊž»úÎó€Ø€ÎÊÑŽ¹€ò¹Ô€ŠŽØ¿ô€Ç€¹¡¥

jrKanjiString€Ï¡€¥¢¥¹¥­¡Œ¥³¡Œ¥É€ÇÉœ€µ€ì€ë¥­¡ŒÆþÎÏ€òÆüËÜžìÊž»úÎó€ËÂбþ €µ€»€ëŽÊ°×¥ë¡Œ¥Á¥ó€Ç¡€ÆþÎÏ€µ€ì€¿¥­¡Œ€òÉœ€¹¥³¡Œ¥É€òch€Ë€ÆÍ¿€š€ë€³ €È€Ë€è€ê¡€ÉœŒš€¹€Ù€­Êž»úÎó€òÊÖ€·€Þ€¹¡¥jrKanjiString€ÎÆâÉô€Ë€ª€€€Æ¥í¡Œ ¥Þ»ú€«€ÊÊÑŽ¹¡€€«€ÊŽÁ»úÊÑŽ¹€¬¹Ô€ï€ì€Þ€¹¡¥

¥Õ¥¡¥ó¥¯¥·¥ç¥ó¥­¡Œ€ä¡€¥«¡Œ¥œ¥ë¥­¡Œ€Ê€É€Î¥­¡Œ€Ë€Ä€€€Æ€Ï¡€€œ€ì€é€Î¥­¡Œ€Î ȯÀž€¹€ë¥š¥¹¥±¡Œ¥×¥·¡Œ¥±¥ó¥¹€Î Âå€ï€ê€Ë¥Õ¥¡¥ó¥¯¥·¥ç¥ó¥­¡Œ€Î¹à€ÇŒš€¹ÆÃỀΠ¥³¡Œ¥É€òjrKanjiString€ËÍ¿€š€Æ²Œ€µ€€¡¥

context_id€ÇÍ¿€š€ë¥³¥ó¥Æ¥¯¥¹¥ÈŒ±Ê̻Ҁϡ€ŒÂºÝ€Ë€Ï€œ€Î€Þ€Þ€ÎÃÍ€¬ÍÑ €€€é€ì€ë€ï€±€Ç€Ï€Ê€¯¡€context_id€ÇÍ¿€š€é€ì€ë¥³¥ó¥Æ¥¯¥¹¥ÈŒ±Ê̻Ҁò ¥­¡Œ€È€·€¿¥³¥ó¥Æ¥¯¥¹¥È€¬ºîÀ®€µ€ì¡€ÍÑ€€€é€ì€ë€³€È€Ë€Ê€ê€Þ€¹¡¥€·€¿€¬€Ã€Æ ¥¢¥×¥ê¥±¡Œ¥·¥ç¥ó¥×¥í¥°¥é¥Þ€ÏjrKanjiString€ËÍ¿€š€ë¥³¥ó¥Æ¥¯¥¹¥ÈŒ±ÊÌ»Ò€Ë €Ä€€€Æ€Ï¡€Å¬Åö€ÊÃÍ€òÍ¿€š€ì€ÐÎÉ€¯¡€ÆþÎϥݡŒ¥È€Î¥Õ¥¡¥€¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿€ò Í¿€š€ë€Î€¬Å¬Åö€È¹Í€š€é€ì€Þ€¹¡¥€¿€À€·¡€0€òÍ¿€š€¿»þ€ÏÆÃỀǡ€¥·¥¹¥Æ¥à€Ë ¥Ç¥Õ¥©¥ë¥È€ÇœàÈ÷€µ€ì€Æ€€€ë¥³¥ó¥Æ¥¯¥¹¥È€¬ÍÑ€€€é€ì€Þ€¹¡¥¥³¥ó¥Æ¥¯¥¹¥È€ËÆà ÊÌ€ÎÇÛΞ€ò¹Ô€ï€Ê€€Ÿì¹ç€Ë€Ï0€ò»ØÄꀹ€ë€Î€¬Å¬Åö€Ç€¹¡¥

ÆþÎÏ€ËÂбþ€·€Æ¡€¥í¡Œ¥Þ»ú€«€ÊÊÑŽ¹¡€€«€ÊŽÁ»úÊÑŽ¹€ÎÃæŽÖ·ë²Ì€òÉœŒš€¹€ëɬÍ× €¬€¢€ê€Þ€¹€¬¡€ÉœŒš€¹€Ù€­ÃæŽÖ·ë²Ì€Ïkanji_status_return€ò²ð€·€Æ¡€ ¥¢¥×¥ê¥±¡Œ¥·¥ç¥ó€ËÊÖ€µ€ì€Þ€¹¡¥

¥¢¥×¥ê¥±¡Œ¥·¥ç¥ó€Ïkanji_status_return€ËÊÖ€µ€ì€ëŸðÊó€Ë€·€¿€¬€Ã€Æ ÃæŽÖ·ë²Ì€òÉœŒš€·€Ê€±€ì€Ð€Ê€ê€Þ €»€ó¡¥kanji_status_return€ÏjrKanjiStatus·¿€Î¹œÂ€Â΀ǀ¹¡¥

jrKanjiStatus¹œÂ€Â΀ϰʲŒ€Î€è€Š€ËÄêµÁ€µ€ì€Þ€¹¡¥

 typedef struct {
   unsigned char *echoStr; /* ¥í¡Œ¥«¥ë¥š¥³¡Œ€Î€¿€á€ÎÊž»úÎó */
   int           length;   /* ¥í¡Œ¥«¥ë¥š¥³¡ŒÊž»úÎó€ÎĹ€µ */
   int           revPos;   /* ¥í¡Œ¥«¥ë¥š¥³¡ŒÊž»úÎó€Î€Š€ÁÈ¿ÅŸÉœŒšÉôʬ€Ø€Î¥ª¥Õ¥»¥Ã¥È */
   int           revLen;   /* ¥í¡Œ¥«¥ë¥š¥³¡ŒÊž»úÎó€Î€Š€ÁÈ¿ÅŸÉœŒšÉôʬ€ÎĹ€µ */
   unsigned long info;     /* €œ€ÎŸ€ÎŸðÊó */
   unsigned char *mode;    /* ¥â¡Œ¥ÉŸðÊó */
   struct {
     unsigned char *line;  /* žõÊä°ìÍ÷€ÎÊž»úÎó */
     int           length; /* žõÊä°ìÍ÷Êž»úÎó€ÎĹ€µ */
     int           revPos; /* žõÊä°ìÍ÷Êž»úÎó€Î€Š€ÁÈ¿ÅŸÉœŒšÉôʬ€Ø€Î¥ª¥Õ¥»¥Ã¥È */
     int           revLen; /* žõÊä°ìÍ÷Êž»úÎó€Î€Š€ÁÈ¿ÅŸÉœŒšÉôʬ€ÎĹ€µ */
   } gline;                /* žõÊä°ìÍ÷€ËŽØ€¹€ëŸðÊó */
 } jrKanjiStatus;
 

€«€ÊŽÁ»úÊÑŽ¹€òÍÑ€€€¿ÆüËÜžìÆþÎÏ»þ€Ë€ÏÊÑŽ¹€ÎÂП݀ȀʀëÆɀ߀ʀɀò¥í¡Œ¥«¥ë ¥š¥³¡Œ€¹€ëɬÍ×€¬€¢€ê€Þ€¹¡¥jrKanjiString€Ï¥í¡Œ¥«¥ë¥š¥³¡Œ€Ê€ÉÉœŒš€ËŽØ€¹ €ë€³€È€Ï²¿€â¹Ô€ï€º¡€Âå€ï€ê€Ë¥í¡Œ¥«¥ë¥š¥³¡Œ€¹€ë€Ù€­ Êž»úÎó€òjrKanjiStatus¹œÂ€Â΀òÍÑ€€€Æ¥¢¥×¥ê¥±¡Œ¥·¥ç¥óŠ€ËÊÖ€·€Þ€¹¡¥

ÊÑŽ¹€¬³ÎÄꀹ€ë€Þ€Ç€Ï¡€¥í¡Œ¥Þ»ú€«€ÊÊÑŽ¹€µ€ì€Æ€€€ëÊž»ú€ä¡€ÊÑŽ¹žõÊäÊž»ú€Ê €É¡€¥í¡Œ¥«¥ë¥š¥³¡Œ€¹€Ù€­(EUC)Êž»úÎó€¬echoStr¥á¥ó¥Ð€Ë€è€êÊÖ€µ€ì€Þ €¹¡¥€³€Î€È€­¡€¥í¡Œ¥«¥ë¥š¥³¡ŒÊž»úÎó€ÎĹ€µ¡€¥ê¥Ð¡Œ¥¹ÉœŒš€Î ³«»Ï°ÌÃÖ€ÈĹ€µ(¥Ð¥€¥Èñ°Ì)€¬¡€ €œ€ì€Ÿ€ì¡€length¥á¥ó¥Ð¡€revPos¡€revLen¥á¥ó¥Ð€Ë€ÆÊÖ€µ€ì€Þ€¹¡¥¥í¡Œ ¥«¥ë¥š¥³¡Œ€¹€Ù€­Êž»úÎó€Î€¿€á€Î¥Ð¥Ã¥Õ¥¡€ÏjrKanjiString€Ë€è€Ã€ÆŒ«Æ°Åª€Ë ³ÎÊÝ€µ€ì€Þ€¹€¬¡€€œ€ÎÎΰè€ÏÆɀ߀Ȁê€Î€ß€ËÍÑ€€€é€ì€ë€Ù€­€Ç€¢€ê¡€€œ€ÎÎÎ°è €ËÊž»úÎó€òœñ€­¹þ€ó€Ç€Ï€€€±€Þ€»€ó¡¥

¥í¡Œ¥«¥ë¥š¥³¡Œ€¹€Ù€­Êž»úÎ󀬀ʀ€Ÿì¹ç€Ïlength¥á¥ó¥Ð€Ë£°€¬ÊÖ€ê€Þ€¹¡¥

¥í¡Œ¥«¥ë¥š¥³¡Œ€¹€Ù€­ÆâÍÆ€¬Á°²ó€ÎjrKanjiString€ÎžÆœÐ€·€Î»þ€ÈÊÑ€ï€é€Ê€€ Ÿì¹ç(Î〚€Ð¥³¥ó¥È¥í¡Œ¥ëÊž»ú€¬²¡€µ€ì¡€€œ€Î¥­¡Œ€¬Ìµžú€Ç€¢€Ã€¿ Ÿì¹ç€Ê€É)€Ïlength¥á¥ó¥Ð€Ë-1€¬ÊÖ€ê€Þ€¹¡¥

¥â¡Œ¥É€ÎÊѹ¹€ä¡€žõÊä°ìÍ÷€ËŽØ€¹€ëŸðÊó€Î̵ͭ€Ï¡€info¥á¥ó¥Ð€Ë€è€Ã€Æ ÅÏ€µ€ì€Þ€¹¡¥info¥á¥ó¥Ð€ÎKanjiModeInfo¥Ó¥Ã¥È€¬on€Ç €¢€ì€Ð¡€mode€Ë¿·€·€€¥â¡Œ¥É€òŒš€¹Êž»úÎó€¬ÊÖ€µ€ì€Þ€¹¡¥info¥á ¥ó¥Ð€ÎKanjiGLineInfo¥Ó¥Ã¥È€¬on€Ç€¢€ì€Ð¡€gline¹œÂ€Â΀˞õÊä°ìÍ÷Åù €ÎŸðÊ󀬳ÊÇŒ€µ€ì€Æ€€€Þ€¹¡¥

gline¹œÂ€Â΀Îline¥á¥ó¥Ð€Ë€ÏžõÊä°ìÍ÷ÉœŒš€Î€¿€á€ÎÊž»úÎó€¬ÊÖ €µ€ì€Þ€¹¡¥gline¹œÂ€Â΀Îline,revPos,revLen€Î³Æ¥á¥ó¥Ð€Ï¡€žõ Êä°ìÍ÷Êž»úÎó€Î€œ€ì€Ÿ€ì¡€Ä¹€µ¡€¥ê¥Ð¡Œ¥¹ÉœŒš€Î³«»Ï°ÌÃÖ¡€¥ê¥Ð¡Œ¥¹ÉœŒš€ÎĹ €µ€¬ÊÖ€µ€ì€Þ€¹¡¥

ÊÑŽ¹Ãæ€Ë³ÎÄꀷ€¿(EUC)Êž»úÎ󀬀¢€ëŸì¹ç€Ï¡€ €œ€ÎÊž»úÎó€¬buffer_return€Ç»ØÄꀷ€¿¥Ð¥Ã¥Õ¥¡€Ë³ÊÇŒ€µ€ì¡€€œ€ÎÊž»ú Îó€ÎĹ€µ(¥Ð¥€¥Èñ°Ì)€¬ÊÖ€µ€ì€Þ€¹¡¥³ÎÄꀷ€¿Êž»úÎó€¬Ìµ€€Ÿì¹ç€ÏÌá€ê ÃÍ€Ï0€Ë€Ê€ê€Þ€¹¡¥³ÎÄêÊž»úÎó€ò³ÊÇŒ€¹€ë¥Ð¥Ã¥Õ¥¡buffer_return€ÎÂ瀭 €µ€òbytes_buffer€Ë€ÆÍ¿€š€Þ€¹¡¥ ³ÎÄêÊž»úÎó€ÎĹ€µ€¬bytes_buffer€è€ê€âĹ€€Ÿì¹ç€Ë€Ï¡€ ³ÎÄêÊž»úÎó€Î€Š€Á¡€bytes_bufferʬ €À€±€¬buffer_return€Ë³ÊÇŒ€µ€ì¡€jrKanjiString€ÎÌá€êÃÍ€È €·€Æ¡€bytes_buffer€ÇÍ¿€š€¿ÃÍ€¬ÊÖ€ê€Þ€¹¡¥

¥Õ¥¡¥ó¥¯¥·¥ç¥ó¥­¡Œ

¥š¥¹¥±¡Œ¥×¥·¡Œ¥±¥ó¥¹€òȯ¹Ô€¹€ë€è€Š€Ê¥Õ¥¡¥ó¥¯¥·¥ç¥ó¥­¡Œ€ËŽØ€·€Æ€Ï¡€¥Õ¥¡ ¥ó¥¯¥·¥ç¥ó¥­¡Œ€Ë€è€ë¥š¥¹¥±¡Œ¥×¥·¡Œ¥±¥ó¥¹€ÎÊÑ€ï€ê€Ë°Ê²Œ€Î¥Þ¥¯¥íÌŸ€ÇŒš€µ €ì€ë¥³¡Œ¥É€òch€È€·€ÆÍ¿€š€Æ²Œ€µ€€¡¥

ÏÀÍýÌŸ
¥³¡Œ¥É
Nfer
CANNA_KEY_Nfer
Xfer
CANNA_KEY_Xfer
Up
CANNA_KEY_Up
Left
CANNA_KEY_Left
Right
CANNA_KEY_Right
Down
CANNA_KEY_Down
Insert
CANNA_KEY_Insert
Rollup
CANNA_KEY_Rollup
Rolldown
CANNA_KEY_Rolldown
Home
CANNA_KEY_Home
Help
CANNA_KEY_Help
S-Nfer
CANNA_KEY_Shift_Nfer
S-Xfer
CANNA_KEY_Shift_Xfer
S-Up
CANNA_KEY_Shift_Up
S-Left
CANNA_KEY_Shift_Left
S-Right
CANNA_KEY_Shift_Right
S-Down
CANNA_KEY_Shift_Down
C-Nfer
CANNA_KEY_Control_Nfer
C-Xfer
CANNA_KEY_Control_Xfer
C-Up
CANNA_KEY_Control_Up
C-Left
CANNA_KEY_Control_Left
C-Right
CANNA_KEY_Control_Right
C-Down
CANNA_KEY_Control_Down
F1
CANNA_KEY_F1
PF1
CANNA_KEY_PF1

ŽØÏ¢ŸðÊó

jrKanjiControl(3)

Ìá€êÃÍ

ÆþÎÏœèÍýÃ沿€é€«€Î¥š¥é¡Œ€¬È¯Àž€·€¿Ÿì¹ç€Ï¡€€³€ÎŽØ¿ô€ÎÌá€êÃ̀Ȁ·€Æ-1€¬ÊÖ €µ€ì¡€³°ÉôÊÑ¿ô(char *)jrKanjiError€Ë¡€¥š¥é¡Œ¥á¥Ã¥»¡Œ¥ž€¬³ÊÇŒ€µ€ì€Þ€¹¡¥

€³€ÎŽØ¿ô€ÎžÆœÐ€·€Ë€è€ê³ÎÄꀷ€¿Êž»úÎ󀬀¢€ëŸì¹ç€Ï³ÎÄꀷ€¿Êž»úÎó€Î¥Ð¥€¥È Ĺ€¬ÊÖ€ê€Þ€¹¡¥

€œ€ì°Ê³°€ÎŸì¹ç€Ï0€¬ÊÖ€ê€Þ€¹¡¥

ÌŸÁ°

jrKanjiControl - jrKanjiString€Ç€Î¥â¡Œ¥É€ä¡€œèÍý€ÎÀ©žæ€ò¹Ô€Š

·ÁŒ°

 #include <canna/jrkanji.h>
 int jrKanjiControl(context_id, request, arg)
 int context_id;
 int request;
 char *arg;
 

ÀâÌÀ

jrKanjiControl€Ïcontext_id€ÇŒš€µ€ì€ëÊÑŽ¹¥³¥ó¥Æ¥¯¥¹¥È€Ë ŽØ€·€Æ¡€request€ÇŒš€µ€ì€ëœèÍý€ò¹Ô€€€Þ€¹¡¥œèÍý€Ë€è€Ã€Æ€Ï¡€°ú¿ô€ò ÈŒ€ŠŸì¹ç€¬€¢€ê¡€€œ€ÎŸì¹ç¡€°ú¿ô€Ïarg€Ë€ÆÍ¿€š€Þ€¹¡¥

jrKanjiControl€ÇÀ©žæ€µ€ì€ëµ¡Çœ€È€·€Æ€Ï°Ê²Œ€Î£µ€Ä€¬€¢€ê€Þ€¹¡¥

requestÌŸ
µ¡Çœ
KC_INITIALIZE
€«€ÊŽÁ»úÊÑŽ¹€òœéŽü²œ€¹€ë¡¥
KC_CHANGEMODE
ÆþÎϥ⡌¥É€òÊѹ¹€¹€ë¡¥
KC_SETWIDTH
žõÊä°ìÍ÷ÉœŒš€Î»þ€ÎÉý€ò»ØÄꀹ€ë¡¥
KC_FINALIZE
€«€ÊŽÁ»úÊÑŽ¹€ÎœªÎ»œèÍý¡¥
KC_SETUNDEFKEYFUNCTION
Ì€ÄêµÁ¥­¡Œ€ËÂЀ¹€ëµ¡Çœ€ÎÀßÄê€ò¹Ô€Š¡¥
KC_SETMODEINFOSTYLE
¥â¡Œ¥ÉŸðÊó€ò¿ôÃÍ€ÇÉœžœ€¹€ë€«€É€Š€«€ò»ØÄꀹ€ë¡¥
KC_KAKUTEI
ÆþÎÏÃæ€ÎÊž»úÎó€ò³ÎÄꀹ€ë¡¥
KC_KILL
ÆþÎÏÃæ€ÎÊž»úÎó€òºïœü€¹€ë¡¥
KC_QUERYMODE
žœºß€Î¥â¡Œ¥É€òÌ䀀¹ç€ï€»€ë¡¥
KC_SETSERVERNAME
Àܳ€¹€ë¥µ¡Œ¥Ð€ò»ØÄꀹ€ë¡¥
KC_SETINITFILENAME
¥«¥¹¥¿¥Þ¥€¥º¥Õ¥¡¥€¥ë€ò»ØÄꀹ€ë¡¥
KC_CLOSEUICONTEXT
¥³¥ó¥Æ¥¯¥¹¥È€ò¥¯¥í¡Œ¥º€¹€ë¡¥
KC_QUERYMAXMODESTR
¥â¡Œ¥ÉÉœŒšÊž»úÎó€ÎºÇÂçĹ€òµá€á€ë¡¥

jrKanjiControl€ÎºîÍрώðËÜŪ€Ë€Ï¥³¥ó¥Æ¥¯¥¹¥È€Ç»ØÄꀵ€ì€¿€â€Î€ËÂЀ·€Æ€Î €ßºîÍÑ€·€Þ€¹¡¥€¿€À€·¡€œéŽü²œ€ÎœèÍý€äœªÎ»€ÎœèÍý€ËŽØ€·€Æ€Ï€œ€ÎžÂ€ê€Ç€Ï€¢ €ê€Þ€»€ó¡¥

jrKanjiControl€ÎÁàºî€Ë€è€Ã€ÆÌ€³ÎÄêÊž»úÎó€ÎŸõÂÖ€¬ÊѲœ€·€¿€ê¡€¥â¡Œ¥É€ÎŸõ ÂÖ€¬ÊÑ€ï€ë€³€È€¬€¢€ê€Þ€¹¡¥€œ€Î€è€Š€Ê²ÄÇœÀ­€¬€¢€ëŸì¹ç€ÏargÉôʬ€ËÊѲœ€· €¿ŸðÊó€ò³ÊÇŒ€Ç€­€ë€è€Š€Ê¹œÂ€Â΀؀Υݥ€¥ó¥¿€òÅÏ€·€Þ€¹¡¥€œ€Î¹œÂ€Â΀ÎÄêµÁ €Ï°Ê²Œ€Î€è€Š€Ë€Ê€ê€Þ€¹¡¥

 typedef struct {
   int      val;          /* ¥Ð¥Ã¥Õ¥¡€Ë³ÊÇŒ€µ€ì€¿Êž»úÎó€ÎĹ€µ€¬ÊÖ€ë */
   unsigned char *buffer; /* ³ÎÄêÊž»úÎó€ò³ÊÇŒ€¹€ë€¿€á€Î¥Ð¥Ã¥Õ¥¡€òÍ¿€š€ë */
   int      bytes_buffer; /* Ÿåµ­€Î¥Ð¥Ã¥Õ¥¡€ÎÂ瀭€µ€òÍ¿€š€ë */
   jrKanjiStatus *ks;     /* Ì€³ÎÄêÊž»úÎó€ÎŸðÊó€ò³ÊÇŒ€¹€ë¹œÂ€Â΀؀Υݥ€¥ó¥¿ */
 } jrKanjiStatusWithValue;
 

jrKanjiControl€Î€œ€ì€Ÿ€ì€Îµ¡Çœ€ÎŒÂ¹Ô€Î€·€«€¿€Ï°Ê²Œ€ÎÄÌ€ê€Ç€¹¡¥

(1)
KC_INITIALIZE - €«€ÊŽÁ»úÊÑŽ¹€ÎœéŽü²œ

KC_INITIALIZE€òrequestÉô€Ç»ØÄꀹ€ë€³€È€Ë€è€ê¡€€«€ÊŽÁ»úÊÑŽ¹€ÎœéŽü ²œ€ò¹Ô€€€Þ€¹¡¥arg€Ë€Ïwarning¥á¥Ã¥»¡Œ¥ž€ò ³ÊÇŒ€¹€ë€¿€á€Î(char **)·¿€ÎÊÑ¿ô€Ø€Î¥Ý¥€¥ó¥¿€Þ€¿€ÏNULL€ò»ØÄꀷ€Þ€¹¡¥œé Žü²œ€ÎœèÍý€ÏŽðËÜŪ€Ë€ÏjrKanjiString(3)€¬ºÇœé€ËžÆ€Ð€ì€¿»þ€ËŒ«Æ°Åª€Ë¹Ô€ï €ì€Þ€¹€¬¡€jrKanjiControl€òÍÑ€€€ÆœéŽü²œ€¹€ë €³€È€Ë€è€ê¡€jrKanjiString(3)€Ç€ÎœéŽü²œœèÍý€Ï¹Ô€ï€ì€Ê€¯€Ê€ê€Þ€¹¡¥
jrKanjiString(3)€Î»ÈÍÑ€ËÀèΩ€Ã€ÆjrKanjiControl€òÍÑ€€€Æ€«€ÊŽÁ»úÊÑŽ¹€ËŽØ €¹€ëÀ©žæ€ò¹Ô€Š»þ€Ê€É€Ï¡€ŽÁ»úÊÑŽ¹€ÎœéŽü²œ€ò¹Ô€ŠÉ¬Í×€¬€¢€ê€Þ€¹¡¥
ÀµŸïœªÎ»»þ€Ë€ÏjrKanjiControl€ÎÌá€êÃ̀Ȁ·€Æ0€¬Êրꡀ°ÛŸïœªÎ»»þ€Ë€Ï-1€¬ ÊÖ€ê€Þ€¹¡¥
KC_INITIALIZE€ò¹Ô€Ã€¿Ÿì¹ç¡€¥š¥é¡Œ€È€Þ€Ç€Ï€€€«€Ê€¯€È€â²¿€é€«€Îwarning€¬ ȯÀž€¹€ë€³€È€¬€¢€ê€Þ€¹¡¥warning€¬È¯Àž€·€¿Ÿì¹ç€Ïarg€Ë€ÆÍ¿€š€é€ì€¿ ÊÑ¿ô€ËÂЀ·€ÆwarningÊž»úÎó€ÎÇÛÎó€Ø€Î¥Ý¥€¥ó¥¿€¬³ÊÇŒ€µ€ì ÊÖ€µ€ì€Þ€¹¡¥warning€¬€Ê€€€È€­€ÏNULL€¬³ÊÇŒ€µ€ìÊÖ€µ€ì€Þ€¹¡¥
(Îã)
   int res; /* ¥š¥é¡Œ€¬ÊրÀƀ¯€ëŸì¹ç€ËÈ÷€š€ë */
   char **warning;
   .....
   res = jrKanjiControl(0, KC_INITIALIZE, &warning);
   if (warning) {
     char **p;
 
     for (p = warning ; *p ; p++) {
       fprintf(stderr, "%s, *p);
     }
   }
 

Â裳°ú¿ô€ËÊÖ€µ€ì€ëwarning¥á¥Ã¥»¡Œ¥ž€Ï¥é¥€¥Ö¥é¥ê€ÎÆâÉô€Çmalloc€µ€ì€Þ€¹¡¥ €³€ì€Ï¡€Œ¡€ËKC_INITIALIZE€äKC_FINALIZE€¬¹Ô€ï€ì€¿»þ€Ë³«Êü€µ€ì€Þ€¹¡¥¥¢¥× ¥ê¥±¡Œ¥·¥ç¥ó¥×¥í¥°¥é¥Þ€¬Ÿ¡Œê€Ëfree€·€Æ€Ï€€€±€Þ€»€ó¡¥warning€Ïº£€Î€È€³ €íºÇÂç64¥á¥Ã¥»¡Œ¥ž€ËžÂÄꀵ€ì€Þ€¹¡¥€œ€ì°ÊŸå€Î¥á¥Ã¥»¡Œ¥ž€ÏÀڌ΀ƀé€ì€Þ€¹¡¥

¥á¥Ã¥»¡Œ¥ž€ËŽÞ€Þ€ì€ë²ÄÇœÀ­€Î€¢€ëwarning€Ë€Ï°Ê²Œ€Î€â€Î€¬€¢€ê€Þ€¹¡¥

¡Š
¥«¥¹¥¿¥Þ¥€¥º¥Õ¥¡¥€¥ë€¬¥·¥¹¥Æ¥à€Î€â€Î€âŽÞ€á€Æ€¹€Ù€ÆÍøÍрǀ­€Ê€€¡¥
¡Š
¥«¥¹¥¿¥Þ¥€¥º¥Õ¥¡¥€¥ë€Ë¥·¥ó¥¿¥Ã¥¯¥¹¥š¥é¡Œ€¬€¢€ë¡¥
¡Š
¥í¡Œ¥Þ»ú€«€ÊÊÑŽ¹Œ­œñ€¬ÍøÍрǀ­€Ê€€¡¥
¡Š
€«€ÊŽÁ»úÊÑŽ¹Œ­œñ€¬ÍøÍрǀ­€Ê€€¡¥
¡Š
€«€ÊŽÁ»úÊÑŽ¹¥µ¡Œ¥Ð€ËÀܳ€Ç€­€Ê€€¡¥

Â裳°ú¿ô€È€·€ÆNULL€ò»ØÄꀷ€¿Ÿì¹çwarning¥á¥Ã¥»¡Œ¥ž€ÏŒÎ€Æ€é€ì€Þ€¹¡¥

(2)
KC_CHANGEMODE - ÆþÎϥ⡌¥É€ÎÊѹ¹

ÆþÎϥ⡌¥É€ò¥¢¥×¥ê¥±¡Œ¥·¥ç¥ó€«€éÊѹ¹€·€Þ€¹¡¥request€Î Éôʬ€Ë€ÏKC_CHANGEMODE€ò»ØÄꀷ¡€arg€ËjrKanjiStatusWithValue¹œÂ€ÂÎ €ò»ØÄꀷ€Æ²Œ€µ€€¡¥jrKanjiStatusWithValue¹œÂ€Â΀Îval¥á¥ó¥Ð€Ë€Æ¥â¡Œ ¥ÉÈÖ¹æ€ò»ØÄꀹ€ë€³€È€Ë€è€êÆüËÜžì¥â¡Œ¥É€¬ÀÚ€êÂØ€ï€ê€Þ€¹¡¥¥â¡Œ¥ÉÈÖ¹æ€Ï°Ê ²Œ€Î¥Þ¥¯¥í€ÇŒš€µ€ì€Þ€¹¡¥
¥Þ¥¯¥íÈÖ¹æ
¥â¡Œ¥É
CANNA_MODE_AlphaMode
¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¥â¡Œ¥É
CANNA_MODE_HenkanMode
ÊÑŽ¹ÆþÎϥ⡌¥É
CANNA_MODE_KigoMode
µ­¹æÆþÎϥ⡌¥É
CANNA_MODE_ZenHiraKakuteiMode
ÁŽ³Ñ€Ò€é€¬€Ê³ÎÄêÆþÎϥ⡌¥É
CANNA_MODE_ZenKataKakuteiMode
ÁŽ³Ñ¥«¥¿¥«¥Ê³ÎÄêÆþÎϥ⡌¥É
CANNA_MODE_HanKataKakuteiMode
ÈŸ³Ñ¥«¥¿¥«¥Ê³ÎÄêÆþÎϥ⡌¥É
CANNA_MODE_ZenAlphaKakuteiMode
ÁŽ³Ñ¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È³ÎÄêÆþÎϥ⡌¥É
CANNA_MODE_HanAlphaKakuteiMode
ÈŸ³Ñ¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È³ÎÄêÆþÎϥ⡌¥É
CANNA_MODE_HexMode
16¿Ê¥³¡Œ¥ÉÆþÎϥ⡌¥É
CANNA_MODE_BushuMode
ÉôŒóÆþÎϥ⡌¥É
CANNA_MODE_TorokuMode
ñžìÅÐÏ¿¥â¡Œ¥É

€³€Îµ¡Çœ€Ë€è€ê¥â¡Œ¥É€òÊѹ¹€¹€ë€È¥â¡Œ¥ÉÌŸ€ò»Ï€á€È€·€Æ¿€¯€ÎÉœŒš€¬ÊѲœ€ò Œõ€±€Þ€¹¡¥ÉœŒš€ÎÊѹ¹€Ïarg€È€·€Æ»ØÄꀷ€¿jrKanjiStatusWithValue¹œÂ€ÂÎ€Ë €ÆÊÖ€µ€ì€Þ€¹¡¥

(Îã)

   jrKanjiStatus ks;
   jrKanjiStatusWithValue ksv;
   unsigned char buf[SOMESIZE];
   .....
   ksv.ks = &ks;
   ksv.buffer = buf;
   ksv.bytes_buffer = SOMESIZE;
   ksv.val = CANNA_MODE_HexMode;
 
   jrKanjiControl(context, KC_CHANGEMODE, &ksv);
   len = ksv.val;
   .....
   /* Ì€³ÎÄêÊž»úÎó€ä³ÎÄêÊž»úÎó€ÎŸðÊó€¬ksv€Ë€è€êÊÖ€µ€ì€Þ€¹¡¥ */
 
(3)
KC_SETWIDTH - žõÊä°ìÍ÷ÉœŒš€Î€¿€á€ÎÉý€ò»ØÄê

žõÊä°ìÍ÷€Î€¿€á€ËÍÑ€€€é€ì€ëÎΰè€Î¥³¥é¥à¿ô€ò»ØÄꀷ€Þ€¹¡¥£±¥³¥é¥à€ÎÉý€Ï¥¢ ¥ë¥Õ¥¡¥Ù¥Ã¥ÈÊž»ú€¢€ë€€€ÏÈŸ³Ñ¥«¥¿¥«¥Ê£±Êž»ú€ÎÊž»úÉý€Ç€¢€ê¡€ÁŽ³ÑŽÁ»ú€Ï£² ¥³¥é¥àÀê€á€ë€³€È€Ë€Ê€ê€Þ€¹¡¥žõÊä°ìÍ÷ÉœŒš€Î€¿€á€ÎÉý€ò »ØÄꀹ€ë€¿€á€ËrequestÉôʬ€Ë»ØÄꀹ€ëÃÍ€ÏKC_SETWIDTH€Ç¡€ €³€Î€È€­arg€Ë¥³¥é¥à¿ô€ò»ØÄꀷ€Þ€¹¡¥
(Îã)
   jrKanjiControl(0, KC_SETWIDTH, (char *)60);
 
(4)
KC_FINALIZE - €«€ÊŽÁ»úÊÑŽ¹€ÎœªÎ»œèÍý¡¥

¥×¥í¥°¥é¥à€òœªÎ»€¹€ë€Ê€É€Î¶ÉÌ̀ǀ«€ÊŽÁ»úÊÑŽ¹€âœªÎ»€¹€ë€³€È€ò»ØÄꀷ€Þ€¹¡¥ €«€ÊŽÁ»úÊÑŽ¹œèÍý€òœªÎ»€µ€»€ë»þ€Ïɬ€º€³€ÎœèÍý€ò¹Ô€Ã€Æ²Œ€µ€€¡¥œª€ï€ë€Ë€¢ €¿€Ã€Æº£€Þ€Ç³Øœ¬€·€¿ÆâÍÆ€¬¥Õ¥¡¥€¥ë€ËÅÐÏ¿€µ€ì€Þ€¹¡¥requestÉôʬ€Ë €ÏKC_FINALIZE€ò»ØÄꀷ€Þ€¹¡¥
ÀµŸïœªÎ»»þ€Ë0¡€°ÛŸïœªÎ»»þ€Ë-1€¬Ìá€êÃ̀Ȁ·€ÆÊÖ€ê€Þ€¹¡¥
KC_FINALIZE€ò¹Ô€Ã€¿Ÿì¹ç¡€¥š¥é¡Œ€È€Þ€Ç€€€«€Ê€¯€È€â²¿€é€«€Îwarning€¬È¯Àž €¹€ë€³€È€¬€¢€ê€Þ€¹¡¥warning€¬È¯Àž€·€¿Ÿì¹ç€Ïarg€Ë€ÆÍ¿€š€é€ì€¿ ÊÑ¿ô€ËwarningÊž»úÎó€ÎÇÛÎó€Ø€Î¥Ý¥€¥ó¥¿€¬³ÊÇŒ€µ€ìÊÖ€µ€ì€Þ€¹¡¥warning€¬€Ê €€Ÿì¹ç€Ë€ÏNULL¥Ý¥€¥ó¥¿€¬³ÊÇŒ€µ€ìÊÖ€µ€ì€Þ€¹¡¥
(Îã)
 

  int res; /* ¥š¥é¡Œ€¬ÊÖ€ëŸì¹ç€ËÈ÷€š€ë */
  char **warning;
  .....
  res = jrKanjiControl(0, KC_FINALIZE, &warning);
  if (warning) {
    char **p;


    for (p = warning ; *p ; p++) {
      fprintf(stderr, "%s, *p);
    }
  }

Â裳°ú¿ô€ËÊÖ€µ€ì€ëwarning¥á¥Ã¥»¡Œ¥ž€Ï¡€¥é¥€¥Ö¥é¥ê€ÎÆâÉô€Çmalloc€µ€ì€Þ €¹¡¥€³€ì€Ï¡€Œ¡€ËKC_INITIALIZE€äKC_FINALIZE€¬¹Ô€ï€ì€¿»þ€Ë³«Êü€µ€ì€Þ€¹¡¥ ¥¢¥×¥ê¥±¡Œ¥·¥ç¥ó¥×¥í¥°¥é¥Þ€¬Ÿ¡Œê€Ëfree€·€Æ€Ï€€€±€Þ€»€ó¡¥

warning€Ïº£€Î€È€³€íºÇÂç64¥á¥Ã¥»¡Œ¥ž€ËžÂÄꀵ€ì€Þ€¹¡¥€œ€ì°ÊŸå€Î¥á¥Ã¥»¡Œ ¥ž€ÏÀڌ΀ƀé€ì€Þ€¹¡¥

¥á¥Ã¥»¡Œ¥ž€ËŽÞ€Þ€ì€ë²ÄÇœÀ­€Î€¢€ëwarning€Ë€ÏŒ¡€Î€â€Î€¬€¢€ê€Þ€¹¡¥

¡Š
Œ­œñ€¬¥¢¥ó¥Þ¥Š¥ó¥È€Ç€­€Ê€€¡¥

Â裳°ú¿ô€È€·€ÆNULL€ò»ØÄꀷ€¿Ÿì¹ç¡€warning¥á¥Ã¥»¡Œ¥ž€ÏŒÎ€Æ€é€ì€Þ€¹¡¥

(5)
KC_SETUNDEFKEYFUNCTION - Ì€ÄêµÁ¥­¡Œ€ËÂЀ¹€ëµ¡Çœ€ÎÀßÄê

Æɀ߀òÆþÎÏ€·€Æ€€€ëŸõÂÖ€ÇC-t€òÂǀÀ¿€È€­€Î€è€Š€ËÌ€ÄêµÁ¥­¡Œ€òÆþÎÏ€·€¿»þ €ËŒè€é€ì€ëœèÍý€ò»ØÄꀷ€Þ€¹¡¥Ì€ÄêµÁ¥­¡Œ€ËÂбþ€·€Æ¹Ô€ï€ì€ëœèÍý€È€·€Æ€Ï°Ê ²Œ€ÎœèÍý€¬€¢€ê€Þ€¹¡¥
¥Þ¥¯¥íÌŸ
œèÍý
kc_normal
¥Ó¡Œ¥×
kc_through
¥¢¥×¥ê¥±¡Œ¥·¥ç¥ó¥×¥í¥°¥é¥à€ËÅÏ€¹
kc_kakutei
³ÎÄꀷ¥¢¥×¥ê¥±¡Œ¥·¥ç¥ó¥×¥í¥°¥é¥à€ËÅÏ€¹
kc_kill
ŸÃµî€·¥¢¥×¥ê¥±¡Œ¥·¥ç¥ó¥×¥í¥°¥é¥à€ËÅÏ€¹

kc_normal€ò»ØÄꀷ€¿Ÿì¹ç¡€³°ÉôÊÑ¿ôjrBeepFunc€ËÀßÄꀵ€ì€¿ŽØ¿ô€¬Ì€ÄêµÁ¥­¡Œ ÆþÎÏ»þ€Ë¥é¥€¥Ö¥é¥ê€Ë€è€Ã€ÆŒ«Æ°Åª€ËžÆ€ÓœÐ€µ€ì€Þ€¹¡¥jrBeepFunc€ËÃÍ€òÀßÄê €·€Ê€€Ÿì¹ç€Ë€Ï(jrBeepFunc == NULL€ÎŸì¹ç€Ë€Ï)²¿€âµ¯€³€ê€Þ€»€ó¡¥

(Îã)

   extern (*jrBeepFunc)(), beep();
 
   jrBeepFunc = beep;
   jrKanjiControl(0, KC_SETUNDEFKEYFUNCTION, kc_normal);
 
(6)
KC_SETMODEINFOSTYLE - ¥â¡Œ¥ÉŸðÊó€ÎÉœžœ

¥â¡Œ¥ÉŸðÊó€òÊž»úÎó€Ç€Ï€Ê€¯¥Ó¥Ã¥È¥Þ¥Ã¥×€Ê€É€Î¥Ç¡Œ¥¿€ÇÉœŒš€·€¿€€Ÿì¹ç€¬€¢ €ê€Þ€¹¡¥€œ€Î€è€Š€ÊŸì¹ç€Ë€Ï¥â¡Œ¥ÉŸðÊó€È€·€Æ¿ôÃͥǡŒ¥¿€¬ÊրÀƀ¯€ë€ÈœèÍý €¬€·€ä€¹€¯€Ê€ê€Þ€¹¡¥jrKanjiControl€ÇKC_SETMODEINFOSTYLE€ò »ØÄꀷ¡€arg€Ë£±€òÅÏ€¹€³€È€Ë€è€Ã€Æ€œ€ì°Êžå€ÏjrKanjiStatus¹œÂ€ÂÎ €Îmode¥á¥ó¥Ð€Ë€Ï¥â¡Œ¥É€òÉœ€¹¿ôÃÍ€Ë'@'(0x40)€ò²Ã€š€¿£±Êž»ú€¬ÊÖ€µ €ì€ë€è€Š€Ë€Ê€ê€Þ€¹¡¥¥â¡Œ¥É€òÉœ€¹¿ôÃÍ€ËÊÑŽ¹€¹€ëŸì¹ç€Ë€ÏÊրÀƀ­€¿Êž»úÎó €«€é'@'(0x40)€ò°ú€­€Þ€¹¡¥¥â¡Œ¥É€òÉœ€¹¿ôÃ̀ˀĀ€€Æ€ÏÆþÎϥ⡌¥É€Î Êѹ¹((2)KC_CHANGEMODE)€Î€³€Š€ò»²ŸÈ€·€Æ²Œ€µ€€¡¥
(7)
KC_KAKUTEI¡€(8) KC_KILL - ÆþÎÏÃæ€ÎÊž»úÎó€ÎÊüŽþ

ÆþÎÏÃæ€ÎÊž»úÎó€ò²¿€é€«€ÎÅÔ¹ç€ÇÊüŽþ€·€¿€€Ÿì¹ç€¬€¢€ê€Þ€¹¡¥ÊüŽþ€¹€ëŸì¹ç€Ë ÆþÎÏÃæ€ÎÊž»úÎó€ò³ÎÄêÊž»úÎó€È€·€ÆŒè€ê¹þ€ó€Ç€«€éÊüŽþ€·€¿€€Ÿì¹ç€ÈÁŽ€¯ŒÎ€Æ €Æ€·€Þ€Ã€Æ€«€éÊüŽþ€·€¿€€Ÿì¹ç€¬€¢€ê€Þ€¹¡¥³ÎÄꀹ€ë Ÿì¹ç€Ë€ÏjrKanjiControl€Ë€ÆKC_KAKUTEI€ò»ØÄꀷ¡€ÊüŽþ€¹€ë Ÿì¹ç€Ë€ÏKC_KILL€ò»ØÄꀷ€Þ€¹¡¥
€³€ÎœèÍý€ÏÉœŒš€Ë±Æ¶Á€òÍ¿€š€ë€Î€ÇÂ裳°ú¿ô€Ë€ÏjrKanjiStatusWithValue¹œÂ€ Â΀ò»ØÄꀷ€Ê€±€ì€Ð€Ê€ê€Þ€»€ó¡¥
(Îã)
   jrKanjiStatusWithValue ksv;
   jrKanjiStatus ks;
   unsigned char buf[SOMESIZE];
   .....
   ksv.ks = &ks;
   ksv.buffer = buf;
   ksv.bytes_buffer = SOMESIZE;
 
   jrKanjiControl(context, KC_KAKUTEI, &ksv);
   len = ksv.val;
   .....
 
(9)
KC_QUERYMODE - ¥â¡Œ¥É€ÎÌ䀀¹ç€ï€»

žœºß€Î¥â¡Œ¥É€òÌ䀀¹ç€ï€»€ë€Ë€ÏjrKanjiControl€ÇKC_QUERYMODE€ò»ØÄꀷ€Þ€¹¡¥
Â裳°ú¿ô€Ë€Ï¥â¡Œ¥ÉÊž»úÎó€ò³ÊÇŒ€¹€ë€¿€á€ÎÊž»úÇÛÎó€Î¥Ý¥€¥ó¥¿€ò»ØÄꀷ€Þ€¹¡¥ ¥â¡Œ¥ÉÊž»úÎó€Ï¥Ì¥ëÊž»ú€Çœª€ï€ëÊž»úÎó€Ç€¹¡¥€³€³€Ë¿ôÃÍ€¬ÊÖ€ë€è€Š€Ë€¹€ë€Ë €ÏjrKanjiControl€ÇKC_SETMODEINFOSTYLE€ò»ØÄꀷ€Æ¥â¡Œ¥ÉÊž»úÎó€Î¥¹¥¿¥€¥ë €òÊѹ¹€·€Æ€ª€­€Þ€¹¡¥
(Îã)
   char currentMode[MAXMODELEN];
   .....
   jrKanjiControl(0, KC_QUERYMODE, currentMode);
   .....
 
(10)
KC_SETSERVERNAME - ¥µ¡Œ¥Ð€Î»ØÄê

€«€ÊŽÁ»úÊÑŽ¹¥µ¡Œ¥Ð€È€·€Æ€É€Î¥µ¡Œ¥Ð€ò»È€Š€«€ò¥¢¥×¥ê¥±¡Œ¥·¥ç¥ó¥×¥í¥°¥é¥à €òœªÎ»€¹€ë€³€È€Ê€·€ËÀÚÂØ€š€ë€³€È€¬²ÄÇœ€Ç€¹¡¥€«€ÊŽÁ»úÊÑŽ¹¥µ¡Œ¥Ð€È€·€ÆÀÜ Â³€¹€ë€Ù€­¥µ¡Œ¥Ð€ò»ØÄꀹ€ë€Ë€ÏjrKanjiControl€ÇKC_SETSERVERNAME€ò»ØÄꀷ €Þ€¹¡¥Â裳°ú¿ô€Ë€ÏÀܳ€·€¿€€¥µ¡Œ¥ÐÌŸ€ò»ØÄꀷ€Þ€¹¡¥
(11)
KC_SETINITFILENAME - ¥«¥¹¥¿¥Þ¥€¥º¥Õ¥¡¥€¥ë€Î»ØÄê

¥«¥¹¥¿¥Þ¥€¥º¥Õ¥¡¥€¥ë€ò¥¢¥×¥ê¥±¡Œ¥·¥ç¥ó¥×¥í¥°¥é¥àŠ€«€éÊѹ¹€¹€ë€³€È€¬€Ç €­€Þ€¹¡¥¥«¥¹¥¿¥Þ¥€¥º¥Õ¥¡¥€¥ë€ÎÊѹ¹€ÏjrKanjiControl€Î Â裲°ú¿ô€ËKC_SETINITFILENAME€ò»ØÄꀷ¡€Â裳°ú¿ô€Ë¥Õ¥¡¥€¥ëÌŸÊž»úÎó€ò»ØÄê €¹€ë€³€È€Ë€è€ê¹Ô€€€Þ€¹¡¥€³€ÎœèÍý€ò¹Ô€ŠŸì¹ç€ÏKC_INITIALIZE€ËÀèΩ€Ã€ÆŒÂ ¹Ô€·€Æ€ª€«€Ê€±€ì€Ð€Ê€ê€Þ€»€ó¡¥
(Îã)
   char *inifile = "app-own.canna"
   .....
   jrKanjiControl(0, KC_SETINITFILENAME, initfile);
   .....
 
(12)
KC_CLOSEUICONTEXT - ¥³¥ó¥Æ¥¯¥¹¥È€Î¥¯¥í¡Œ¥º

ÊÑŽ¹¥³¥ó¥Æ¥¯¥¹¥È€òÉœ€¹¥³¥ó¥Æ¥¯¥¹¥ÈID€ÏÇ€°Õ€ÎÀ°¿ô€ò³ä€êÅö€Æ€ë€³€È€¬€Ç€­ €Þ€¹¡¥º£€Þ€Ç»È€ï€ì€Æ€€€Ê€€ ¥³¥ó¥Æ¥¯¥¹¥ÈID€òjrKanjiString€¢€ë€€€ÏjrKanjiControl€ËÍ¿€š€ë€³€È€¬²ÄÇœ €Ç€¢€ê¡€€œ€ÎŸì¹ç¡€€œ€Î¥³¥ó¥Æ¥¯¥¹¥ÈÍрΥ€¥Ë¥·¥ã¥é¥€¥º€¬¹Ô€ï€ìɬÍ×€Ê¥á ¥â¥ê€¬³ÎÊÝ€µ€ì€Þ€¹¡¥
€œ€ì€Þ€Ç»ÈÍÑ€·€Æ€€€¿ÆþÎϥݡŒ¥È€¬»È€ï€ì€Ê€¯€Ê€Ã€¿Ÿì¹ç€Ë¡€€œ€Î¥Ý¡Œ¥È€Ë³ä €êÅö€Æ€Æ»È€Ã€Æ€€€¿¥³¥ó¥Æ¥¯¥¹¥ÈIDÍр˳ÎÊÝ€µ€ì€¿¥á¥â¥ê€ò ³«Êü€¹€ë€Ë€ÏjrKanjiControl€òÂ裲°ú¿ô€ËKC_CLOSEUICONTEXT€ò»ØÄꀷ€ÆžÆ€Ó œÐ€·€Þ€¹¡¥
€³€ÎœèÍý€ÏÉœŒš€ÎÊѲœ€ò€È€â€Ê€Š€Î€ÇÂ裳°ú¿ô€Ë€ÏjrKanjiStatusWithValue¹œ €Â΀òÍ¿€š€Þ€¹¡¥
(Îã)
   jrKanjiStatusWithValue ksv;
   jrKanjiStatus ks;
   unsigned char buf[SOMESIZE];
   .....
   ksv.ks = &ks;
   ksv.buffer = buf;
   ksv.bytes_buffer = SOMESIZE;
 
   jrKanjiControl(0, KC_CLOSEUICONTEXT, &ksv);
   .....
 
(13)
KC_QUERYMAXMODESTR - ¥â¡Œ¥ÉÉœŒšÊž»úÎó€ÎºÇÂçĹ€òµá€á€ë¡¥

œéŽü²œ¥Õ¥¡¥€¥ë€Ë€Æ¥â¡Œ¥ÉÉœŒšÊž»úÎ󀬥«¥¹¥¿¥Þ¥€¥º€Ç€­€Þ€¹€¬¡€¥«¥¹¥¿¥Þ¥€ ¥º€µ€ì€¿·ë²Ì¥â¡Œ¥ÉÉœŒšÊž»úÎó€Ë€É€ì€À€±€ÎÉœŒšÎΰè€ò³ÎÊÝ€¹€ë€«€òÄŽ€Ù€ëɬ Í×€¬€¢€ëŸì¹ç€¬€¢€ê€Þ€¹¡¥jrKanjiControl€òÂ裲°ú¿ô€ËKC_QUERYMAXMODESTR€ò »ØÄꀷ€ÆžÆ€ÓœÐ€¹€³€È€Ë€è€ê¡€¥â¡Œ¥ÉÉœŒšÊž»úÎó€È€·€Æ²¿¥³¥é¥àɬÍ×€«€¬ÊÖ€ê Ã̀Ȁ·€ÆÊÖ€µ€ì€Þ€¹¡¥€³€³€ÇžÀ€Š¥³¥é¥à€È€ÏÈŸ³Ñ±Ñ¿ôÊž»ú€ÎÊž»úÉý€ò£±€È€·€¿ €È€­€ÎÃÍ€òŒš€·€Þ€¹¡¥
Â裳°ú¿ô€ÏÍÑ€€€é€ì€Ê€€€Î€Ç¥À¥ß¡ŒÃ̀Ȁ·€Æ0€òÍ¿€š€Þ€¹¡¥
(Îã)
   int max_mode_columns;
   .....
   max_mode_columns = jrKanjiControl(0, KC_QUERYMAXMODESTR, 0);
   .....
 

ÌŸŸÎ

XLookupKanjiString - ¥­¡Œ¥Ü¡Œ¥ÉÆþÎπΎÁ»úÊž»úÎó€Ø€ÎÊÑŽ¹

µ­œÒ·ÁŒ°

 #include <X11/Xlib.h>
 #include <X11/kanji.h>
 
 int
 XLookupKanjiString(event_struct, buffer_return, bytes_buffer,
                    keysym_return, status_return, kanji_status_return)
         XKeyEvent *event_struct;
         char *buffer_return;
         int bytes_buffer;
         KeySym *keysym_return;
         XComposeStatus *status_return;
         XKanjiStatus *kanji_status_return;
 

°ú¿ô

event_struct
¥­¡Œ¥€¥Ù¥ó¥È€ò»ØÄꀷ€Þ€¹¡£
buffer_return
ÊÑŽ¹€·€¿ŽÁ»úÊž»úÎó€¬ÊÖ€µ€ì€Þ€¹¡£
bytes_buffer
¥Ð¥Ã¥Õ¥¡€ÎĹ€µ€ò»ØÄꀷ€Þ€¹¡£
keysym_return
¥­¡Œ¥·¥ó¥Ü¥ë€òÊÖ€·€Þ€¹¡£NULL€ò»ØÄꀹ€ë€³€È€â€Ç€­€Þ€¹¡£
status_return
XCompose¹œÂ€Â΀؀Υݥ€¥ó¥¿€ò»ØÄꀷ€Þ€¹¡£
kanji_status_return
€«€ÊŽÁ»úÊÑŽ¹€ÎÍͻҀ¬ÊÖ€µ€ì€Þ€¹¡£

ÀâÌÀ

XLookupKanjiString€Ï¡¢¥­¡Œ¥€¥Ù¥ó¥È€òÆüËÜžìÊž»úÎó€Ë Âбþ€µ€»€ëŽÊ°×¥ë¡Œ¥Á¥ó€Ç¡¢ ¥­¡Œ¥€¥Ù¥ó¥È€Îœ€Ÿþ¥­¡Œ¥Ó¥Ã¥È€ò»ÈÍÑ€·€Æ¥·¥Õ¥È¡¢¥í¥Ã¥¯¡¢ ¥³¥ó¥È¥í¡Œ¥ëÅù€ÎœèÍý€ò¹Ô€€€Þ€¹¡£

XLookupKanjiString€Ë€è€Ã€Æ8bit¥¢¥ë¥Õ¥¡¥Ù¥Ã¥ÈÊž»ú µÚ€Ó16bitÆüËÜžìÊž»ú€òŒè€ê°·€Š€³€È€¬€Ç€­€Þ€¹¡£

¥¢¥ë¥Õ¥¡¥Ù¥Ã¥ÈÊž»ú€ÎŒè€ê°·€€€Ë€Ä€€€Æ€Ï¡¢ XLookupKanjiString€ÏXLookupString€ÈƱÍÍ€ÎÆ°ºî€Ë€Ê€ê€Þ€¹¡£

ÆüËÜžìÊž»ú€ÎŒè€ê°·€€€Ë€Ä€€€Æ€Ï¡¢ €³€ÎŽØ¿ô€ÎÆâÉô€Ë€ª€€€Æ¥í¡Œ¥Þ»ú€«€ÊÊÑŽ¹¡¢ €«€ÊŽÁ»úÊÑŽ¹€¬¹Ô€ï€ì€Þ€¹¡£ ÆüËÜžì€ÎÆþÎÏ»þ€ËXKanjiStatus¹œÂ€Â΀¬ÍÑ€€€é€ì€Þ€¹¡£XKanjiStatus¹œÂ€ÂÎ€Ï °Ê²Œ€Î€è€Š€ËÄêµÁ€µ€ì€Þ€¹¡£

         typedef struct _XKanjiStatus {
             unsigned char *echoStr;     /* local echo string */
             int length;                 /* length of echo string */
             int revPos;                 /* reverse position  */
             int revLen;                 /* reverse length    */
             unsigned long info;         /* other informations */
             unsigned char *mode;        /* mode information */
             struct {
                 unsigned char *line;    /* a grance of Kanji characters */
                 int length;             /* length of it */
                 int revPos;             /* reverse position of it */
                 int revLen;             /* reverse length of it */
             } gline;                    /* a grancing line information */
         } XKanjiStatus;
 
         #define KanjiModeInfo   01
         #define KanjiGLineInfo  02
 

€«€ÊŽÁ»úÊÑŽ¹€òÍÑ€€€¿ÆüËÜžìÆþÎÏ»þ€Ë€ÏÊÑŽ¹€ÎÂП݀ȀʀëÆɀ߀ʀɀò ¥í¡Œ¥«¥ë¥š¥³¡Œ€¹€ëɬÍ×€¬€¢€ê€Þ€¹¡£XLookupKanjiString€Ï¥í¡Œ¥«¥ë ¥š¥³¡Œ€Ê€ÉÉœŒš€ËŽØ€¹€ë€³€È€Ï²¿€â¹Ô€ï€º¡¢Âå€ï€ê€Ë¥í¡Œ¥«¥ë¥š¥³¡Œ €¹€ë€Ù€­Êž»úÎó€òXKanjiStatus¹œÂ€Â΀òÍÑ€€€Æ ¥¢¥×¥ê¥±¡Œ¥·¥ç¥óŠ€ËÊÖ€·€Þ€¹¡£

ÊÑŽ¹€¬³ÎÄꀹ€ë€Þ€Ç€Ï¡¢¥í¡Œ¥Þ»ú€«€ÊÊÑŽ¹€µ€ì€Æ€€€ëÊž»ú€ä¡¢ ÊÑŽ¹žõÊäÊž»ú€Ê€É¡¢¥í¡Œ¥«¥ë¥š¥³¡Œ€¹€Ù€­(EUC) Êž»úÎó€¬echoStr¥á¥ó¥Ð€Ë €è€êÊÖ€µ€ì€Þ€¹¡£€³€Î€È€­¡¢¥í¡Œ¥«¥ë¥š¥³¡ŒÊž»úÎó€Î Ĺ€µ¡¢¥ê¥Ð¡Œ¥¹ÉœŒš€Î³«»Ï°ÌÃÖ€ÈĹ€µ¡Ê¥Ð¥€¥Èñ°Ì¡Ë€¬¡¢ €œ€ì€Ÿ€ì¡¢length¥á¥ó¥Ð¡¢revPos¡¢revLen¥á¥ó¥Ð€Ë€Æ ÊÖ€µ€ì€Þ€¹¡£ ¥í¡Œ¥«¥ë¥š¥³¡Œ€¹€Ù€­Êž»úÎó€Î€¿€á€Î¥Ð¥Ã¥Õ¥¡€ÏXLookupKanjiString€Ë €è€Ã€ÆŒ«Æ°Åª€Ë³ÎÊÝ€µ€ì€Þ€¹€¬¡¢€œ€ÎÎΰè€ÏÆɀߌè€ê€Î€ß€ËÍÑ€€€é€ì€ë€Ù€­€Ç€¢€ê¡¢ €œ€ÎÎΰè€ËÊž»úÎó€òœñ€­¹þ€ó€Ç€Ï€€€±€Þ€»€ó¡£

¥í¡Œ¥«¥ë¥š¥³¡Œ€¹€Ù€­Êž»úÎó€¬Ìµ€€Ÿì¹ç€Ïlength¥á¥ó¥Ð€Ë£°€¬ÊÖ€ê€Þ€¹¡£

¥í¡Œ¥«¥ë¥š¥³¡Œ€¹€Ù€­ÆâÍÆ€¬Á°²ó€ÎXLookupKanjiString€ÎžÆ€ÓœÐ€·€Î€È€­€È ÊÑ€ï€é€Ê€€Ÿì¹ç¡ÊÎ〚€Ð¥·¥Õ¥È¥­¡Œ€¬²¡€µ€ì€¿Ÿì¹ç€Ê€É¡Ë€Ïlength¥á¥ó¥Ð€Ë ¡Ý£±€¬ÊÖ€ê€Þ€¹¡£

¥â¡Œ¥É€ÎÊѹ¹€ä¡¢žõÊä°ìÍ÷€ËŽØ€¹€ëŸðÊó€Î̵ͭ€Ï¡¢info¥á¥ó¥Ð€Ë€è€Ã€ÆÅÏ€µ€ì €Þ€¹¡£info¥á¥ó¥Ð€ÎKanjiModeInfo¥Ó¥Ã¥È€¬on€Ç€¢€ì€Ð¡¢mode€Ë¿·€·€€¥â¡Œ¥É €òŒš€¹Êž»úÎó€¬ÊÖ€µ€ì€Þ€¹¡£info¥á¥ó¥Ð€ÎKanjiGLineInfo¥Ó¥Ã¥È€¬on€Ç€¢€ì€Ð¡¢ gline¹œÂ€Â΀˞õÊä°ìÍ÷Åù€ÎŸðÊ󀬳ÊÇŒ€µ€ì€Æ€€€Þ€¹¡£

gline¹œÂ€Â΀Îline¥á¥ó¥Ð€Ë€ÏžõÊä°ìÍ÷ÉœŒš€Î€¿€á€ÎÊž»úÎó€¬ÊÖ€µ€ì€Þ€¹¡£ gline¹œÂ€Â΀Îline,revPos,revLen€Î³Æ¥á¥ó¥Ð€Ï¡¢žõÊä°ìÍ÷Êž»úÎó€Î€œ€ì€Ÿ€ì¡¢ Ĺ€µ¡¢¥ê¥Ð¡Œ¥¹ÉœŒš€Î³«»Ï°ÌÃÖ¡¢¥ê¥Ð¡Œ¥¹ÉœŒš€ÎĹ€µ€¬ÊÖ€µ€ì€Þ€¹¡£

ÊÑŽ¹Ãæ€Ë³ÎÄꀷ€¿(EUC)Êž»úÎ󀬀¢€ëŸì¹ç€Ï¡¢ €œ€ÎÊž»úÎó€¬buffer_return€Ë³ÊÇŒ€µ€ì¡¢ €œ€ÎÊž»úÎó€ÎĹ€µ¡Ê¥Ð¥€¥Èñ°Ì¡Ë€¬€³€ÎŽØ¿ô€ÎÌá€êÃ̀Ȁ·€ÆÊÖ€µ€ì€Þ€¹¡£ ³ÎÄꀷ€¿Êž»úÎó€¬Ìµ€€Ÿì¹ç€ÏÌá€êÃ̀ϣ°€Ë€Ê€ê€Þ€¹¡£

ÌŸÁ°

XKanjiControl - XLookupKanjiString€Ç€Î¥â¡Œ¥É€ä¡€œèÍý€ÎÀ©žæ€ò¹Ô€Š

·ÁŒ°

 #include <X11/kanji.h>
 int XKanjiControl(dpy, win, request, arg)
 Display dpy;
 Window win;
 int request;
 char *arg;
 

ÀâÌÀ

XKanjiControl€Ïdpy, win€ÇŒš€µ€ì€ë¥Š¥£¥ó¥É¥Š€Ë€ª€±€ëÆüËÜžìÆþÎÏ€Ë ŽØ€·€Æ¡€request€ÇŒš€µ€ì€ëœèÍý€ò¹Ô€€€Þ€¹¡¥œèÍý€Ë€è€Ã€Æ€Ï¡€°ú¿ô€ò ÈŒ€ŠŸì¹ç€¬€¢€ê¡€€œ€ÎŸì¹ç¡€°ú¿ô€Ïarg€Ë€ÆÍ¿€š€Þ€¹¡¥

XKanjiControl€ÇÀ©žæ€µ€ì€ëµ¡Çœ€È€·€Æ€Ï°Ê²Œ€¬€¢€ê€Þ€¹¡¥

requestÌŸ
µ¡Çœ
KC_INITIALIZE
€«€ÊŽÁ»úÊÑŽ¹€òœéŽü²œ€¹€ë¡¥
KC_CHANGEMODE
ÆþÎϥ⡌¥É€òÊѹ¹€¹€ë¡¥
KC_SETWIDTH
žõÊä°ìÍ÷ÉœŒš€Î»þ€ÎÉý€ò»ØÄꀹ€ë¡¥
KC_FINALIZE
€«€ÊŽÁ»úÊÑŽ¹€ÎœªÎ»œèÍý¡¥
KC_SETUNDEFKEYFUNCTION
Ì€ÄêµÁ¥­¡Œ€ËÂЀ¹€ëµ¡Çœ€ÎÀßÄê€ò¹Ô€Š¡¥
KC_SETMODEINFOSTYLE
¥â¡Œ¥ÉŸðÊó€ò¿ôÃÍ€ÇÉœžœ€¹€ë€«€É€Š€«€ò»ØÄꀹ€ë¡¥
KC_KAKUTEI
ÆþÎÏÃæ€ÎÊž»úÎó€ò³ÎÄꀹ€ë¡¥
KC_KILL
ÆþÎÏÃæ€ÎÊž»úÎó€òºïœü€¹€ë¡¥
KC_QUERYMODE
žœºß€Î¥â¡Œ¥É€òÌ䀀¹ç€ï€»€ë¡¥
KC_SETSERVERNAME
Àܳ€¹€ë¥µ¡Œ¥Ð€ò»ØÄꀹ€ë¡¥
KC_SETINITFILENAME
¥«¥¹¥¿¥Þ¥€¥º¥Õ¥¡¥€¥ë€ò»ØÄꀹ€ë¡¥
KC_CLOSEUICONTEXT
¥³¥ó¥Æ¥¯¥¹¥È€ò¥¯¥í¡Œ¥º€¹€ë¡¥
KC_QUERYMAXMODESTR
¥â¡Œ¥ÉÉœŒšÊž»úÎó€ÎºÇÂçĹ€òµá€á€ë¡¥

XKanjiControl€ÎºîÍрώðËÜŪ€Ë€Ïdpy, win€Ç»ØÄꀵ€ì€¿¥Š¥£¥ó¥É¥Š€Ç €ÎÆüËÜžìÆþÎÏ€ËÂЀ·€Æ€Î €ßºîÍÑ€·€Þ€¹¡¥€¿€À€·¡€œéŽü²œ€ÎœèÍý€äœªÎ»€ÎœèÍý€ËŽØ€·€Æ€Ï€œ€ÎžÂ€ê€Ç€Ï€¢ €ê€Þ€»€ó¡¥

XKanjiControl€ÎÁàºî€Ë€è€Ã€ÆÌ€³ÎÄêÊž»úÎó€ÎŸõÂÖ€¬ÊѲœ€·€¿€ê¡€¥â¡Œ¥É€ÎŸõ ÂÖ€¬ÊÑ€ï€ë€³€È€¬€¢€ê€Þ€¹¡¥€œ€Î€è€Š€Ê²ÄÇœÀ­€¬€¢€ëŸì¹ç€ÏargÉôʬ€ËÊѲœ€· €¿ŸðÊó€ò³ÊÇŒ€Ç€­€ë€è€Š€Ê¹œÂ€Â΀؀Υݥ€¥ó¥¿€òÅÏ€·€Þ€¹¡¥€œ€Î¹œÂ€Â΀ÎÄêµÁ €Ï°Ê²Œ€Î€è€Š€Ë€Ê€ê€Þ€¹¡¥

 typedef struct {
   int      val;          /* ¥Ð¥Ã¥Õ¥¡€Ë³ÊÇŒ€µ€ì€¿Êž»úÎó€ÎĹ€µ€¬ÊÖ€ë */
   unsigned char *buffer; /* ³ÎÄêÊž»úÎó€ò³ÊÇŒ€¹€ë€¿€á€Î¥Ð¥Ã¥Õ¥¡€òÍ¿€š€ë */
   int      bytes_buffer; /* Ÿåµ­€Î¥Ð¥Ã¥Õ¥¡€ÎÂ瀭€µ€òÍ¿€š€ë */
   XKanjiStatus *ks;     /* Ì€³ÎÄêÊž»úÎó€ÎŸðÊó€ò³ÊÇŒ€¹€ë¹œÂ€Â΀؀Υݥ€¥ó¥¿ */
 } XKanjiStatusWithValue;
 

XKanjiControl€Î€œ€ì€Ÿ€ì€Îµ¡Çœ€ÎŒÂ¹Ô€Î€·€«€¿€Ï°Ê²Œ€ÎÄÌ€ê€Ç€¹¡¥

(1)
KC_INITIALIZE - €«€ÊŽÁ»úÊÑŽ¹€ÎœéŽü²œ

KC_INITIALIZE€òrequestÉô€Ç»ØÄꀹ€ë€³€È€Ë€è€ê¡€€«€ÊŽÁ»úÊÑŽ¹€ÎœéŽü ²œ€ò¹Ô€€€Þ€¹¡¥arg€Ë€Ïwarning¥á¥Ã¥»¡Œ¥ž€ò ³ÊÇŒ€¹€ë€¿€á€Î(char **)·¿€ÎÊÑ¿ô€Ø€Î¥Ý¥€¥ó¥¿€Þ€¿€ÏNULL€ò»ØÄꀷ€Þ€¹¡¥œé Žü²œ€ÎœèÍý€ÏŽðËÜŪ€Ë€ÏXKanjiString(3)€¬ºÇœé€ËžÆ€Ð€ì€¿»þ€ËŒ«Æ°Åª€Ë¹Ô€ï €ì€Þ€¹€¬¡€XKanjiControl€òÍÑ€€€ÆœéŽü²œ€¹€ë €³€È€Ë€è€ê¡€XKanjiString(3)€Ç€ÎœéŽü²œœèÍý€Ï¹Ô€ï€ì€Ê€¯€Ê€ê€Þ€¹¡¥
XKanjiString(3)€Î»ÈÍÑ€ËÀèΩ€Ã€ÆXKanjiControl€òÍÑ€€€Æ€«€ÊŽÁ»úÊÑŽ¹€ËŽØ €¹€ëÀ©žæ€ò¹Ô€Š»þ€Ê€É€Ï¡€ŽÁ»úÊÑŽ¹€ÎœéŽü²œ€ò¹Ô€ŠÉ¬Í×€¬€¢€ê€Þ€¹¡¥
ÀµŸïœªÎ»»þ€Ë€ÏXKanjiControl€ÎÌá€êÃ̀Ȁ·€Æ0€¬Êրꡀ°ÛŸïœªÎ»»þ€Ë€Ï-1€¬ ÊÖ€ê€Þ€¹¡¥
KC_INITIALIZE€ò¹Ô€Ã€¿Ÿì¹ç¡€¥š¥é¡Œ€È€Þ€Ç€Ï€€€«€Ê€¯€È€â²¿€é€«€Îwarning€¬ ȯÀž€¹€ë€³€È€¬€¢€ê€Þ€¹¡¥warning€¬È¯Àž€·€¿Ÿì¹ç€Ïarg€Ë€ÆÍ¿€š€é€ì€¿ ÊÑ¿ô€ËÂЀ·€ÆwarningÊž»úÎó€ÎÇÛÎó€Ø€Î¥Ý¥€¥ó¥¿€¬³ÊÇŒ€µ€ì ÊÖ€µ€ì€Þ€¹¡¥warning€¬€Ê€€€È€­€ÏNULL€¬³ÊÇŒ€µ€ìÊÖ€µ€ì€Þ€¹¡¥
(Îã)
   int res; /* ¥š¥é¡Œ€¬ÊրÀƀ¯€ëŸì¹ç€ËÈ÷€š€ë */
   char **warning;
   .....
   res = XKanjiControl(dpy, win, KC_INITIALIZE, &warning);
   if (warning) {
     char **p;
 
     for (p = warning ; *p ; p++) {
       fprintf(stderr, "%s, *p);
     }
   }
 

Âè4°ú¿ô€ËÊÖ€µ€ì€ëwarning¥á¥Ã¥»¡Œ¥ž€Ï¥é¥€¥Ö¥é¥ê€ÎÆâÉô€Çmalloc€µ€ì€Þ€¹¡¥ €³€ì€Ï¡€Œ¡€ËKC_INITIALIZE€äKC_FINALIZE€¬¹Ô€ï€ì€¿»þ€Ë³«Êü€µ€ì€Þ€¹¡¥¥¢¥× ¥ê¥±¡Œ¥·¥ç¥ó¥×¥í¥°¥é¥Þ€¬Ÿ¡Œê€Ëfree€·€Æ€Ï€€€±€Þ€»€ó¡¥warning€Ïº£€Î€È€³ €íºÇÂç64¥á¥Ã¥»¡Œ¥ž€ËžÂÄꀵ€ì€Þ€¹¡¥€œ€ì°ÊŸå€Î¥á¥Ã¥»¡Œ¥ž€ÏÀڌ΀ƀé€ì€Þ€¹¡¥

¥á¥Ã¥»¡Œ¥ž€ËŽÞ€Þ€ì€ë²ÄÇœÀ­€Î€¢€ëwarning€Ë€Ï°Ê²Œ€Î€â€Î€¬€¢€ê€Þ€¹¡¥

¡Š
¥«¥¹¥¿¥Þ¥€¥º¥Õ¥¡¥€¥ë€¬¥·¥¹¥Æ¥à€Î€â€Î€âŽÞ€á€Æ€¹€Ù€ÆÍøÍрǀ­€Ê€€¡¥
¡Š
¥«¥¹¥¿¥Þ¥€¥º¥Õ¥¡¥€¥ë€Ë¥·¥ó¥¿¥Ã¥¯¥¹¥š¥é¡Œ€¬€¢€ë¡¥
¡Š
¥í¡Œ¥Þ»ú€«€ÊÊÑŽ¹Œ­œñ€¬ÍøÍрǀ­€Ê€€¡¥
¡Š
€«€ÊŽÁ»úÊÑŽ¹Œ­œñ€¬ÍøÍрǀ­€Ê€€¡¥
¡Š
€«€ÊŽÁ»úÊÑŽ¹¥µ¡Œ¥Ð€ËÀܳ€Ç€­€Ê€€¡¥

Âè4°ú¿ô€È€·€ÆNULL€ò»ØÄꀷ€¿Ÿì¹çwarning¥á¥Ã¥»¡Œ¥ž€ÏŒÎ€Æ€é€ì€Þ€¹¡¥

(2)
KC_CHANGEMODE - ÆþÎϥ⡌¥É€ÎÊѹ¹

ÆþÎϥ⡌¥É€ò¥¢¥×¥ê¥±¡Œ¥·¥ç¥ó€«€éÊѹ¹€·€Þ€¹¡¥request€Î Éôʬ€Ë€ÏKC_CHANGEMODE€ò»ØÄꀷ¡€arg€ËXKanjiStatusWithValue¹œÂ€ÂÎ €ò»ØÄꀷ€Æ²Œ€µ€€¡¥XKanjiStatusWithValue¹œÂ€Â΀Îval¥á¥ó¥Ð€Ë€Æ¥â¡Œ ¥ÉÈÖ¹æ€ò»ØÄꀹ€ë€³€È€Ë€è€êÆüËÜžì¥â¡Œ¥É€¬ÀÚ€êÂØ€ï€ê€Þ€¹¡¥¥â¡Œ¥ÉÈÖ¹æ€Ï°Ê ²Œ€Î¥Þ¥¯¥í€ÇŒš€µ€ì€Þ€¹¡¥
¥Þ¥¯¥íÈÖ¹æ
¥â¡Œ¥É
CANNA_MODE_AlphaMode
¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¥â¡Œ¥É
CANNA_MODE_HenkanMode
ÊÑŽ¹ÆþÎϥ⡌¥É
CANNA_MODE_KigoMode
µ­¹æÆþÎϥ⡌¥É
CANNA_MODE_ZenHiraKakuteiMode
ÁŽ³Ñ€Ò€é€¬€Ê³ÎÄêÆþÎϥ⡌¥É
CANNA_MODE_ZenKataKakuteiMode
ÁŽ³Ñ¥«¥¿¥«¥Ê³ÎÄêÆþÎϥ⡌¥É
CANNA_MODE_HanKataKakuteiMode
ÈŸ³Ñ¥«¥¿¥«¥Ê³ÎÄêÆþÎϥ⡌¥É
CANNA_MODE_ZenAlphaKakuteiMode
ÁŽ³Ñ¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È³ÎÄêÆþÎϥ⡌¥É
CANNA_MODE_HanAlphaKakuteiMode
ÈŸ³Ñ¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È³ÎÄêÆþÎϥ⡌¥É
CANNA_MODE_HexMode
16¿Ê¥³¡Œ¥ÉÆþÎϥ⡌¥É
CANNA_MODE_BushuMode
ÉôŒóÆþÎϥ⡌¥É
CANNA_MODE_TorokuMode
ñžìÅÐÏ¿¥â¡Œ¥É

€³€Îµ¡Çœ€Ë€è€ê¥â¡Œ¥É€òÊѹ¹€¹€ë€È¥â¡Œ¥ÉÌŸ€ò»Ï€á€È€·€Æ¿€¯€ÎÉœŒš€¬ÊѲœ€ò Œõ€±€Þ€¹¡¥ÉœŒš€ÎÊѹ¹€Ïarg€È€·€Æ»ØÄꀷ€¿XKanjiStatusWithValue¹œÂ€ÂÎ€Ë €ÆÊÖ€µ€ì€Þ€¹¡¥

(Îã)

   XKanjiStatus ks;
   XKanjiStatusWithValue ksv;
   unsigned char buf[SOMESIZE];
   .....
   ksv.ks = &ks;
   ksv.buffer = buf;
   ksv.bytes_buffer = SOMESIZE;
   ksv.val = CANNA_MODE_HexMode;
 
   XKanjiControl(dpy, win, KC_CHANGEMODE, &ksv);
   len = ksv.val;
   .....
   /* Ì€³ÎÄêÊž»úÎó€ä³ÎÄêÊž»úÎó€ÎŸðÊó€¬ksv€Ë€è€êÊÖ€µ€ì€Þ€¹¡¥ */
 
(3)
KC_SETWIDTH - žõÊä°ìÍ÷ÉœŒš€Î€¿€á€ÎÉý€ò»ØÄê

žõÊä°ìÍ÷€Î€¿€á€ËÍÑ€€€é€ì€ëÎΰè€Î¥³¥é¥à¿ô€ò»ØÄꀷ€Þ€¹¡¥£±¥³¥é¥à€ÎÉý€Ï¥¢ ¥ë¥Õ¥¡¥Ù¥Ã¥ÈÊž»ú€¢€ë€€€ÏÈŸ³Ñ¥«¥¿¥«¥Ê£±Êž»ú€ÎÊž»úÉý€Ç€¢€ê¡€ÁŽ³ÑŽÁ»ú€Ï£² ¥³¥é¥àÀê€á€ë€³€È€Ë€Ê€ê€Þ€¹¡¥žõÊä°ìÍ÷ÉœŒš€Î€¿€á€ÎÉý€ò »ØÄꀹ€ë€¿€á€ËrequestÉôʬ€Ë»ØÄꀹ€ëÃÍ€ÏKC_SETWIDTH€Ç¡€ €³€Î€È€­arg€Ë¥³¥é¥à¿ô€ò»ØÄꀷ€Þ€¹¡¥
(Îã)
   XKanjiControl(dpy, win, KC_SETWIDTH, (char *)60);
 
(4)
KC_FINALIZE - €«€ÊŽÁ»úÊÑŽ¹€ÎœªÎ»œèÍý¡¥

¥×¥í¥°¥é¥à€òœªÎ»€¹€ë€Ê€É€Î¶ÉÌ̀ǀ«€ÊŽÁ»úÊÑŽ¹€âœªÎ»€¹€ë€³€È€ò»ØÄꀷ€Þ€¹¡¥ €«€ÊŽÁ»úÊÑŽ¹œèÍý€òœªÎ»€µ€»€ë»þ€Ïɬ€º€³€ÎœèÍý€ò¹Ô€Ã€Æ²Œ€µ€€¡¥œª€ï€ë€Ë€¢ €¿€Ã€Æº£€Þ€Ç³Øœ¬€·€¿ÆâÍÆ€¬¥Õ¥¡¥€¥ë€ËÅÐÏ¿€µ€ì€Þ€¹¡¥requestÉôʬ€Ë €ÏKC_FINALIZE€ò»ØÄꀷ€Þ€¹¡¥
ÀµŸïœªÎ»»þ€Ë0¡€°ÛŸïœªÎ»»þ€Ë-1€¬Ìá€êÃ̀Ȁ·€ÆÊÖ€ê€Þ€¹¡¥
KC_FINALIZE€ò¹Ô€Ã€¿Ÿì¹ç¡€¥š¥é¡Œ€È€Þ€Ç€€€«€Ê€¯€È€â²¿€é€«€Îwarning€¬È¯Àž €¹€ë€³€È€¬€¢€ê€Þ€¹¡¥warning€¬È¯Àž€·€¿Ÿì¹ç€Ïarg€Ë€ÆÍ¿€š€é€ì€¿ ÊÑ¿ô€ËwarningÊž»úÎó€ÎÇÛÎó€Ø€Î¥Ý¥€¥ó¥¿€¬³ÊÇŒ€µ€ìÊÖ€µ€ì€Þ€¹¡¥warning€¬€Ê €€Ÿì¹ç€Ë€ÏNULL¥Ý¥€¥ó¥¿€¬³ÊÇŒ€µ€ìÊÖ€µ€ì€Þ€¹¡¥
(Îã)
 

  int res; /* ¥š¥é¡Œ€¬ÊÖ€ëŸì¹ç€ËÈ÷€š€ë */
  char **warning;
  .....
  res = XKanjiControl(dpy, win, KC_FINALIZE, &warning);
  if (warning) {
    char **p;


    for (p = warning ; *p ; p++) {
      fprintf(stderr, "%s, *p);
    }
  }

Âè4°ú¿ô€ËÊÖ€µ€ì€ëwarning¥á¥Ã¥»¡Œ¥ž€Ï¡€¥é¥€¥Ö¥é¥ê€ÎÆâÉô€Çmalloc€µ€ì€Þ €¹¡¥€³€ì€Ï¡€Œ¡€ËKC_INITIALIZE€äKC_FINALIZE€¬¹Ô€ï€ì€¿»þ€Ë³«Êü€µ€ì€Þ€¹¡¥ ¥¢¥×¥ê¥±¡Œ¥·¥ç¥ó¥×¥í¥°¥é¥Þ€¬Ÿ¡Œê€Ëfree€·€Æ€Ï€€€±€Þ€»€ó¡¥

warning€Ïº£€Î€È€³€íºÇÂç64¥á¥Ã¥»¡Œ¥ž€ËžÂÄꀵ€ì€Þ€¹¡¥€œ€ì°ÊŸå€Î¥á¥Ã¥»¡Œ ¥ž€ÏÀڌ΀ƀé€ì€Þ€¹¡¥

¥á¥Ã¥»¡Œ¥ž€ËŽÞ€Þ€ì€ë²ÄÇœÀ­€Î€¢€ëwarning€Ë€ÏŒ¡€Î€â€Î€¬€¢€ê€Þ€¹¡¥

¡Š
Œ­œñ€¬¥¢¥ó¥Þ¥Š¥ó¥È€Ç€­€Ê€€¡¥

Âè4°ú¿ô€È€·€ÆNULL€ò»ØÄꀷ€¿Ÿì¹ç¡€warning¥á¥Ã¥»¡Œ¥ž€ÏŒÎ€Æ€é€ì€Þ€¹¡¥

(5)
KC_SETUNDEFKEYFUNCTION - Ì€ÄêµÁ¥­¡Œ€ËÂЀ¹€ëµ¡Çœ€ÎÀßÄê

Æɀ߀òÆþÎÏ€·€Æ€€€ëŸõÂÖ€ÇC-t€òÂǀÀ¿€È€­€Î€è€Š€ËÌ€ÄêµÁ¥­¡Œ€òÆþÎÏ€·€¿»þ €ËŒè€é€ì€ëœèÍý€ò»ØÄꀷ€Þ€¹¡¥Ì€ÄêµÁ¥­¡Œ€ËÂбþ€·€Æ¹Ô€ï€ì€ëœèÍý€È€·€Æ€Ï°Ê ²Œ€ÎœèÍý€¬€¢€ê€Þ€¹¡¥
¥Þ¥¯¥íÌŸ
œèÍý
kc_normal
¥Ó¡Œ¥×
kc_through
¥¢¥×¥ê¥±¡Œ¥·¥ç¥ó¥×¥í¥°¥é¥à€ËÅÏ€¹
kc_kakutei
³ÎÄꀷ¥¢¥×¥ê¥±¡Œ¥·¥ç¥ó¥×¥í¥°¥é¥à€ËÅÏ€¹
kc_kill
ŸÃµî€·¥¢¥×¥ê¥±¡Œ¥·¥ç¥ó¥×¥í¥°¥é¥à€ËÅÏ€¹

kc_normal€ò»ØÄꀷ€¿Ÿì¹ç¡€³°ÉôÊÑ¿ôjrBeepFunc€ËÀßÄꀵ€ì€¿ŽØ¿ô€¬Ì€ÄêµÁ¥­¡Œ ÆþÎÏ»þ€Ë¥é¥€¥Ö¥é¥ê€Ë€è€Ã€ÆŒ«Æ°Åª€ËžÆ€ÓœÐ€µ€ì€Þ€¹¡¥jrBeepFunc€ËÃÍ€òÀßÄê €·€Ê€€Ÿì¹ç€Ë€Ï(jrBeepFunc == NULL€ÎŸì¹ç€Ë€Ï)²¿€âµ¯€³€ê€Þ€»€ó¡¥

(Îã)

   extern (*jrBeepFunc)(), beep();
 
   jrBeepFunc = beep;
   XKanjiControl(dpy, win, KC_SETUNDEFKEYFUNCTION, kc_normal);
 
(6)
KC_SETMODEINFOSTYLE - ¥â¡Œ¥ÉŸðÊó€ÎÉœžœ

¥â¡Œ¥ÉŸðÊó€òÊž»úÎó€Ç€Ï€Ê€¯¥Ó¥Ã¥È¥Þ¥Ã¥×€Ê€É€Î¥Ç¡Œ¥¿€ÇÉœŒš€·€¿€€Ÿì¹ç€¬€¢ €ê€Þ€¹¡¥€œ€Î€è€Š€ÊŸì¹ç€Ë€Ï¥â¡Œ¥ÉŸðÊó€È€·€Æ¿ôÃͥǡŒ¥¿€¬ÊրÀƀ¯€ë€ÈœèÍý €¬€·€ä€¹€¯€Ê€ê€Þ€¹¡¥XKanjiControl€ÇKC_SETMODEINFOSTYLE€ò »ØÄꀷ¡€arg€Ë£±€òÅÏ€¹€³€È€Ë€è€Ã€Æ€œ€ì°Êžå€ÏXKanjiStatus¹œÂ€ÂÎ €Îmode¥á¥ó¥Ð€Ë€Ï¥â¡Œ¥É€òÉœ€¹¿ôÃÍ€Ë'@'(0x40)€ò²Ã€š€¿£±Êž»ú€¬ÊÖ€µ €ì€ë€è€Š€Ë€Ê€ê€Þ€¹¡¥¥â¡Œ¥É€òÉœ€¹¿ôÃÍ€ËÊÑŽ¹€¹€ëŸì¹ç€Ë€ÏÊրÀƀ­€¿Êž»úÎó €«€é'@'(0x40)€ò°ú€­€Þ€¹¡¥¥â¡Œ¥É€òÉœ€¹¿ôÃ̀ˀĀ€€Æ€ÏÆþÎϥ⡌¥É€Î Êѹ¹((2)KC_CHANGEMODE)€Î€³€Š€ò»²ŸÈ€·€Æ²Œ€µ€€¡¥
(7)
KC_KAKUTEI¡€(8) KC_KILL - ÆþÎÏÃæ€ÎÊž»úÎó€ÎÊüŽþ

ÆþÎÏÃæ€ÎÊž»úÎó€ò²¿€é€«€ÎÅÔ¹ç€ÇÊüŽþ€·€¿€€Ÿì¹ç€¬€¢€ê€Þ€¹¡¥ÊüŽþ€¹€ëŸì¹ç€Ë ÆþÎÏÃæ€ÎÊž»úÎó€ò³ÎÄêÊž»úÎó€È€·€ÆŒè€ê¹þ€ó€Ç€«€éÊüŽþ€·€¿€€Ÿì¹ç€ÈÁŽ€¯ŒÎ€Æ €Æ€·€Þ€Ã€Æ€«€éÊüŽþ€·€¿€€Ÿì¹ç€¬€¢€ê€Þ€¹¡¥³ÎÄꀹ€ë Ÿì¹ç€Ë€ÏXKanjiControl€Ë€ÆKC_KAKUTEI€ò»ØÄꀷ¡€ÊüŽþ€¹€ë Ÿì¹ç€Ë€ÏKC_KILL€ò»ØÄꀷ€Þ€¹¡¥
€³€ÎœèÍý€ÏÉœŒš€Ë±Æ¶Á€òÍ¿€š€ë€Î€ÇÂè4°ú¿ô€Ë€ÏXKanjiStatusWithValue¹œÂ€ Â΀ò»ØÄꀷ€Ê€±€ì€Ð€Ê€ê€Þ€»€ó¡¥
   XKanjiStatusWithValue ksv;
   XKanjiStatus ks;
   unsigned char buf[SOMESIZE];
   .....
   ksv.ks = &ks;
   ksv.buffer = buf;
   ksv.bytes_buffer = SOMESIZE;
 
   XKanjiControl(dpy, win, KC_KAKUTEI, &ksv);
   len = ksv.val;
   .....
 
(9)
KC_QUERYMODE - ¥â¡Œ¥É€ÎÌ䀀¹ç€ï€»

žœºß€Î¥â¡Œ¥É€òÌ䀀¹ç€ï€»€ë€Ë€ÏXKanjiControl€ÇKC_QUERYMODE€ò»ØÄꀷ€Þ€¹¡¥
Âè4°ú¿ô€Ë€Ï¥â¡Œ¥ÉÊž»úÎó€ò³ÊÇŒ€¹€ë€¿€á€ÎÊž»úÇÛÎó€Î¥Ý¥€¥ó¥¿€ò»ØÄꀷ€Þ€¹¡¥ ¥â¡Œ¥ÉÊž»úÎó€Ï¥Ì¥ëÊž»ú€Çœª€ï€ëÊž»úÎó€Ç€¹¡¥€³€³€Ë¿ôÃÍ€¬ÊÖ€ë€è€Š€Ë€¹€ë€Ë €ÏXKanjiControl€ÇKC_SETMODEINFOSTYLE€ò»ØÄꀷ€Æ¥â¡Œ¥ÉÊž»úÎó€Î¥¹¥¿¥€¥ë €òÊѹ¹€·€Æ€ª€­€Þ€¹¡¥
(Îã)
   char currentMode[MAXMODELEN];
   .....
   XKanjiControl(dpy, win, KC_QUERYMODE, currentMode);
   .....
 
(10)
KC_SETSERVERNAME - ¥µ¡Œ¥Ð€Î»ØÄê

€«€ÊŽÁ»úÊÑŽ¹¥µ¡Œ¥Ð€È€·€Æ€É€Î¥µ¡Œ¥Ð€ò»È€Š€«€ò¥¢¥×¥ê¥±¡Œ¥·¥ç¥ó¥×¥í¥°¥é¥à €òœªÎ»€¹€ë€³€È€Ê€·€ËÀÚÂØ€š€ë€³€È€¬²ÄÇœ€Ç€¹¡¥€«€ÊŽÁ»úÊÑŽ¹¥µ¡Œ¥Ð€È€·€ÆÀÜ Â³€¹€ë€Ù€­¥µ¡Œ¥Ð€ò»ØÄꀹ€ë€Ë€ÏXKanjiControl€ÇKC_SETSERVERNAME€ò»ØÄꀷ €Þ€¹¡¥Âè4°ú¿ô€Ë€ÏÀܳ€·€¿€€¥µ¡Œ¥ÐÌŸ€ò»ØÄꀷ€Þ€¹¡¥
(11)
KC_SETINITFILENAME - ¥«¥¹¥¿¥Þ¥€¥º¥Õ¥¡¥€¥ë€Î»ØÄê

¥«¥¹¥¿¥Þ¥€¥º¥Õ¥¡¥€¥ë€ò¥¢¥×¥ê¥±¡Œ¥·¥ç¥ó¥×¥í¥°¥é¥àŠ€«€éÊѹ¹€¹€ë€³€È€¬€Ç €­€Þ€¹¡¥¥«¥¹¥¿¥Þ¥€¥º¥Õ¥¡¥€¥ë€ÎÊѹ¹€ÏXKanjiControl€Î Âè3°ú¿ô€ËKC_SETINITFILENAME€ò»ØÄꀷ¡€Âè4°ú¿ô€Ë¥Õ¥¡¥€¥ëÌŸÊž»úÎó€ò»ØÄê €¹€ë€³€È€Ë€è€ê¹Ô€€€Þ€¹¡¥€³€ÎœèÍý€ò¹Ô€ŠŸì¹ç€ÏKC_INITIALIZE€ËÀèΩ€Ã€ÆŒÂ ¹Ô€·€Æ€ª€«€Ê€±€ì€Ð€Ê€ê€Þ€»€ó¡¥
(Îã)
   char *inifile = "app-own.canna"
   .....
   XKanjiControl(dpy, win, KC_SETINITFILENAME, initfile);
   .....
 
(12)
KC_CLOSEUICONTEXT - ¥³¥ó¥Æ¥¯¥¹¥È€Î¥¯¥í¡Œ¥º

XKanjiControl€äXKanjiString€òžÆ€ÓœÐ€¹€È¡€dpy, win€ÎÁȀ߹ç€ï€»€Ë ÂЀ·€Æ€Ò€È€Ä€ÎÊÑŽ¹¥³¥ó¥Æ¥¯¥¹¥È€ò³ä€êÅö€Æ€Þ€¹¡¥ º£€Þ€Ç»È€ï€ì€Æ€€€Ê€€dpy, win€Î ÁȀ߹ç€ï€»€òXKanjiString€¢€ë€€€ÏXKanjiControl€ËÍ¿€š€ë€³€È€¬²ÄÇœ €Ç€¢€ê¡€€œ€ÎŸì¹ç¡€€œ€Î¥Š¥£¥ó¥É¥ŠÍр˿·€¿€Ë¥³¥ó¥Æ¥¯¥¹¥È€¬ºîÀ®€µ€ìɬÍ×€Ê¥á ¥â¥ê€¬³ÎÊÝ€µ€ì€Þ€¹¡¥
€œ€ì€Þ€Ç»ÈÍÑ€·€Æ€€€¿¥Š¥£¥ó¥É¥Š€¬»È€ï€ì€Ê€¯€Ê€Ã€¿Ÿì¹ç€Ë¡€€œ€Î¥Š¥£¥ó¥É¥Š€Ë³ä €êÅö€Æ€Æ»È€Ã€Æ€€€¿¥³¥ó¥Æ¥¯¥¹¥ÈÍр˳ÎÊÝ€µ€ì€¿¥á¥â¥ê€ò ³«Êü€¹€ë€Ë€ÏXKanjiControl€òÂè3°ú¿ô€ËKC_CLOSEUICONTEXT€ò»ØÄꀷ€ÆžÆ€Ó œÐ€·€Þ€¹¡¥
€³€ÎœèÍý€ÏÉœŒš€ÎÊѲœ€ò€È€â€Ê€Š€Î€ÇÂè4°ú¿ô€Ë€ÏXKanjiStatusWithValue¹œ €Â΀òÍ¿€š€Þ€¹¡¥
(Îã)
   XKanjiStatusWithValue ksv;
   XKanjiStatus ks;
   unsigned char buf[SOMESIZE];
   .....
   ksv.ks = &ks;
   ksv.buffer = buf;
   ksv.bytes_buffer = SOMESIZE;
 
   XKanjiControl(dpy, win, KC_CLOSEUICONTEXT, &ksv);
   .....
 
(13)
KC_QUERYMAXMODESTR - ¥â¡Œ¥ÉÉœŒšÊž»úÎó€ÎºÇÂçĹ€òµá€á€ë¡¥

œéŽü²œ¥Õ¥¡¥€¥ë€Ë€Æ¥â¡Œ¥ÉÉœŒšÊž»úÎ󀬥«¥¹¥¿¥Þ¥€¥º€Ç€­€Þ€¹€¬¡€¥«¥¹¥¿¥Þ¥€ ¥º€µ€ì€¿·ë²Ì¥â¡Œ¥ÉÉœŒšÊž»úÎó€Ë€É€ì€À€±€ÎÉœŒšÎΰè€ò³ÎÊÝ€¹€ë€«€òÄŽ€Ù€ëɬ Í×€¬€¢€ëŸì¹ç€¬€¢€ê€Þ€¹¡¥XKanjiControl€òÂè3°ú¿ô€ËKC_QUERYMAXMODESTR€ò »ØÄꀷ€ÆžÆ€ÓœÐ€¹€³€È€Ë€è€ê¡€¥â¡Œ¥ÉÉœŒšÊž»úÎó€È€·€Æ²¿¥³¥é¥àɬÍ×€«€¬ÊÖ€ê Ã̀Ȁ·€ÆÊÖ€µ€ì€Þ€¹¡¥€³€³€ÇžÀ€Š¥³¥é¥à€È€ÏÈŸ³Ñ±Ñ¿ôÊž»ú€ÎÊž»úÉý€ò£±€È€·€¿ €È€­€ÎÃÍ€òŒš€·€Þ€¹¡¥
Âè4°ú¿ô€ÏÍÑ€€€é€ì€Ê€€€Î€Ç¥À¥ß¡ŒÃ̀Ȁ·€Æ0€òÍ¿€š€Þ€¹¡¥
(Îã)
   int max_mode_columns;
   .....
   max_mode_columns = XKanjiControl(dpy, win, KC_QUERYMAXMODESTR, 0);
   .....