 |
■ATOK技術情報
<ATOK12/ATOK11/ATOK10 for Windows アプリケーションプログラムインターフェース仕様書>
4.付録
4−1.ATOKComposition取得関数
AT_ImmGetAtCompositionPacket ;ATOKCompositionパケットの取得
AT_ImmGetAtCompositionPacketはImmGetCompositionのUnicode対応版として提供されている。ImmGetCompositionはCompositionの要素ごとに取得する仕様であるのに対しAT_ImmGetAtCompositionPacketCompositionは要素全体を一括取得する。
ATOKの場合、この関数を使用することで、Windows95上でもUnicode文字列を取得することができる。
4−2.ATOK Composition構造体定義
//構造体バッファサイズ定義
| #define ATRESULTSTRCTR_MAX |
100 |
// 確定文字列表記数Max |
| #define ATRESULTREADCTR_MAX |
100 |
// 確定文字列読み数Max |
| #define ATRESULTCLAUSECTR_MAX |
100 |
// 確定文字列文節数Max |
| #define ATCOMPOSITIONSTRCTR_MAX |
100 |
// 未確定文字列表記数Max |
| #define ATCOMPOSITIONREADCTR_MAX |
100 |
// 未確定文字列読み数Max |
| #define ATCOMPOSITIONCLAUSECTR_MAX |
100 |
// 未確定文字列文節数Max |
| #define ATRSLTSTRB_MAX |
128 |
|
| #define ATRSLTREADB_MAX |
128 |
|
| #define ATRSLTCLSB_MAX |
128 |
|
| #define ATCOMPSTRB_MAX |
128 |
|
| #define ATCOMPREADB_MAX |
128 |
|
| #define ATCOMPCLSB_MAX |
128 |
|
//AtChangeMode(文字列更新情報)構成要素
| #define ATGCS_COMPREADSTR |
GCS_COMPREADSTR |
// 未確定文字列読み更新 |
| #define ATGCS_COMPREADATTR |
GCS_COMPREADATTR |
// 未確定文字列属性更新 |
| #define ATGCS_COMPREADCLAUSE |
GCS_COMPREADCLAUSE |
// 未確定文字列文節区切更新 |
| #define ATGCS_COMPSTR |
GCS_COMPSTR |
// 未確定文字列表記更新 |
| #define ATGCS_COMPATTR |
GCS_COMPATTR |
// 未確定文字列属性更新 |
| #define ATGCS_COMPCLAUSE |
GCS_COMPCLAUSE |
// 未確定文字列文節区切更新 |
| #define ATGCS_CURSORPOS |
GCS_CURSORPOS |
// 未確定文字列カーソル位置更新 |
| #define ATGCS_DELTASTART |
GCS_DELTASTART |
// 未確定文字列表示変更位置更新 |
| #define ATGCS_RESULTREADSTR |
GCS_RESULTREADSTR |
// 確定文字列読み更新 |
| #define ATGCS_RESULTREADCLAUSE |
GCS_RESULTREADCLAUSE |
// 確定文字列文節区切り更新 |
| #define ATGCS_RESULTSTR |
GCS_RESULTSTR |
// 確定文字列表記更新 |
| #define ATGCS_RESULTCLAUSE |
GCS_RESULTCLAUSE |
// 確定文字列文節区切り更新 |
//AtCompositionStrAttr(未確定文字列表記属性)構成要素
//他社IMEの場合、ATCOLINDX_INPUTKOTEI〜は返りません
//カーソル色は返りません(デフォルト)
| #define ATCOLINDX_INPUT |
0x00 |
// 変換可能入力文字色 |
| #define ATCOLINDX_TARGETCONVERT |
0x01 |
// 変換文字色 |
| #define ATCOLINDX_CONVERTED |
0x02 |
// 変換済み注目文節色 |
| #define ATCOLINDX_TARGETNOTCONVERTED |
0x03 |
// 未変換注目文節色 |
| #define ATCOLINDX_INPUT_ERROR |
0x04 |
// 入力文字エラー色 |
| #define ATCOLINDX_INPUTKOTEI |
0x06 |
// 固定入力文字色 |
| #define ATCOLINDX_TARGETNOTCONVERTEDKOTEI |
0x08 |
// 固定入力文節色 |
| #define ATCOLINDX_TARGETCOMMENT |
0x09 |
// 注目文節コメント色 |
| #define ATCOLINDX_COMMENT |
0x0a |
// 文節コメント色 |
//AtResultPrvFaceNameFlg(確定文字フォント書体指定有無)構成要素
//他社IMEの場合、常にATRESULTPRVFONT_FALSE
| #define ATRESULTPRVFONT_FALSE |
0 |
// 無し |
| #define ATRESULTPRVFONT_TRUE |
1 |
// 有り |
//ATOKCOMPOSITIONPACK構造体
| typedef struct{ |
| int |
AtChangeMode |
;// 文字列更新情報 |
| int |
AtCompositionStrCtr |
;// 未確定文字列表記数 |
| int |
AtCompositionStrClsCtr |
;// 未確定文字列表記文節数 |
| int |
AtCompositionReadCtr |
;// 未確定文字列読み数 |
| int |
AtCompositionReadClsCtr |
;// 未確定文字列読み文節数 |
| int |
AtCompositionCursorPos |
;// 未確定文字列カーソル位置 |
| int |
AtCompositionDeltaStart |
;// 未確定文字列変更位置 |
| int |
AtResultStrCtr |
;// 確定文字列表記数 |
| int |
AtResultReadCtr |
;// 確定文字列読み数 |
| int |
AtResultStrClsCtr |
;// 確定文字列表記文節数 |
| int |
AtResultReadClsCtr |
;// 確定文字列読み文節数 |
| int |
AtResultPrvFaceNameFlg |
;// 確定文字フォント書体指定有無 |
| int |
AtReserveAreaA[64-12] |
;// リザーブ |
| | | |
| WCHAR |
AtCompositionStr[ATCOMPSTRB_MAX] |
;// 未確定文字列表記バッファ |
| WORD |
AtCompositionStrAttr[ATCOMPSTRB_MAX] |
;// 未確定文字列表記属性バッファ |
| DWORD |
AtCompositionStrCls[ATCOMPCLSB_MAX] |
;// 未確定文字列表記文節バッファ |
| WCHAR |
AtCompositionRead[ATCOMPREADB_MAX] |
;// 未確定文字列読みバッファ |
| WORD |
AtCompositionReadAttr[ATCOMPREADB_MAX] |
;// 未確定文字列読み属性バッファ |
| DWORD |
AtCompositionReadCls[ATCOMPCLSB_MAX] |
;// 未確定文字列読み文節バッファ |
| | | |
| WCHAR |
AtResultStr[ATRSLTSTRB_MAX] |
;// 確定文字列表記バッファ |
| DWORD |
AtResultStrCls[ATRSLTCLSB_MAX] |
;// 確定文字列表記文節バッファ |
| WCHAR |
AtResultRead[ATRSLTREADB_MAX] |
;// 確定文字列読みバッファ |
| DWORD |
AtResultReadCls[ATRSLTCLSB_MAX] |
;// 確定文字列読み文節バッファ |
| | | |
| WORD |
AtReserveAreaC[ATRSLTCLSB_MAX] |
;// リザーブ |
| WCHAR |
AtResultPrvFaceName[LF_FACESIZE] |
;// 確定文字フォント書体名 |
| | | |
| BYTE |
AtReserveAreaB[1024-64] |
;// リザーブ |
| } ATOKCOMPOSITIONPACK, *PATOKCOMPOSITIONPACK, *LPATOKCOMPOSITIONPACK; |
4−3.未確定文字表示色構造体定義
#define ATIMECOMPCOL_ITEMMAX 16 // 未確定文字表示項目数
// 項目は後述のAtCompositionStrAttrに従い
// ATOK以外のIMEではATCOLINDX_INPUTKOTEI〜は
// 使用しません
typedef struct{ // 表示色アトリビュート構造体
COLORREF rgbBack; // 背景色
COLORREF rgbText; // 文字色
BOOL fUnderLine; // 下線表示有無
} ATIMECOL_STRC;
typedef struct{
ATIMECOL_STRC ATIMECompCol[ATIMECOMPCOL_ITEMMAX];
} ATIMECOMPCOL_TBL, *PATIMECOMPCOL_TBL, *LPATIMECOMPCOL_TBL;
|
4−4.ATOK 辞書設定用構造体定義
//辞書セット番号
| #define ATDICNO_1 |
0 |
// 辞書セット番号:辞書1 |
| #define ATDICNO_2 |
1 |
// 辞書セット番号:辞書2 |
| #define ATDICNO_3 |
2 |
// 辞書セット番号:辞書3 |
| #define ATDICNO_4 |
3 |
// 辞書セット番号:辞書4 |
| #define ATDICNO_5 |
4 |
// 辞書セット番号:辞書5 |
| #define ATDICNO_6 |
5 |
// 辞書セット番号:辞書6 |
| #define ATDICNO_7 |
6 |
// 辞書セット番号:辞書7 |
| #define ATDICNO_8 |
7 |
// 辞書セット番号:辞書8 |
| #define ATDICNO_9 |
8 |
// 辞書セット番号:辞書9 |
| #define ATDICNO_0 |
9 |
// 辞書セット番号:辞書0 |
| | | |
| #define ATASSISTDICMAX |
4 |
// 補助辞書数Max |
| #define ATDICFILENAME_MAX |
(256+2) |
// 辞書ファイル名バイト数Max |
| #define ATDICFILESETNICKNAME_MAX |
(80+1) |
// 辞書セット名文字数Max |
// 辞書ファイル設定構造体
| typedef struct tagATDICFILENAMESET { |
| UCHAR *pszUserDicName; |
// ユーザ辞書ファイルパス |
UCHAR *pszSystemDicName; |
// システム辞書ファイルパス |
| UCHAR *pszAssistDicName[ATASSISTDICMAX]; |
// 補助辞書ファイルパス |
| } ATDICFILENAMESET; |
4−5.辞書エラー種類一覧
| enum ATAppError { |
| ATREG_ERROR_RECORD_FULL = 1, |
// 同じ読みの単語がいっぱい |
| ATREG_ERROR_YOMI_FULL, |
// この読みではこれ以上登録できない |
| ATREG_ERROR_FILE_FULL, |
// これ以上登録できない |
| ATREG_ERROR_ABORT, |
// 辞書が正しく設定されていないので登録を中止 |
| ATREG_ERROR_HYOKI_ERROR, |
// 単語に不適切な文字が含まれている |
| ATREG_ERROR_CANT_APPEND, |
// 登録できなかった |
| ATREG_ERROR_YOMI_OVER, |
// 読みが長すぎる |
| ATREG_ERROR_YOMI_ERROR, |
// 読みに不適切な文字が含まれている |
| ATREG_ERROR_APPEND_NOW, |
// すでに登録されている |
| ATREG_ERROR_YOMI_TOP, |
// 読みの先頭文字が不適切 |
| }; |
4−6.ATOKマウスイベント処理関係定義
// イベントは(ボタン状態+キーボードシフト状態)で定義される
| // 左ボタン状態 |
| #define ATMSE_LDOWN |
0x0001 |
// 押す |
| #define ATMSE_LUP |
0x0002 |
// 離す |
| #define ATMSE_LDBLCLK |
0x0003 |
// ダブルクリック |
| #define ATMSE_LDRAG |
0x0004 |
// ドラッグ |
| // 右ボタン状態 |
| #define ATMSE_RDOWN |
0x0011 |
// 押す |
| #define ATMSE_RUP |
0x0012 |
// 離す |
| #define ATMSE_RDBLCLK |
0x0013 |
// ダブルクリック |
| #define ATMSE_RDRAG |
0x0014 |
// ドラッグ
|
| // 中央ボタン状態 |
| #define ATMSE_MDOWN |
0x0021 |
// 押す |
| #define ATMSE_MUP |
0x0022 |
// 離す |
| #define ATMSE_MDBLCLK |
0x0023 |
// ダブルクリック |
| #define ATMSE_MDRAG |
0x0024 |
// ドラッグ |
| // キーボードシフト状態 |
| #define ATMSE_KEYSHIFT |
0x0100 |
// SHIFTキー同時押下 |
| #define ATMSE_KEYCTRL |
0x0200 |
// CTRLキー同時押下 |
| // 文字位置詳細 |
| #define ATMSP_FCHAR |
0x0000 |
// 文字位置前半 |
| #define ATMSP_BCHAR |
0x0001 |
// 文字位置後半 |
4−7.ATOK機能キー番号定義
| #define ATKEY_AMET01 |
0x91 |
// AMET1起動 |
| #define ATKEY_AMET02 |
0x92 |
// AMET2起動 |
| #define ATKEY_AMET03 |
0x93 |
// AMET3起動 |
| #define ATKEY_AMET04 |
0x94 |
// AMET4起動 |
| #define ATKEY_AMET05 |
0x95 |
// AMET5起動 |
| #define ATKEY_AMET06 |
0x96 |
// AMET6起動 |
| #define ATKEY_AMET07 |
0x97 |
// AMET7起動 |
| #define ATKEY_AMET08 |
0x98 |
// AMET8起動 |
| #define ATKEY_AMET09 |
0x99 |
// AMET9起動 |
| #define ATKEY_AMET10 |
0x9a |
// AMET0起動 |
| #define ATKEY_HELP |
0xb0 |
// ヘルプ起動 |
| #define ATKEY_PROPERTY |
0xb2 |
// プロパティ起動 |
| #define ATKEY_DICUT |
0xb3 |
// 辞書ユーティリティ起動 |
| #define ATKEY_CHARPALLET |
0xb4 |
// 文字パレット起動 |
| #define ATKEY_CLICKPALLET |
0xb6 |
// クリックパレット起動 |
| #define ATKEY_RESULTPALLET |
0xb7 |
// 文字列ボックス起動 |
4−8.単語登録品詞取得用構造体定義
typedef struct tagATREGSTYLEBUF {
DWORD dwStyle; // 品詞番号
WCHAR szDescription[STYLE_DESCRIPTION_SIZE]; // 品詞名称
} ATREGSTYLEBUF, *PATREGSTYLEBUF, *LPATREGSTYLEBUF;
|
4−9.品詞名一覧
| 品詞名 |
品詞の説明 |
例 |
| 名詞 |
物や物の状態に付ける一般的な名詞 |
花、鳥 |
| 固有人姓 |
人の姓に付ける固有の名詞 |
後藤、村井 |
| 固有人名 |
人の名に付ける固有の名詞 |
和之、友子 |
| 固有人他 |
外国人名など、固有人姓・固有人名以外に付ける固有の名詞 |
ガリバー、アリス |
| 固有地名 |
場所に付ける固有の名詞 |
徳島市、シドニー |
| 固有組織 |
組織に付ける固有の名詞 |
ジャストシステム |
| 固有商品 |
商品に付ける固有の名詞 |
一太郎、ATOK |
| 固有一般 |
人名・場所・組織・商品以外に付ける固有の名詞 |
天の川、ペガサス |
| 名詞サ変 |
後にサ変動詞「する」を付けることができる名詞 |
演出-する、援助-する |
| 名詞ザ変 |
後にザ変動詞「ずる」を付けることができる名詞 |
念-ずる、命-ずる |
| 名詞形動 |
物事の姿・状態・性質などを表し、後ろに「だ」・「な」を付けることができる名詞 |
画期的-だ(な)、大切-だ(な) |
| 名サ形動 |
名詞・サ変・形容動詞の要素を持っており、後ろに「する」・「な」を付けることができる名詞 |
満足-する(な)、いたずら-する(な) |
| 数詞 |
数量・順序などを数えて示すことば |
1、壱 |
| 副詞 |
主に用言(動詞・形容詞・形容動詞)を修飾することば |
たいへん、ゆっくり |
| 連体詞 |
活用がなく、体言だけを修飾することば |
あの、この |
| 接続詞 |
語句を続けるために使うことば |
そして、しかし |
| 感動詞 |
感動・応答・呼びかけなどを表すことば |
ありがとう、やあ |
| 独立語 |
助詞・助動詞が付かず他のことばとつながりを持たないことば |
敬具、かしこ |
| 接頭語 |
他のことばの前に付けて使うことば |
御、ご、無 |
| 冠数詞 |
数字の前に付けて使うことば |
第、午前 |
| 接尾語 |
他のことばの後に付けて使うことば |
後、様 |
| 助数詞 |
数字に付けて種類や単位を表すことば |
週、グラム |
| カ行五段 |
カ行の五段活用する動詞 |
書く、動く |
| ガ行五段 |
ガ行の五段活用する動詞 |
急ぐ、泳ぐ |
| サ行五段 |
サ行の五段活用する動詞 |
示す、消す |
| タ行五段 |
タ行の五段活用する動詞 |
立つ、勝つ |
| ナ行五段 |
ナ行の五段活用する動詞 |
死ぬ |
| バ行五段 |
バ行の五段活用する動詞 |
飛ぶ、遊ぶ |
| マ行五段 |
マ行の五段活用する動詞 |
生む、読む |
| ラ行五段 |
ラ行の五段活用する動詞 |
売る、走る |
| ワ行五段 |
ワ行の五段活用する動詞 |
会う、笑う |
| ハ行四段 |
ハ行の四段活用する動詞 |
言ふ、笑ふ |
| 一段動詞 |
上一段、下一段活用する動詞 |
着る、始める |
| カ変動詞 |
カ行変格活用する動詞 |
来る |
| サ変動詞 |
サ行変格活用する動詞 |
熱する、察する |
| ザ変動詞 |
ザ行変格活用する動詞 |
軽んずる、甘んずる |
| 形容詞 |
物事の性質・状態を表し、言い切るときの形が「い」で終わることば |
美しい、広い |
| 形容詞ウ |
形容詞の中で語尾がウ音便化したときに語幹の形が変わることば |
高う、長う |
| 形容動詞 |
物事の性質・状態を表し、言い切るときの形が「だ」・「な」で終わることば |
豊かだ(な)、うららかだ(な) |
| 形動タリ |
物事の性質・状態を表し、語尾が「と」「たる」に活用することば |
燦然と(たる)、平然と(たる) |
| 単漢字 |
助詞・助動詞がつかず、ほかの品詞としての要素を持たない1文字の漢字 |
亜、以、宇 |
4−10.ATOK再変換用構造体定義
再変換用のRECONVERTSTRING構造体と同じであるが、ビルドオプションに関係なく常にUnicode文字列を想定する。(長さは文字数)
typedef struct tagATRECONVERTSTRING {
DWORD dwSize;
DWORD dwVersion;
DWORD dwStrLen;
DWORD dwStrOffset;
DWORD dwCompStrLen;
DWORD dwCompStrOffset;
DWORD dwTargetStrLen;
DWORD dwTargetStrOffset;
} ATRECONVERTSTRING, *PATRECONVERTSTRING, *LPATRECONVERTSTRING;
|
4−11.ATOK再変換用プライベートメッセージ文字列定義
|
#define MSGNAME_ATOK_RECONVERT TEXT("Atok Message for ReconvertString")
Windows98から新規に追加された再変換用のメッセージWM_IME_REQUESTに相当するものをWindows95/WindowsNT3.5以降のWindowsでも利用できるように定義したプライベートメッセージである。(メッセージIDはResisterWindowMessage(MSGNAME_ATOK_RECONVERT)により決定される。)
このため、wParam,lParamはWM_IME_REQUESTメッセージに準拠したものになる。
wParamはIMR_RECONVERTSTRING/IMR_CONFIRMRECONVERTSTRINGである。
lParamはIMR_RECONVERTSTRING/IMR_CONFIRMRECONVERTSTRINGの仕様に準拠するが、lParamに設定されるRECONVERTSTRING構造体の中身は、ビルドオプションに関係なくUnicodeを想定する。
(先のATRECONVERTSTRINGの内容と同じである。)
Windows98以前のOS上でも再変換を利用する場合には、IMEで用意される方式で実装する必要がある。
ATOKの場合、WM_IME_REQUESTで行う処理と同等のことを、このプライベートメッセージについても行えば実現できる。
|
4−12.ATOK MakeRead(Low)構造体定義
//構造体バッファサイズ定義
#define ATMAKEREADSTRCTR_MAX 500 //入力文字列数Max
#define ATMAKEREADREADCTR_MAX 500 //出力読み数Max
#define ATMAKEREADCLAUSESTR_MAX 500 //出力区切り数Max
#define ATMAKEREADREADBUF_MAX 512
#define ATMAKEREADCLSBUF_MAX 512
//区切り情報内容定義(AtMakeReadClsInfoの内容)
#define ATJIRITU_HINSI 1 //自立語起点
//ATOKMAKEREADLOW構造体
typedef struct {
int AtMakeReadReadCtr ;// 出力読み数
int AtMakeReadClsCtr ;// 出力区切り数
int AtMakeReadReserveAA[256-2] ;// リザーブ
WCHAR AtMakeReadRead[ATMAKEREADREADBUF_MAX] ;// 出力読みバッファ
DWORD AtMakeReadStrCls[ATMAKEREADCLSBUF_MAX] ;// 出力表記区切りバッファ
DWORD AtMakeReadReadCls[ATMAKEREADCLSBUF_MAX] ;// 出力読み区切りバッファ
WORD AtMakeReadClsInfo[ATMAKEREADCLSBUF_MAX] ;// 出力区切り情報バッファ
WORD AtMakeReadClsInfoEx[ATMAKEREADCLSBUF_MAX] ;// リザーブ
WORD AtMakeReadReserveXX[ATMAKEREADCLSBUF_MAX] ;// リザーブ
WORD AtMakeReadReserveYY[ATMAKEREADCLSBUF_MAX] ;// リザーブ
WORD AtMakeReadReserveZZ[ATMAKEREADCLSBUF_MAX] ;// リザーブ
} ATOKMAKEREADLOW, *PATOKMAKEREADLOW, *LPATOKMAKEREADLOW;
|
以上
前ページ│目 次
 

|