Scroll to navigation

XKANJICONTROL(3) Library Functions Manual XKANJICONTROL(3)

̾??

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

????

TTY?????????ϡ??ؤǤ????ϡ????ܥ??????ɥ??Ǥ????Ϥʤɰ???Ū?ʥ????ܡ? ?????Ϥ??Ф??ƴ???ʸ?????ؤ??Ѵ????Ԥ??ޤ???
jrKanjiString?Ǥ??????????ꤵ?줿?ѥ??᥿?ˤ????Ԥ??ޤ???
?إ??????ɥ??????ƥ??ˤ????ơ??????ܡ???????(???????٥???)?δ???ʸ???? ?ؤ??Ѵ????Ԥ??ޤ???
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?Ȥ???Ϳ???Ʋ???????

????̾
??????
CANNA_KEY_Nfer
CANNA_KEY_Xfer
CANNA_KEY_Up
CANNA_KEY_Left
CANNA_KEY_Right
CANNA_KEY_Down
CANNA_KEY_Insert
CANNA_KEY_Rollup
CANNA_KEY_Rolldown
CANNA_KEY_Home
CANNA_KEY_Help
CANNA_KEY_Shift_Nfer
CANNA_KEY_Shift_Xfer
CANNA_KEY_Shift_Up
CANNA_KEY_Shift_Left
CANNA_KEY_Shift_Right
CANNA_KEY_Shift_Down
CANNA_KEY_Control_Nfer
CANNA_KEY_Control_Xfer
CANNA_KEY_Control_Up
CANNA_KEY_Control_Left
CANNA_KEY_Control_Right
CANNA_KEY_Control_Down
CANNA_KEY_F1
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?????椵???뵡ǽ?Ȥ??Ƥϰʲ??Σ??Ĥ??????ޤ???

??ǽ
???ʴ????Ѵ????????????롥
???ϥ⡼?ɤ??ѹ????롥
????????ɽ???λ??????????ꤹ?롥
???ʴ????Ѵ??ν?λ??????
̤???????????Ф??뵡ǽ?????????Ԥ???
?⡼?ɾ????????ͤ?ɽ?????뤫?ɤ????????ꤹ?롥
????????ʸ?????????ꤹ?롥
????????ʸ?????????????롥
???ߤΥ⡼?ɤ??䤤???碌?롥
??³???륵???Ф????ꤹ?롥
???????ޥ????ե??????????ꤹ?롥
?????ƥ????Ȥ򥯥????????롥
?⡼??ɽ??ʸ?????κ???Ĺ???????롥

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, "%s0, *p);
}
}

?裳???????֤?????warning???å??????ϥ饤?֥???????????malloc?????ޤ??? ?????ϡ?????KC_INITIALIZE??KC_FINALIZE???Ԥ??줿???˳????????ޤ??????? ?ꥱ?????????ץ??????ޤ???????free???ƤϤ????ޤ?????warning?Ϻ??ΤȤ? ??????64???å??????˸??ꤵ???ޤ????????ʾ??Υ??å????????ڼΤƤ????ޤ???

???å??????˴ޤޤ?????ǽ???Τ???warning?ˤϰʲ??Τ??Τ??????ޤ???

??
???????ޥ????ե????뤬?????ƥ??Τ??Τ??ޤ??Ƥ??٤????ѤǤ??ʤ???
??
???????ޥ????ե??????˥??󥿥å??????顼?????롥
??
?????޻??????Ѵ??????????ѤǤ??ʤ???
??
???ʴ????Ѵ??????????ѤǤ??ʤ???
??
???ʴ????Ѵ??????Ф???³?Ǥ??ʤ???

?裳?????Ȥ???NULL?????ꤷ??????warning???å??????ϼΤƤ????ޤ???

(2)
KC_CHANGEMODE - ???ϥ⡼?ɤ??ѹ?

???ϥ⡼?ɤ򥢥ץꥱ???????󤫤??ѹ????ޤ???request?? ??ʬ?ˤ?KC_CHANGEMODE?????ꤷ??arg??jrKanjiStatusWithValue??¤?? ?????ꤷ?Ʋ???????jrKanjiStatusWithValue??¤?Τ?val?????Фˤƥ⡼ ???ֹ??????ꤹ?뤳?Ȥˤ??????ܸ??⡼?ɤ??ڤ??ؤ????ޤ????⡼???ֹ??ϰ? ???Υޥ????Ǽ??????ޤ???

?ޥ????ֹ?
?⡼??
?????ե??٥åȥ⡼??
?Ѵ????ϥ⡼??
???????ϥ⡼??
???ѤҤ餬?ʳ??????ϥ⡼??
???ѥ??????ʳ??????ϥ⡼??
Ⱦ?ѥ??????ʳ??????ϥ⡼??
???ѥ????ե??٥åȳ??????ϥ⡼??
Ⱦ?ѥ????ե??٥åȳ??????ϥ⡼??
16?ʥ????????ϥ⡼??
???????ϥ⡼??
ñ????Ͽ?⡼??

???ε?ǽ?ˤ????⡼?ɤ??ѹ??????ȥ⡼??̾???Ϥ??Ȥ???¿????ɽ?????Ѳ??? ?????ޤ???ɽ?????ѹ???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 - ???ʴ????Ѵ??ν?λ??????

?ץ???????????λ?????ʤɤζ??̤Ǥ??ʴ????Ѵ??⽪λ???뤳?Ȥ????ꤷ?ޤ??? ???ʴ????Ѵ?????????λ??????????ɬ?????ν??????ԤäƲ??????????????ˤ? ???äƺ??ޤdzؽ????????Ƥ??ե?????????Ͽ?????ޤ???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, "%s0, *p);
}
}

