Win32 API 日本語リファレンス
ホームUI.TabletPC › IPenInputPanel

IPenInputPanel

COMIDispatch (デュアル)
IDispatch を実装(デュアルインターフェース)。HSP では comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。
IIDfa7a4083-5747-4040-a182-0b0e9fd4fac7継承元IDispatch呼び出し名前(IDispatch) または vtbl自前メソッド開始 vtbl7

公式ドキュメント

. (IPenInputPanel)

メソッド 25

vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。

vtbl 7 HRESULT get_Busy(VARIANT_BOOL* Busy)

非推奨。PenInputPanel は Text Input Panel (TIP) に置き換えられました。PenInputPanel オブジェクトが現在インク(手書き)を処理中かどうかを示す値を取得します。

BusyVARIANT_BOOL*outペン入力パネルがテキスト挿入などの処理中で取り込み中かどうかを受け取る VARIANT_BOOL へのポインタである。
vtbl 8 HRESULT get_Factoid(LPWSTR* Factoid)

非推奨。PenInputPanel は Text Input Panel (TIP) に置き換えられました。PenInputPanel オブジェクトが使用する factoid の名前文字列を取得または設定します。(Get)

FactoidLPWSTR*outパネルに設定されている現在のファクトイド(入力種別ヒント)を文字列で受け取るポインタである。

解説(Remarks)

factoid は、特定のフィールド内のインク(手書き)に対する認識エンジンのコンテキストを提供します。入力フィールドが既知の型である場合に factoid を指定します。たとえば、入力フィールドに日付が含まれる場合は Date factoid を指定します。

factoid とその使用方法の詳細については、Using Context to Improve Accuracy を参照してください。Factoid プロパティに指定できる値の一覧については、Supported Factoids from Version 1 を参照してください。

Note factoid の文字列表現では、大文字と小文字が区別されます。
このプロパティは、キーパッドやキーボードには影響しません。

WordList factoid は、PenInputPanel オブジェクトではサポートされません。

Factoid プロパティの既定値は DEFAULT です。ラテン文字の認識エンジンを使用するロケールでは、すべての factoid を使用できます。東アジア文字の認識エンジンを使用するロケールでは、次の factoid 値が関係します。

DIGIT と ONECHAR 以外のすべての factoid 値は、現在の入力ロケールに適した共通の factoid として解釈されます。

Factoid プロパティが設定されている場合、その値が認識エンジンに転送されるのは、SetInputScope 関数が併せて呼び出されていない場合のみです。

vtbl 9 HRESULT put_Factoid(LPWSTR Factoid)

非推奨。PenInputPanel は Text Input Panel (TIP) に置き換えられました。PenInputPanel オブジェクトが使用する factoid の名前文字列を取得または設定します。(Put)

FactoidLPWSTRin認識対象の入力種別を示すファクトイドを文字列で指定する。

解説(Remarks)

factoid は、特定のフィールド内のインク(手書き)に対する認識エンジンのコンテキストを提供します。入力フィールドが既知の型である場合に factoid を指定します。たとえば、入力フィールドに日付が含まれる場合は Date factoid を指定します。

factoid とその使用方法の詳細については、Using Context to Improve Accuracy を参照してください。Factoid プロパティに指定できる値の一覧については、Supported Factoids from Version 1 を参照してください。

Note factoid の文字列表現では、大文字と小文字が区別されます。
このプロパティは、キーパッドやキーボードには影響しません。

WordList factoid は、PenInputPanel オブジェクトではサポートされません。

Factoid プロパティの既定値は DEFAULT です。ラテン文字の認識エンジンを使用するロケールでは、すべての factoid を使用できます。東アジア文字の認識エンジンを使用するロケールでは、次の factoid 値が関係します。

DIGIT と ONECHAR 以外のすべての factoid 値は、現在の入力ロケールに適した共通の factoid として解釈されます。

