Win32 API 日本語リファレンス
ホームUI.Input.Ime › IImePad

IImePad

COM
IID5d8e643a-c3a9-11d1-afef-00805f0c8b6d継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

IImePad インターフェイスは、IImePadApplet インターフェイスを実装する IMEPadApplet からアプリにテキストを挿入します。

メソッド 1

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 3 HRESULT Request(IImePadApplet* pIImePadApplet, INT reqId, WPARAM wParam, LPARAM lParam)

アプリにテキストを挿入するために IImePadApplet から呼び出されます。

pIImePadAppletIImePadApplet*in呼び出し元アプレットのインターフェイスポインター。
reqIdINTin

リクエストの種類 (リクエスト ID)。次のいずれかの値を設定する必要があります:

Value Meaning
IMEPADREQ_INSERTSTRING
文字列をコンポジション文字列としてアプリに挿入します。
  • wParam: アプリに挿入する NULL 終端文字列 (LPWSTR) へのポインター。
  • lParam: 使用しません。0 を設定する必要があります。
IMEPADREQ_SENDCONTROL
アプリ内の文字列のコンポジションとキャレットを制御します。
  • wParam: IME にコンポジション文字列とキャレット位置の処理を要求する制御値 (IMEPADCTRL_*) を指定します。IMEPADCTRL_* の値の一覧については「解説」を参照してください。
  • lParam: 使用しません。0 を設定する必要があります。
IMEPADREQ_SETAPPLETSIZE
新しいアプレットウィンドウのサイズを設定します。
  • wParam: LOWORD(wParam) はアプレットの幅を指定します。HIWORD(wParam) はアプレットの高さを指定します。
  • lParam: 使用しません。0 を設定する必要があります。
IMEPADREQ_GETCOMPOSITIONSTRING
現在のコンポジション文字列のテキストを取得します。
  • wParam: 現在のコンポジション文字列のテキストを受け取るバッファー (LPWSTR) を指します。
  • lParam: 終端の null 文字を含む、コピーする最大文字数。
IMEPADREQ_GETCOMPOSITIONSTRINGINFO
現在のコンポジション文字列に関する情報を取得します。
  • wParam: コンポジション情報を受け取る IMECOMPOSITIONSTRINGINFO 構造体へのポインター。
  • lParam: 使用しません。0 を設定する必要があります。
IMEPADREQ_DELETESTRING
コンポジション文字列を削除します。
  • wParam: LOWORD(wParam) は削除するコンポジション文字列の開始位置を指定します。 HIWORD(wParam) は削除するコンポジション文字列の長さを指定します。
  • lParam: 使用しません。0 を設定する必要があります。
IMEPADREQ_CHANGESTRING
コンポジション文字列の一部を置換します。
  • wParam: 置換文字列 (LPWSTR) へのポインター。
  • lParam: LOWORD(lParam) は置換するコンポジション文字列の開始位置を指定します。 HIWORD(lParam) は置換するコンポジション文字列の長さを指定します。
IMEPADREQ_GETAPPLHWND
アプリケーションウィンドウのハンドルを取得します。
  • wParam: アプリケーションウィンドウのハンドルを受け取る HWND ハンドルのアドレス (HWND *)。
  • lParam: 使用しません。0 を設定する必要があります。
IMEPADREQ_FORCEIMEPADWINDOWSHOW
ImePad ウィンドウを表示したままにします。
  • wParam: IMEPad ウィンドウを表示したままにするには TRUE を指定します。
  • lParam: 使用しません。0 を設定する必要があります。
IMEPADREQ_POSTMODALNOTIFY
IImePad が、特定の通知 ID とユーザー定義データを指定して、アプレットの Notify メソッドを非同期に呼び出すようにします。
  • wParam: 通知コード (IMEPN_*)。使用できる IMEPN_* コードについては、IImePadApplet::Notify の「解説」を参照してください。
  • lParam: ユーザー定義データ
IMEPADREQ_GETDEFAULTUILANGID
推奨される (既定の) ImePad アプレット UI 言語を取得します。
  • wParam: 既定の UI 言語を受け取る言語 ID (LANGID *) のアドレス。
  • lParam: 使用しません。0 を設定する必要があります。
IMEPADREQ_GETCURRENTUILANG
現在の ImePad アプレット UI 言語を取得します。
  • wParam: 現在の UI 言語を受け取る言語 ID (LANGID *) のアドレス。
  • lParam: 使用しません。0 を設定する必要があります。
IMEPADREQ_GETAPPLETUISTYLE
アプレットの UI スタイル (IPAWS_* フラグ) を取得します。
  • wParam: アプレットの UI スタイルを受け取るアドレス (DWORD *)。スタイルは IPAWS_* フラグの組み合わせです。使用できる IPAWS_* フラグについては「解説」を参照してください。
  • lParam: 使用しません。0 を設定する必要があります。
IMEPADREQ_SETAPPLETUISTYLE
アプレットの UI スタイル (IPAWS_* フラグ) を設定します。
  • wParam: アプレットの UI スタイル。スタイルは IPAWS_* フラグの組み合わせです。使用できる IPAWS_* フラグについては「解説」を参照してください。
  • lParam: 使用しません。0 を設定する必要があります。
IMEPADREQ_ISAPPLETACTIVE
アプレットがアクティブかどうかを判定します。
  • wParam: 値を受け取るアドレス (BOOL *)。TRUE の場合、アプレットはアクティブです。それ以外の場合、アプレットはアクティブではありません。
  • lParam: 使用しません。0 を設定する必要があります。