?裳???????֤?????warning???å??????ϡ??饤?֥???????????malloc?????? ?????????ϡ?????KC_INITIALIZE??KC_FINALIZE???Ԥ??줿???˳????????ޤ??? ???ץꥱ?????????ץ??????ޤ???????free???ƤϤ????ޤ?????

warning?Ϻ??ΤȤ???????64???å??????˸??ꤵ???ޤ????????ʾ??Υ??å??? ?????ڼΤƤ????ޤ???

???å??????˴ޤޤ?????ǽ???Τ???warning?ˤϼ??Τ??Τ??????ޤ???

??
???񤬥????ޥ????ȤǤ??ʤ???

?裳?????Ȥ???NULL?????ꤷ?????硤warning???å??????ϼΤƤ????ޤ???

(5)
KC_SETUNDEFKEYFUNCTION - ̤???????????Ф??뵡ǽ??????

?ɤߤ????Ϥ??Ƥ??????֤?C-t???Ǥä??Ȥ??Τ褦??̤?????????????Ϥ????? ?˼????????????????ꤷ?ޤ???̤???????????б????ƹԤ??????????Ȥ??Ƥϰ? ???ν??????????ޤ???

?ޥ???̾
????
?ӡ???
???ץꥱ?????????ץ??????????Ϥ?
???ꤷ???ץꥱ?????????ץ??????????Ϥ?
?õ???ץꥱ?????????ץ??????????Ϥ?

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;

????

???????٥??Ȥ????ꤷ?ޤ???
?Ѵ?????????ʸ???????֤????ޤ???
?Хåե???Ĺ???????ꤷ?ޤ???
?????????ܥ????֤??ޤ???NULL?????ꤹ?뤳?Ȥ??Ǥ??ޤ???
XCompose??¤?ΤؤΥݥ??󥿤????ꤷ?ޤ???
???ʴ????Ѵ????ͻҤ??֤????ޤ???

????

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?????椵???뵡ǽ?Ȥ??Ƥϰʲ????????ޤ???

??ǽ
???ʴ????Ѵ????????????롥
???ϥ⡼?ɤ??ѹ????롥
????????ɽ???λ??????????ꤹ?롥
???ʴ????Ѵ??ν?λ??????
̤???????????Ф??뵡ǽ?????????Ԥ???
?⡼?ɾ????????ͤ?ɽ?????뤫?ɤ????????ꤹ?롥
????????ʸ?????????ꤹ?롥
????????ʸ?????????????롥
???ߤΥ⡼?ɤ??䤤???碌?롥
??³???륵???Ф????ꤹ?롥
???????ޥ????ե??????????ꤹ?롥
?????ƥ????Ȥ򥯥????????롥
?⡼??ɽ??ʸ?????κ???Ĺ???????롥

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, "%s0, *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?????Фˤƥ⡼ ???ֹ??????ꤹ?뤳?Ȥˤ??????ܸ??⡼?ɤ??ڤ??ؤ????ޤ????⡼???ֹ??ϰ? ???Υޥ????Ǽ??????ޤ???

?ޥ????ֹ?
?⡼??
?????ե??٥åȥ⡼??
?Ѵ????ϥ⡼??
???????ϥ⡼??
???ѤҤ餬?ʳ??????ϥ⡼??
???ѥ??????ʳ??????ϥ⡼??
Ⱦ?ѥ??????ʳ??????ϥ⡼??
???ѥ????ե??٥åȳ??????ϥ⡼??
Ⱦ?ѥ????ե??٥åȳ??????ϥ⡼??
16?ʥ????????ϥ⡼??
???????ϥ⡼??
ñ????Ͽ?⡼??

???ε?ǽ?ˤ????⡼?ɤ??ѹ??????ȥ⡼??̾???Ϥ??Ȥ???¿????ɽ?????Ѳ??? ?????ޤ???ɽ?????ѹ???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 - ???ʴ????Ѵ??ν?λ??????

?ץ???????????λ?????ʤɤζ??̤Ǥ??ʴ????Ѵ??⽪λ???뤳?Ȥ????ꤷ?ޤ??? ???ʴ????Ѵ?????????λ??????????ɬ?????ν??????ԤäƲ??????????????ˤ? ???äƺ??ޤdzؽ????????Ƥ??ե?????????Ͽ?????ޤ???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, "%s0, *p);
}
}

??4???????֤?????warning???å??????ϡ??饤?֥???????????malloc?????? ?????????ϡ?????KC_INITIALIZE??KC_FINALIZE???Ԥ??줿???˳????????ޤ??? ???ץꥱ?????????ץ??????ޤ???????free???ƤϤ????ޤ?????

warning?Ϻ??ΤȤ???????64???å??????˸??ꤵ???ޤ????????ʾ??Υ??å??? ?????ڼΤƤ????ޤ???

???å??????˴ޤޤ?????ǽ???Τ???warning?ˤϼ??Τ??Τ??????ޤ???

??
???񤬥????ޥ????ȤǤ??ʤ???

??4?????Ȥ???NULL?????ꤷ?????硤warning???å??????ϼΤƤ????ޤ???

(5)
KC_SETUNDEFKEYFUNCTION - ̤???????????Ф??뵡ǽ??????

?ɤߤ????Ϥ??Ƥ??????֤?C-t???Ǥä??Ȥ??Τ褦??̤?????????????Ϥ????? ?˼????????????????ꤷ?ޤ???̤???????????б????ƹԤ??????????Ȥ??Ƥϰ? ???ν??????????ޤ???

?ޥ???̾
????
?ӡ???
???ץꥱ?????????ץ??????????Ϥ?
???ꤷ???ץꥱ?????????ץ??????????Ϥ?
?õ???ץꥱ?????????ץ??????????Ϥ?

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);
.....

4 April 1991