Factoid プロパティが設定されている場合、その値が認識エンジンに転送されるのは、SetInputScope 関数が併せて呼び出されていない場合のみです。

vtbl 10 HRESULT get_AttachedEditWindow(INT* AttachedEditWindow)

非推奨。PenInputPanel は Text Input Panel (TIP) に置き換えられました。PenInputPanel オブジェクトのアタッチ先オブジェクトのウィンドウハンドルを設定または取得します。(Get)

AttachedEditWindowINT*outパネルが現在アタッチされている編集ウィンドウのハンドルを受け取るポインタである。

解説(Remarks)

オブジェクトのウィンドウハンドルは変更されることがあります。

vtbl 11 HRESULT put_AttachedEditWindow(INT AttachedEditWindow)

非推奨。PenInputPanel は Text Input Panel (TIP) に置き換えられました。PenInputPanel オブジェクトのアタッチ先オブジェクトのウィンドウハンドルを設定または取得します。(Put)

AttachedEditWindowINTinパネルをアタッチする編集ウィンドウのハンドルを指定する。

解説(Remarks)

オブジェクトのウィンドウハンドルは変更されることがあります。

vtbl 12 HRESULT get_CurrentPanel(PanelType* CurrentPanel)

非推奨。PenInputPanel は Text Input Panel (TIP) に置き換えられました。PenInputPanel オブジェクト内で入力に現在使用されているパネルの種類を取得または設定します。(IPenInputPanel.get_CurrentPanel)

CurrentPanelPanelType*out現在表示されているパネルの種類を受け取る PanelType へのポインタである。

解説(Remarks)

Note CurrentPanel プロパティに DefaultInactive を設定することはできません。設定できるのは Handwriting または Keyboard のみです。
PenInputPanel オブジェクトを作成すると、Handwriting パネル (手書きパッドとも呼ばれます) が既定の入力 UI になります。

PenInputPanel オブジェクトが初めてアクティブになる前に CurrentPanel プロパティを設定してパネルを変更すると、PanelChanged イベントが発生します。

パネルウィンドウが別の PenInputPanel オブジェクトのインスタンスに関連付けられている場合、CurrentPanelInactive 列挙値を返します。パネルが非アクティブな場合、またはパネルの種類が無効な場合、CurrentPanel プロパティを設定すると例外が発生します。

vtbl 13 HRESULT put_CurrentPanel(PanelType CurrentPanel)

非推奨。PenInputPanel は Text Input Panel (TIP) に置き換えられました。PenInputPanel オブジェクト内で入力に現在使用されているパネルの種類を取得または設定します。(IPenInputPanel.put_CurrentPanel)

CurrentPanelPanelTypein表示するパネルの種類を指定する PanelType 値である。

解説(Remarks)

Note CurrentPanel プロパティに DefaultInactive を設定することはできません。設定できるのは Handwriting または Keyboard のみです。
PenInputPanel オブジェクトを作成すると、Handwriting パネル (手書きパッドとも呼ばれます) が既定の入力 UI になります。

PenInputPanel オブジェクトが初めてアクティブになる前に CurrentPanel プロパティを設定してパネルを変更すると、PanelChanged イベントが発生します。

パネルウィンドウが別の PenInputPanel オブジェクトのインスタンスに関連付けられている場合、CurrentPanelInactive 列挙値を返します。パネルが非アクティブな場合、またはパネルの種類が無効な場合、CurrentPanel プロパティを設定すると例外が発生します。

vtbl 14 HRESULT get_DefaultPanel(PanelType* pDefaultPanel)

非推奨。PenInputPanel は Text Input Panel (TIP) に置き換えられました。PenInputPanel オブジェクト内で入力に使用される既定のパネルの種類を取得または設定します。(Get)

pDefaultPanelPanelType*out既定で表示されるパネルの種類を受け取る PanelType へのポインタである。

解説(Remarks)