IMEPADREQ_ISIMEPADWINDOWVISIBLE
ImePad が表示されているかどうかを判定します。
  • wParam: 値を受け取るアドレス (BOOL *)。TRUE の場合、ImePad は表示されています。それ以外の場合、ImePad は表示されていません。
  • lParam: 使用しません。0 を設定する必要があります。
IMEPADREQ_SETAPPLETMINMAXSIZE
アプレットの最小サイズと最大サイズを設定します。
  • wParam: LOWORD(wParam) はアプレットの幅を指定します。 HIWORD(wParam) はアプレットの高さを指定します。
  • lParam: TRUE は最大サイズを設定し、FALSE は最小サイズを設定します。
IMEPADREQ_GETCONVERSIONSTATUS
現在のアプリケーションの IME の変換状態を取得します。変換モードと文モードの完全な一覧については、ヘッダーファイル Imm.h を参照してください。
  • wParam: 変換モードを受け取るアドレス (DWORD *)。
  • lParam: 文モードを受け取るアドレス (DWORD *)。
IMEPADREQ_GETVERSION
IImePad のバージョン情報を取得します。
  • wParam: メジャーバージョンを受け取るアドレス (DWORD *)。
  • lParam: マイナーバージョンを受け取るアドレス (DWORD *)。
IMEPADREQ_GETCURRENTIMEINFO
ImePad を呼び出した IME の情報を取得します。
  • wParam: IME の言語 ID を受け取るアドレス (DWORD *)。
  • lParam: IME の入力 ID を受け取るアドレス (DWORD *)。
wParamWPARAMinreqId に固有の追加情報。
lParamLPARAMinreqId に固有の追加情報。

戻り値

成功した場合は S_OK、それ以外の場合は E_FAIL

解説(Remarks)

使用できる IMEPADCTRL_* の値

reqIdIMEPADREQ_SENDCONTROL を設定した場合に wParam が取り得る値は次のとおりです:
Name Value Description
IMEPADCTRL_CONVERTALL 1 すべてのコンポジション文字列を変換します。
IMEPADCTRL_DETERMINALL 2 すべてのコンポジション文字列を確定します。
IMEPADCTRL_DETERMINCHAR 3 指定した数のコンポジション文字列の文字を確定します。
IMEPADCTRL_CLEARALL 4 すべてのコンポジション文字列をクリアします。
IMEPADCTRL_CARETLEFT 6 文字キャレットを左へ移動します。
IMEPADCTRL_CARETRIGHT 7 文字キャレットを右へ移動します。
IMEPADCTRL_CARETTOP 8 文字キャレットをコンポジション文字列の先頭へ移動します。
IMEPADCTRL_CARETBOTTOM 9 文字キャレットをコンポジション文字列の末尾へ移動します。
IMEPADCTRL_CARETBACKSPACE 10 キャレットの前にあるコンポジション文字列の文字を削除します (BACKSPACE キーと同様)。
IMEPADCTRL_CARETDELETE 11 キャレットの後ろにあるコンポジション文字列の文字を削除します (DELETE キーと同様)。
IMEPADCTRL_PHRASEDELETE 12 コンポジション文字列の文節を削除します。
IMEPADCTRL_INSERTSPACE 13 空白文字を挿入します。IME の構成に応じて全角または半角になります。
IMEPADCTRL_INSERTFULLSPACE 14 全角スペースを挿入します。
IMEPADCTRL_INSERTHALFSPACE 15 半角スペースを挿入します。
IMEPADCTRL_ONIME 16 IME をオンにします。
IMEPADCTRL_OFFIME 17 IME をオフにします。
IMEPADCTRL_ONPRECONVERSION 18 事前変換をオンにします。
IMEPADCTRL_OFFPRECONVERSION 19 事前変換をオフにします。
IMEPADCTRL_PHONETICCANDIDATE 20 IME の候補を開きます。

使用できる IPAWS_* の値

reqIdIMEPADREQ_GETAPPLETUISTYLE を設定した場合に wParam を通じて受け取ることができる値、または reqIdIMEPADREQ_SETAPPLETUISTYLE を設定した場合に wParam に設定できる値は次のとおりです:
Name Description
IPAWS_ENABLED アプレットを有効なウィンドウとして表示します。
IPAWS_SIZINGNOTIFY IMEPN_SIZECHANGING または IMEPN_SIZECHANGED 通知コードをアプレットに送信します。
IPAWS_VERTICALFIXED 垂直方向に固定されています。
IPAWS_HORIZONTALFIXED 水平方向に固定されています。
IPAWS_SIZEFIXED サイズが固定されています。
IPAWS_MAXWIDTHFIXED 最大幅が固定されています。
IPAWS_MAXHEIGHTFIXED 最大高さが固定されています。
IPAWS_MAXSIZEFIXED 最大サイズが固定されています。
IPAWS_MINWIDTHFIXED 最小幅が固定されています。
IPAWS_MINHEIGHTFIXED 最小高さが固定されています。
IPAWS_MINSIZEFIXED 最小サイズが固定されています。
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

#define global IID_IImePad "{5D8E643A-C3A9-11D1-AFEF-00805F0C8B6D}"
#usecom global IImePad IID_IImePad "{}"
#comfunc global IImePad_Request  3 sptr,int,sptr,sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。