<Return[I]><Top>

ImmSetCompositionString

Declare Function Api_ImmSetCompositionString& Lib "imm32" Alias "ImmSetCompositionStringA" (ByVal hIMC&, ByVal dwIndex&, lpComp As Any, ByVal dwCompLen&, lpRead As Any, ByVal dwReadLen&)

Declare Function ImmSetCompositionString Lib "imm32" Alias "ImmSetCompositionStringA" (ByVal hIMC As Long, ByVal dwIndex As Long, lpComp As Any, ByVal dwCompLen As Long, lpRead As Any, ByVal dwReadLen As Long) As Long

変換文字列および読み文字列の文字、属性、または文節を設定する。

パラメータ
hIMC
    入力コンテキストのハンドルを指定する。
dwIndex
    設定する情報の種類を指定する。次のいずれかの値を指定できる。

    値                                                    

意味                                                                                                                    

    SCS_SETSTR

 

 

 

変換文字列か読み文字列のいずれか、またはその両方を設定する。この値を指定する場合は、パラメータ lpComp と lpRead の少なくともどちらか一方に有効な文字列へのポインタを指定しなければならない。これらのパラメータに指定した文字列が長すぎた場合は、長すぎる部分が IME によって切り捨てられる。

    SCS_CHANGEATTR

 

 

変換文字列か読み文字列のいずれか、またはその両方の属性を設定する。この値を指定する場合は、パラメータ lpComp と lpRead の少なくともどちらか一方に有効な属性配列へのポインタを指定しなければならない。

    SCS_CHANGECLAUSE

 

変換文字列か読み文字列のいずれか、またはその両方の文節情報を設定する。この値を指定する場合は、パラメータ lpComp と lpRead の少なくともどちらか一方に有効な文節情報配列へのポインタを指定しなければならない。

    SCS_SETRECONVERTSTRING

Windows 98 および Windows 2000:IME に 構造体に格納された文字列を逆変換するよう指示する。

    SCS_QUERYRECONVERTSTRING

 

 

 

Windows 98 および Windows 2000:IME に RECONVERTSTRING 構造体を調整するよう指示する。前もってこれを行えば、SCS_SETRECONVERTSTRING を指定してこの関数を呼び出し、調整済みの RECONVERTSTRING 構造体を渡すことができるようになる。この値を指定した場合、IME は WM_IME_COMPOSITION メッセージを生成しない。

lpComp
    変換文字列に対して設定する情報を格納したバッファへのポインタを指定する。このパラメータに渡す情報の種類は、dwIndex パラメータで

    指定する。
dwCompLen
    変換文字列用の情報バッファのサイズ(バイト単位)を指定する。
lpRead
    読み文字列に対して設定する情報を格納したバッファへのポインタを指定する。このパラメータに渡す情報の種類は、dwIndex パラメータで

    指定する。
dwReadLen
    読み文字列用の情報バッファのサイズ(バイト単位)を指定する。

戻り値
    関数が成功すると、0 以外の値が返る。
    関数が失敗すると、0 が返る。

解説
    属性を変更する場合、同一文節内の文字はすべて同じ属性にしなければならない。変換済み文字の属性は、ATTR_CONVERTED ま

    たは ATTR_TARGET_CONVERTED、未変換文字の属性は ATTR_INPUT または ATTR_TARGET_NOTCONVERTED になる。
    文節情報を変更する場合、変更できるのは対象文節(文節カーソルが位置する文節)だけで、1 度に 1 つの境界位置しか変更できない。

    対象文節の属性は、ATTR_TARGET_CONVERTED または ATTR_TARGET_NOTCONVERTED になる。
    IME は、指定された変更を完了したら、アプリケーションに WM_IME_COMPOSITION メッセージを送信して変更が完了したことを知らせ

    る。
    Windows 98 および Windows 2000:SCS_*CONVERTSTRING という値を使って再変換を行うことができる。この値は、

    SCS_CAP_SETRECONVERTSTRING プロパティを持つ IME にしか使えない。この値を使う場合は、まず、

    SCS_QUERYRECONVERTSTRING を指定して ImmSetCompositionString 関数を呼び出し、再変換が可能になるように IME に

    RECONVERTSTRING 構造体を調整させる。次に、SCS_SETRECONVERTSTRING を指定して ImmSetCompositionString 関数を

    呼び出し、IME に新しい変換文字列を生成させる。以上を行うと、パラメータ lpComp と lpRead のポインタは、更新後の変換文字列と読

    み文字列を格納した RECONVERTSTRING 構造体を指している。lpRead パラメータが使えるのは、選択している IME で

    SCS_CAP_MAKEREAD がセットされている場合だけである。lpRead パラメータには NULL を指定してもかまわない。