Note DefaultPanel プロパティに Inactive を設定することはできません。
Handwriting パネル (手書きパッドとも呼ばれます) は、PenInputPanel の既定の入力 UI です。

このプロパティの値が Default の場合、PenInputPanel オブジェクトは、任意のアプリケーションの任意のペン入力パネルで最後に使用されたパネルの種類を使用します。アクティブなすべてのアプリケーションでペン入力パネルへの以前の参照がすべて破棄されている場合、新しい PenInputPanel オブジェクトは Handwriting パネルの種類を使用します。

PenInputPanel オブジェクトが初めてアクティブになる前に CurrentPanel プロパティを設定してパネルを変更すると、PanelChanged イベントが発生します。

DefaultPanel プロパティを設定すると、その PenInputPanel オブジェクトのインスタンスで既定として表示されるパネルの種類を指定できます。このプロパティの値が Handwriting または Keyboard の場合、パネルが表示されるたびに、それぞれ手書きパネルまたはキーボードパネルの種類が使用されます。

PenInputPanel を別のコントロールにアタッチし直し、新しいコントロールにフォーカスが移動した時点で DefaultPanel プロパティを変更する場合は、正しいパネルが表示されるように、AttachedEditWindow プロパティを設定する前に DefaultPanel プロパティを設定してください。

vtbl 15 HRESULT put_DefaultPanel(PanelType DefaultPanel)

非推奨。PenInputPanel は Text Input Panel (TIP) に置き換えられました。PenInputPanel オブジェクト内で入力に使用される既定のパネルの種類を取得または設定します。(Put)

DefaultPanelPanelTypein既定で表示するパネルの種類を指定する PanelType 値である。

解説(Remarks)

Note DefaultPanel プロパティに Inactive を設定することはできません。
Handwriting パネル (手書きパッドとも呼ばれます) は、PenInputPanel の既定の入力 UI です。

このプロパティの値が Default の場合、PenInputPanel オブジェクトは、任意のアプリケーションの任意のペン入力パネルで最後に使用されたパネルの種類を使用します。アクティブなすべてのアプリケーションでペン入力パネルへの以前の参照がすべて破棄されている場合、新しい PenInputPanel オブジェクトは Handwriting パネルの種類を使用します。

PenInputPanel オブジェクトが初めてアクティブになる前に CurrentPanel プロパティを設定してパネルを変更すると、PanelChanged イベントが発生します。

DefaultPanel プロパティを設定すると、その PenInputPanel オブジェクトのインスタンスで既定として表示されるパネルの種類を指定できます。このプロパティの値が Handwriting または Keyboard の場合、パネルが表示されるたびに、それぞれ手書きパネルまたはキーボードパネルの種類が使用されます。

PenInputPanel を別のコントロールにアタッチし直し、新しいコントロールにフォーカスが移動した時点で DefaultPanel プロパティを変更する場合は、正しいパネルが表示されるように、AttachedEditWindow プロパティを設定する前に DefaultPanel プロパティを設定してください。

vtbl 16 HRESULT get_Visible(VARIANT_BOOL* Visible)

非推奨。PenInputPanel は Text Input Panel (TIP) に置き換えられました。PenInputPanel オブジェクトが表示されているかどうかを示す値を取得または設定します。

VisibleVARIANT_BOOL*outパネルが現在表示されているかどうかを受け取る VARIANT_BOOL へのポインタである。

解説(Remarks)

Visible プロパティに VARIANT_TRUE を設定できるのは、アタッチされているコントロールがフォーカスを持っている場合のみです。それ以外の場合、このプロパティを設定するとエラーが発生します。

vtbl 17 HRESULT put_Visible(VARIANT_BOOL Visible)
VisibleVARIANT_BOOLinパネルを表示するかどうかを指定する VARIANT_BOOL である。
vtbl 18 HRESULT get_Top(INT* Top)

非推奨。PenInputPanel は Text Input Panel (TIP) に置き換えられました。PenInputPanel オブジェクトの上端の垂直方向 (y 軸) の位置を、スクリーン座標で取得します。

TopINT*outパネルの上端位置(画面座標、ピクセル)を受け取るポインタである。

解説(Remarks)

PenInputPanel オブジェクトの自動配置動作を明示的にオーバーライドするには、オブジェクトの Left プロパティと Top プロパティを使用して、ペン入力パネルの現在位置を調べます。ペン入力パネルが表示されているべき画面領域に位置している場合は、MoveTo メソッドを使用してペン入力パネルを移動します。

また、PanelMoving イベントの Left パラメーターと Top パラメーターを監視することでも、PenInputPanel オブジェクトの自動配置動作をオーバーライドできます。ペン入力パネルが表示されているべき画面領域に位置している場合は、MoveTo メソッドを使用してペン入力パネルを移動します。

vtbl 19 HRESULT get_Left(INT* Left)

非推奨。PenInputPanel は Text Input Panel (TIP) に置き換えられました。PenInputPanel オブジェクトの左端の水平方向 (x 軸) の位置を、スクリーン座標で取得します。

LeftINT*outパネルの左端位置(画面座標、ピクセル)を受け取るポインタである。

解説(Remarks)

PenInputPanel オブジェクトの自動配置動作を明示的にオーバーライドするには、オブジェクトの Left プロパティと Top プロパティを使用して、ペン入力パネルの現在位置を調べます。ペン入力パネルが表示されているべき画面領域に位置している場合は、MoveTo メソッドを使用してペン入力パネルを移動します。

また、PanelMoving イベントの Left パラメーターと Top パラメーターを監視することでも、PenInputPanel オブジェクトの自動配置動作をオーバーライドできます。ペン入力パネルが表示されているべき画面領域に位置している場合は、MoveTo メソッドを使用してペン入力パネルを移動します。

vtbl 20 HRESULT get_Width(INT* Width)

非推奨。PenInputPanel は Text Input Panel (TIP) に置き換えられました。ペン入力パネルの幅をクライアント座標で取得します。

WidthINT*outパネルの幅(ピクセル)を受け取るポインタである。

解説(Remarks)

PenInputPanel オブジェクトの幅は、その Tablet PC の画面解像度に依存します。96 dpi (dots per inch) での既定値は 570 ピクセルです。120 dpi での既定値は 712 ピクセルです。133 dpi での既定値は 790 ピクセルです。

Microsoft Windows XP Tablet PC Edition 2005 以降、Tablet PC Input Panel は、新しい手書き入力に合わせて自動的にサイズを拡大し、ユーザーが手書き入力を続けられるようにします。Tablet PC Input Panel が拡大しても、Height プロパティと Width プロパティは新しいサイズを反映して更新されません。これらのプロパティは Tablet PC Input Panel の元のサイズを返します。また、Tablet PC Input Panel のホバーターゲットの寸法も返しません。

vtbl 21 HRESULT get_Height(INT* Height)

非推奨。PenInputPanel は Text Input Panel (TIP) に置き換えられました。ペン入力パネルの高さをクライアント座標で取得します。

HeightINT*outパネルの高さ(ピクセル)を受け取るポインタである。

解説(Remarks)

ペン入力パネルの高さは、その Tablet PC の画面解像度に依存します。パネルの高さは 1.25 インチに相当するピクセル数です。96 dpi (dots per inch) での既定値は 157 ピクセルです。120 dpi での既定値は 196 ピクセルです。133 dpi での既定値は 218 ピクセルです。

Microsoft Windows XP Tablet PC Edition 2005 以降、Tablet PC Input Panel は、新しい手書き入力に合わせて自動的にサイズを拡大し、ユーザーが手書き入力を続けられるようにします。Tablet PC Input Panel が拡大しても、Height プロパティと Width プロパティは新しいサイズを反映して更新されません。これらのプロパティは Tablet PC Input Panel の元のサイズを返します。また、Tablet PC Input Panel のホバーターゲットの寸法も返しません。

vtbl 22 HRESULT get_VerticalOffset(INT* VerticalOffset)

非推奨。PenInputPanel は Text Input Panel (TIP) に置き換えられました。ペン入力パネルの最も近い水平方向の端と、アタッチ先コントロールの最も近い水平方向の端との間のオフセットを取得または設定します。(IPenInputPanel.get_VerticalOffset)

VerticalOffsetINT*outアタッチされた編集ウィンドウからのパネルの垂直オフセット(ピクセル)を受け取るポインタである。

解説(Remarks)

既定値は、画面解像度の設定に応じた 1/16 インチ相当のピクセル数です。値が 0 (ゼロ) の場合、PenInputPanel オブジェクトはコントロールの下端に直接接して配置されます。値が -1 の場合は、コントロールの 1 ピクセル上に配置されます。

PenInputPanel の新しい位置によってパネルが画面の作業領域の境界外に表示される場合、パネルの端が画面の最も近い端に接するように、パネルは作業領域の中央方向へ移動されます。

vtbl 23 HRESULT put_VerticalOffset(INT VerticalOffset)

非推奨。PenInputPanel は Text Input Panel (TIP) に置き換えられました。ペン入力パネルの最も近い水平方向の端と、アタッチ先コントロールの最も近い水平方向の端との間のオフセットを取得または設定します。(IPenInputPanel.put_VerticalOffset)

VerticalOffsetINTinアタッチされた編集ウィンドウからのパネルの垂直オフセット(ピクセル)を指定する。

解説(Remarks)

既定値は、画面解像度の設定に応じた 1/16 インチ相当のピクセル数です。値が 0 (ゼロ) の場合、PenInputPanel オブジェクトはコントロールの下端に直接接して配置されます。値が -1 の場合は、コントロールの 1 ピクセル上に配置されます。

PenInputPanel の新しい位置によってパネルが画面の作業領域の境界外に表示される場合、パネルの端が画面の最も近い端に接するように、パネルは作業領域の中央方向へ移動されます。

vtbl 24 HRESULT get_HorizontalOffset(INT* HorizontalOffset)

非推奨。PenInputPanel は Text Input Panel (TIP) に置き換えられました。ペン入力パネルの左端と、アタッチ先コントロールの左端との間のオフセットを取得または設定します。(IPenInputPanel.get_HorizontalOffset)

HorizontalOffsetINT*outアタッチされた編集ウィンドウからのパネルの水平オフセット(ピクセル)を受け取るポインタである。

解説(Remarks)

既定値は、画面解像度の設定に応じた 0.25 インチ相当のピクセル数です。負の値はコントロールより左へのシフトを示します。正の値は右へのシフトを示します。ゼロの値は、ペン入力パネルの左端がコントロールの左端とちょうど同じ位置に配置されることを示します。

新しい位置によってパネルが画面の作業領域の境界外に表示される場合、パネルの端が画面の最も近い端に接するように、パネルは作業領域の中央方向へ移動されます。

vtbl 25 HRESULT put_HorizontalOffset(INT HorizontalOffset)

非推奨。PenInputPanel は Text Input Panel (TIP) に置き換えられました。ペン入力パネルの左端と、アタッチ先コントロールの左端との間のオフセットを取得または設定します。(IPenInputPanel.put_HorizontalOffset)

HorizontalOffsetINTinアタッチされた編集ウィンドウからのパネルの水平オフセット(ピクセル)を指定する。

解説(Remarks)

既定値は、画面解像度の設定に応じた 0.25 インチ相当のピクセル数です。負の値はコントロールより左へのシフトを示します。正の値は右へのシフトを示します。ゼロの値は、ペン入力パネルの左端がコントロールの左端とちょうど同じ位置に配置されることを示します。

新しい位置によってパネルが画面の作業領域の境界外に表示される場合、パネルの端が画面の最も近い端に接するように、パネルは作業領域の中央方向へ移動されます。

vtbl 26 HRESULT get_AutoShow(VARIANT_BOOL* pAutoShow)

非推奨。PenInputPanel は Text Input Panel (TIP) に置き換えられました。ペンを使用してアタッチ先コントロールにフォーカスが設定されたときに、ペン入力パネルを表示するかどうかを示す値を取得または設定します。(IPenInputPanel.get_AutoShow)

pAutoShowVARIANT_BOOL*out編集コントロールにフォーカスが移った際にパネルを自動表示するかどうかを受け取る VARIANT_BOOL へのポインタである。

解説(Remarks)

AutoShow プロパティが VARIANT_FALSE に設定されている場合、Visible プロパティが VARIANT_TRUE に設定されるまで、Tablet PC Input Panel は表示されません。この時点では Tablet PC Input Panel は表示されますが、ホバーターゲットは表示されません。

vtbl 27 HRESULT put_AutoShow(VARIANT_BOOL AutoShow)

非推奨。PenInputPanel は Text Input Panel (TIP) に置き換えられました。ペンを使用してアタッチ先コントロールにフォーカスが設定されたときに、ペン入力パネルを表示するかどうかを示す値を取得または設定します。(IPenInputPanel.put_AutoShow)

AutoShowVARIANT_BOOLin編集コントロールにフォーカスが移った際にパネルを自動表示するかどうかを指定する VARIANT_BOOL である。

解説(Remarks)

AutoShow プロパティが VARIANT_FALSE に設定されている場合、Visible プロパティが VARIANT_TRUE に設定されるまで、Tablet PC Input Panel は表示されません。この時点では Tablet PC Input Panel は表示されますが、ホバーターゲットは表示されません。

vtbl 28 HRESULT MoveTo(INT Left, INT Top)

非推奨。PenInputPanel は Text Input Panel (TIP) に置き換えられました。PenInputPanel オブジェクトの位置を、画面上の固定位置に設定します。

LeftINTin新しい水平方向の位置 (スクリーン座標)。
TopINTin新しい垂直方向の位置 (スクリーン座標)。

戻り値

このメソッドは次のいずれかの値を返します。

戻り値 説明
S_OK
成功しました。
E_UNEXPECTED
パラメーターまたはプロパティの型が予期しないものです。
E_FAIL
不特定のエラーが発生しました。

解説(Remarks)

PenInputPanel のアタッチ先コントロールがフォーカスを持っていない場合、MoveTo メソッドはエラーになります。アタッチ先コントロールがフォーカスを持っていれば、ペン入力パネルが表示されていない状態でもこのメソッドを安全に呼び出せます。

新しい位置によってパネルが画面の作業領域の境界外に表示される場合、パネルの端が画面の最も近い端に接するように、パネルは作業領域の中央方向へ移動されます。

PenInputPanel オブジェクトの自動配置動作を明示的にオーバーライドするには、PenInputPanel オブジェクトの Left プロパティと Top プロパティを使用して現在位置を調べます。PenInputPanel が表示されているべき画面領域に位置している場合は、MoveTo メソッドを使用して PenInputPanel を移動します。

また、PanelMoving イベントハンドラーに渡される Left パラメーターと Top パラメーターを監視することでも、PenInputPanel オブジェクトの自動配置動作をオーバーライドできます。PenInputPanel が表示されているべき画面領域に位置している場合は、MoveTo メソッドを使用して PenInputPanel を移動します。

vtbl 29 HRESULT CommitPendingInput()

非推奨。PenInputPanel は Text Input Panel (TIP) に置き換えられました。収集したインク(手書き)を認識エンジンに送信し、認識結果をポストします。

戻り値

このメソッドは次のいずれかの値を返します。

戻り値 説明
S_OK
成功しました。
E_UNEXPECTED
パラメーターまたはプロパティの型が予期しないものです。
E_FAIL
不特定のエラーが発生しました。

解説(Remarks)

手書きパッドは、収集したインク(手書き)を認識エンジンに送信し、手書きパッドをクリアします。東アジア用のマルチボックスは、認識された文字を送信してマルチボックスをクリアします。認識結果は、PenInputPanel オブジェクトのアタッチ先コントロールに送信されます。

保留中の入力がない場合、または CurrentPanel プロパティが Keyboard の場合、CommitPendingInput は何も行いません。PenInputPanel オブジェクトが非アクティブな場合、このメソッドを呼び出すとエラーが発生します。

Microsoft Windows XP Tablet PC Edition 2005 以降では、ユーザーの入力に合わせてインク(手書き)が認識されます。そのため、CommitPendingInput 関数は、すでに認識済みのテキストを編集コントロールに送信するだけであり、認識の実行を強制するものではありません。

Windows XP Tablet PC Edition 2005 以降では、PenInputPanel オブジェクトが非アクティブな場合でも、CommitPendingInput はエラーを発生させず、単に処理を返します。

vtbl 30 HRESULT Refresh()

Refresh は Windows XP Tablet PC Edition 以降、使用できなくなりました。

戻り値

このメソッドは次のいずれかの値を返します。

戻り値 説明
S_OK
成功しました。
E_UNEXPECTED
パラメーターまたはプロパティの型が予期しないものです。
E_FAIL
不特定のエラーが発生しました。

解説(Remarks)

Refresh メソッドは既定のパネルを復元します。たとえば、DefaultPanel プロパティが Keyboard に設定され、CurrentPanel プロパティが Handwriting に設定されている場合、Refresh メソッドはペン入力パネルを Keyboard に設定します。DefaultPanel プロパティが Default に設定されている場合、Refresh メソッドはペン入力パネルを変更しません。

Refresh メソッドは、アタッチ先コントロールを基準にしてペン入力パネルを自動的に配置します。

Refresh メソッドは、Input Panel の設定を使用してペン入力パネルを更新します。たとえば、PenInputPanel オブジェクトに変更を加えた後で Refresh を呼び出すと、Input Panel からコピーされた設定に戻すことができます。

PenInputPanel オブジェクトは、Input Panel の設定が変更されるたびに自動的に更新されます。

ペン入力パネルがフォーカスを持っていない状態で Refresh を呼び出すと、エラーが発生します。

Note 通常、上記の処理はすべてペン入力パネルのアクティブ化時に実行されるため、Refresh を呼び出す必要はありません。ただし、AutoShow プロパティを FALSE に設定すると、ペン入力パネルのアクティブ化を無効にできます。そのため、この場合は Refresh メソッドが必要になります。
vtbl 31 HRESULT EnableTsf(VARIANT_BOOL Enable)

非推奨。PenInputPanel オブジェクトが Text Services Framework (TSF) を通じてアタッチ先コントロールにテキストを送信しようとするかどうかを示すブール値を取得または設定し、修正ユーザーインターフェイスの使用を有効にします。

EnableVARIANT_BOOLinPenInputPanel オブジェクトが TSF を使用してアタッチ先コントロールへのテキスト送信を試み、修正ユーザーインターフェイスを有効にする場合は TRUE。それ以外の場合は FALSE。既定値は TRUE です。

戻り値

このメソッドは次のいずれかの値を返します。

戻り値 説明
S_OK
成功しました。
E_UNEXPECTED
パラメーターまたはプロパティの型が予期しないものです。
E_NOINTERFACE
アタッチ先コントロールで TSF インターフェイスが公開されていません。
E_FAIL
不特定のエラーが発生しました。

解説(Remarks)

Enable に TRUE を指定してこのメソッドを呼び出すと、PenInputPanel オブジェクトは、アタッチ先コントロールで TSF の開始を試みます。

EnableTsf は、手書き認識の結果をコントロールに送信する際に、SendInput 関数ではなく TSF の挿入コンテキストを PenInputPanel が使用できるようにするために使用します。これにより、フィールドがフォーカスを失った後でもテキストを挿入できるようになります。

EnableTsfTRUE の値で呼び出すと、PenInputPanel オブジェクトはアタッチ先コントロールに EM_SETEDITSTYLE メッセージを送信します。コントロールがこのメッセージをサポートしていない場合、結果は予測できないものになる可能性があります。InkEdit コントロールは TSF をサポートしています。

従来のアプリケーションのサポート

デスクトップ上のすべてのアプリケーションに一貫したユーザーインターフェイスを提供するため、TSF と Microsoft Windows にサポートが追加されました。この新しいサポートにより、TSF を認識しない従来のアプリケーションやコントロールでも、一部の高度なテキストサービスを追加の実装なしで利用できます。たとえば、音声ディクテーションや手書き入力を使用して、任意のアプリケーションのドキュメントにテキストを入力できるようになります。

この新機能は Windows XP Tablet PC Edition で利用可能であり、既定で有効になっています。有効または無効にするには、次の手順を実行します。

  1. コントロール パネルで Regional and Language Options をクリックします。
  2. Languages タブで Details をクリックします。
  3. Text Services and Input Languages ダイアログ ボックスの Advanced タブで、Extend support of advanced text services to all programs をオンまたはオフにします。
成功した場合、テキストは TSF を通じてアタッチ先コントロールに送信されます。さらに、コントロールが TSF をサポートしている場合 (上記のようにコントロール パネルですべてのプログラムに対して高度なテキスト サービスが有効化されているために単に TSF からテキストを受け取っているだけではない場合)、修正ユーザーインターフェイスがコントロールに表示され、手書きの候補にアクセスできるようになります。Enable に FALSE を指定してこのメソッドを呼び出すと、PenInputPanel オブジェクトは、アタッチ先コントロールで TSF のシャットダウンを試みます。
出典・ライセンス: 上記「公式ドキュメント」の内容は 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_IPenInputPanel "{FA7A4083-5747-4040-A182-0B0E9FD4FAC7}"
#usecom global IPenInputPanel IID_IPenInputPanel "{F744E496-1B5A-489E-81DC-FBD7AC6298A8}"
#comfunc global IPenInputPanel_get_Busy                7 var
#comfunc global IPenInputPanel_get_Factoid             8 var
#comfunc global IPenInputPanel_put_Factoid             9 wstr
#comfunc global IPenInputPanel_get_AttachedEditWindow  10 var
#comfunc global IPenInputPanel_put_AttachedEditWindow  11 int
#comfunc global IPenInputPanel_get_CurrentPanel        12 var
#comfunc global IPenInputPanel_put_CurrentPanel        13 int
#comfunc global IPenInputPanel_get_DefaultPanel        14 var
#comfunc global IPenInputPanel_put_DefaultPanel        15 int
#comfunc global IPenInputPanel_get_Visible             16 var
#comfunc global IPenInputPanel_put_Visible             17 int
#comfunc global IPenInputPanel_get_Top                 18 var
#comfunc global IPenInputPanel_get_Left                19 var
#comfunc global IPenInputPanel_get_Width               20 var
#comfunc global IPenInputPanel_get_Height              21 var
#comfunc global IPenInputPanel_get_VerticalOffset      22 var
#comfunc global IPenInputPanel_put_VerticalOffset      23 int
#comfunc global IPenInputPanel_get_HorizontalOffset    24 var
#comfunc global IPenInputPanel_put_HorizontalOffset    25 int
#comfunc global IPenInputPanel_get_AutoShow            26 var
#comfunc global IPenInputPanel_put_AutoShow            27 int
#comfunc global IPenInputPanel_MoveTo                  28 int,int
#comfunc global IPenInputPanel_CommitPendingInput      29
#comfunc global IPenInputPanel_Refresh                 30
#comfunc global IPenInputPanel_EnableTsf               31 int
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。