ITextHost
COM公式ドキュメント
ITextHost インターフェイスは、テキストサービスオブジェクトがテキストホストサービスを取得するために使用します。
解説(Remarks)
CreateTextServices 関数を呼び出す前に、ITextHost インターフェイスを実装する必要があります。
アプリケーションが ITextHost のメソッドを呼び出すことはありません。CreateTextServices 関数によって作成されたテキストサービスオブジェクトが、このインターフェイスのメソッドを呼び出します。
メソッド 39
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
テキストホストウィンドウのデバイスコンテキストを要求します。
戻り値
型: HDC
メソッドが成功した場合は、テキストホストウィンドウのクライアント領域のデバイスコンテキストのハンドルを返します。
メソッドが失敗した場合は NULL を返します。COM エラーコードの詳細については、Error Handling in COM を参照してください。
解説(Remarks)
このメソッドはコントロールがインプレースアクティブなときにのみ有効です。コントロールが非アクティブなときに呼び出すと失敗することがあります。
ITextHost::TxGetDC メソッドで取得したデバイスコンテキストを解放します。
| hdc | HDC | in | 解放するデバイスコンテキストのハンドル。 |
戻り値
解説(Remarks)
このメソッドはコントロールがインプレースアクティブなときにのみ有効です。コントロールが非アクティブなときに呼び出すと失敗することがあります。
テキストホストウィンドウ内のスクロールバーを表示または非表示にします。
| fnBar | INT | in | 表示または非表示にするスクロールバーを指定します。このパラメーターには次のいずれかの値を指定できます。
| ||||||||
| fShow | BOOL | in | フラグ。TRUE の場合、fnBar で指定されたスクロールバーが表示されます。FALSE の場合、スクロールバーは非表示になります。 |
戻り値
解説(Remarks)
このメソッドはコントロールがインプレースアクティブなときにのみ有効です。コントロールが非アクティブなときに呼び出すと失敗することがあります。
テキストホストウィンドウ内の一方または両方のスクロールバーの矢印を有効または無効にします。
| fuSBFlags | SCROLLBAR_CONSTANTS | in | 影響を受けるスクロールバーを指定します。このパラメーターには次のいずれかの値を指定できます。
| ||||||||
| fuArrowflags | INT | in | 有効または無効にするスクロールバーの矢印を指定します。このパラメーターには次のいずれかの値を指定できます。 |
戻り値
解説(Remarks)
このメソッドはコントロールがインプレースアクティブなときにのみ有効です。コントロールが非アクティブなときに呼び出すと失敗することがあります。
テキストホストウィンドウ内の指定したスクロールバーの最小位置と最大位置の値を設定します。
| fnBar | INT | in | スクロールバーフラグ。SB_HORZ の場合は水平スクロールが行われます。既定では垂直スクロールが行われます。 |
| nMinPos | INT | in | 最小スクロール位置。 |
| nMaxPos | INT | in | 最大スクロール位置。 |
| fRedraw | BOOL | in | 再描画フラグ。TRUE の場合、変更を反映するためにスクロールバーが再描画されます。FALSE の場合、スクロールバーは再描画されません。 |
戻り値
解説(Remarks)
このメソッドはコントロールがインプレースアクティブなときにのみ有効です。コントロールが非アクティブなときに呼び出すと失敗することがあります。
指定したスクロールバー内のスクロールボックス(つまみ)の位置を設定し、要求された場合は、スクロールボックスの新しい位置を反映するようにスクロールバーを再描画します。(ITextHost.TxSetScrollPos)
| fnBar | INT | in | スクロールバーフラグ。SB_HORZ の場合は水平スクロールが行われます。既定では垂直スクロールが行われます。 |
| nPos | INT | in | スクロールボックスの新しい位置。これは ITextHost::TxSetScrollRange で設定したスクロールバー値の範囲内でなければなりません。 |
| fRedraw | BOOL | in | 再描画フラグ。TRUE の場合、スクロールボックスの新しい位置とともにスクロールバーが再描画されます。FALSE の場合、スクロールバーは再描画されません。 |
戻り値
解説(Remarks)
このメソッドはコントロールがインプレースアクティブなときにのみ有効です。コントロールが非アクティブなときに呼び出すと失敗することがあります。
テキストホストがテキストホストウィンドウの更新領域に追加する四角形を指定します。
| prc | RECT* | inout | 無効な四角形。 |
| fMode | BOOL | in | 更新領域が処理されるときに、更新領域内の背景を消去するかどうかを指定します。このパラメーターが TRUE の場合、BeginPaint 関数が呼び出されたときに背景が消去されます。このパラメーターが FALSE の場合、背景は変更されません。 |
解説(Remarks)
この関数は非アクティブ時にも呼び出すことができます。ただし、ホストの実装は、要求された RECT よりも広い領域を無効化してもかまいません。
更新領域が変更されたことをテキストホストに通知します。
| fUpdate | BOOL | in | 更新フラグ。TRUE の場合、テキストホストは UpdateWindow を呼び出します。それ以外の場合は何も行いません。「解説」セクションを参照してください。 |
解説(Remarks)
テキストサービスオブジェクトは、コントロールが非アクティブであっても、視覚的な表現が変化するたびに TxViewChange を呼び出す必要があります。コントロールがアクティブな場合、テキストサービスはコントロールのウィンドウが確実に更新されるようにする必要もあります。これは、いくつかの方法で行えます。
- ITextHost::TxGetDC を呼び出してコントロールのウィンドウのデバイスコンテキストを取得し、ウィンドウを再描画または更新します。その後、ITextHost::TxReleaseDC を呼び出します。
- ITextHost::TxInvalidateRect を呼び出してコントロールのウィンドウを無効化します。
- ITextHost::TxScrollWindowEx を呼び出してコントロールのウィンドウをスクロールします。
ウィンドウレスリッチエディットコントロールのキャレット用に新しい形状を作成します。
| hbmp | HBITMAP | in | 新しいキャレット形状用のビットマップのハンドル。 ウィンドウレスリッチエディットコントロールに SES_LOGICALCARET スタイルが設定されている場合、hbmp は次の値の組み合わせになります。
| ||||||||||||||
| xWidth | INT | in | キャレットの幅(論理単位)。 | ||||||||||||||
| yHeight | INT | in | キャレットの高さ(論理単位)。 |
戻り値
解説(Remarks)
このメソッドはコントロールがインプレースアクティブなときにのみ有効です。コントロールが非アクティブなときに呼び出すと失敗することがあります。
テキストホストウィンドウ内のキャレット位置でキャレットを表示または非表示にします。
| fShow | BOOL | in | フラグ。TRUE の場合、キャレットが表示されます。FALSE の場合、キャレットは非表示になります。 |
戻り値
解説(Remarks)
このメソッドはコントロールがインプレースアクティブなときにのみ有効です。コントロールが非アクティブなときに呼び出すと失敗することがあります。
キャレット位置をテキストホストウィンドウ内の指定した座標に移動します。
| x | INT | in | 水平位置(クライアント座標)。 |
| y | INT | in | 垂直位置(クライアント座標)。 |
戻り値
解説(Remarks)
このメソッドはコントロールがインプレースアクティブなときにのみ有効です。コントロールが非アクティブなときに呼び出すと失敗することがあります。
指定したタイムアウトでタイマーを作成するようテキストホストに要求します。
| idTimer | DWORD | in | タイマー識別子。 |
| uTimeout | DWORD | in | タイムアウト(ミリ秒単位)。 |
戻り値
解説(Remarks)
idTimer は ITextHost::TxKillTimer で使用されます。
指定したタイマーを破棄するようテキストホストに要求します。
| idTimer | DWORD | in | ITextHost::TxSetTimer メソッドで作成したタイマーの識別子。 |
解説(Remarks)
このメソッドは、コントロールがアクティブか非アクティブかにかかわらず、いつでも呼び出すことができます。
指定したクライアント領域の内容をスクロールするようテキストホストに要求します。
| dx | INT | in | 水平スクロールの量。 | ||||||||||
| dy | INT | in | 垂直スクロールの量。 | ||||||||||
| lprcScroll | RECT* | inout | スクロール四角形の座標。 | ||||||||||
| lprcClip | RECT* | inout | クリップ四角形の座標。 | ||||||||||
| hrgnUpdate | HRGN | in | 更新領域のハンドル。 | ||||||||||
| lprcUpdate | RECT* | inout | 更新四角形の座標。 | ||||||||||
| fuScroll | SCROLL_WINDOW_FLAGS | in | スクロールフラグ。このパラメーターには次のいずれかの値を指定できます。
|
解説(Remarks)
このメソッドはコントロールがインプレースアクティブなときにのみ有効です。コントロールが非アクティブなときに呼び出すと失敗することがあります。
テキストホストのウィンドウでマウスキャプチャを設定します。
| fCapture | BOOL | in | マウスキャプチャを設定するか解放するかを示します。TRUE の場合、マウスキャプチャが設定されます。FALSE の場合、マウスキャプチャが解放されます。 |
解説(Remarks)
このメソッドはコントロールがインプレースアクティブなときにのみ有効です。コントロールが非アクティブなときに呼び出しても、何も行われないことがあります。
テキストホストウィンドウにフォーカスを設定します。
解説(Remarks)
このメソッドはコントロールがインプレースアクティブなときにのみ有効です。コントロールが非アクティブなときに呼び出すと失敗することがあります。
テキストホストのウィンドウに新しいカーソル形状(I ビーム)を設定します。
| hcur | HCURSOR | in | カーソルのハンドル。 |
| fText | BOOL | in | TRUE の場合、呼び出し元がテキストカーソルを設定しようとしていることを示します。詳細については「解説」セクションを参照してください。 |
解説(Remarks)
このメソッドは、コントロールがアクティブか非アクティブかにかかわらず、いつでも呼び出すことができます。
マウスカーソルを設定するには、テキストサービスオブジェクトが TxSetCursor を呼び出します。fText パラメーターが TRUE の場合、テキストサービスオブジェクトはテキストカーソル(選択されていないテキストの上にあるときに I ビームとして表示されるカーソル)を設定しようとしています。この場合、ホストはコントロールの MousePointer プロパティに応じた任意のカーソルを設定できます。これは Microsoft Visual Basic との互換性のために必要です。Visual Basic のプログラマーは、MousePointer プロパティを通じてマウスカーソルの形状を制御できるためです。
スクリーン座標をテキストホストウィンドウの座標に変換します。
| lppt | POINT* | inout | 変換するスクリーン座標。 |
戻り値
テキストホスト座標をスクリーン座標に変換します。
| lppt | POINT* | inout | 変換するクライアント座標。 |
戻り値
解説(Remarks)
この呼び出しはいつでも有効ですが、失敗することもあります。一般に、テキストサービスオブジェクトがクライアント座標から変換する必要がある場合(たとえば TOM の GetPoint メソッドの場合)、テキストサービスオブジェクトは表示されています。
ただし、変換が不可能な場合、このメソッドは失敗します。
コントロールがアクティブであることをテキストホストに通知します。
| plOldState | INT* | inout | 以前のアクティブ化状態。 |
戻り値
型: HRESULT
メソッドが成功した場合は S_OK を返します。
メソッドが失敗した場合は、次の COM エラーコードを返します。COM エラーコードの詳細については、Error Handling in COM を参照してください。
| 戻り値 | 説明 |
|---|---|
| 現在アクティブ化できません。 |
解説(Remarks)
ホストがアクティブ化要求を拒否することは正当です。たとえば、コントロールが最小化されていて見えない場合などです。
呼び出し元は、アクティブ化の失敗を適切に処理できる必要があります。
このメソッドが何回呼び出されても、コントロールを非アクティブ化するために必要な ITextHost::TxDeactivate の呼び出しは 1 回だけです。
この関数は plOldState に不透明なハンドルを返します。呼び出し元(テキストサービスオブジェクト)はこのハンドルを保存し、後続の ITextHost::TxDeactivate の呼び出しで使用する必要があります。
コントロールが非アクティブになったことをテキストホストに通知します。
| lNewState | INT | in | コントロールの新しい状態。通常は ITextHost::TxActivate が返した値です。 |
戻り値
型: HRESULT
メソッドが成功した場合は S_OK を返します。
メソッドが失敗した場合は、次の COM エラーコードを返します。COM エラーコードの詳細については、Error Handling in COM を参照してください。
| 戻り値 | 説明 |
|---|---|
| 原因不明のエラー。 |
解説(Remarks)
このメソッドが何回呼び出されても、コントロールをアクティブ化するために必要な ITextHost::TxActivate の呼び出しは 1 回だけです。
テキストホストのクライアント領域のクライアント座標を取得します。
| prc | RECT* | inout | テキストホストのクライアント領域のクライアント座標。 |
戻り値
型: HRESULT
メソッドが成功した場合は S_OK を返します。
メソッドが失敗した場合は、次の COM エラーコードを返します。COM エラーコードの詳細については、Error Handling in COM を参照してください。
| 戻り値 | 説明 |
|---|---|
| 原因不明のエラー。 |
解説(Remarks)
クライアント四角形は、テキストサービスオブジェクトが描画と管理を担当する四角形です。ホストは、その領域の描画をテキストサービスオブジェクトに依存します。また、テキストサービスオブジェクトはその四角形の外側の領域を描画したり無効化したりしてはなりません。
カーソルがクライアント四角形の上にあるとき、ホストはマウスメッセージをテキストサービスオブジェクトに転送します。
クライアント四角形は、含まれるウィンドウのクライアント座標で表されます。
テキストホストウィンドウ内のテキスト周囲の余白インセットの寸法を要求します。
| prc | RECT* | inout | インセットのサイズ(クライアント座標)。 RECT 構造体の top、bottom、left、right の各メンバーは、描画を各方向にどれだけインセットするかを示します。 |
戻り値
解説(Remarks)
ビューインセットは、クライアント四角形とビュー四角形の間の各辺のスペースの量です。ビュー四角形(書式設定四角形とも呼ばれます)は、テキストが書式設定される四角形です。
ビューインセットは RECT 構造体で渡されますが、実際には四角形ではありません。ビュー四角形を求めるために、クライアント四角形の各辺から減算する 4 つの独立した値として扱う必要があります。
ビューインセットは HIMETRIC(各 HIMETRIC 単位は 0.01 ミリメートルに対応)で渡されるため、クライアント四角形やレンダリング用デバイスコンテキストに依存しません。
ビューインセットは、クライアント四角形のどの辺でも負の値になることがあり、その場合はビュー四角形がクライアント四角形より大きくなります。その場合、テキストはクライアント四角形にクリップされます。ビュー四角形がクライアント四角形より広い場合、ホストはコントロールに水平スクロールバーを追加することがあります。
単一行テキストサービスオブジェクトは、テキストの書式設定時にビュー四角形の右境界を無視します。
ビューインセットは、アクティブか非アクティブかにかかわらず、いつでもホストから取得できます。
テキストホストの既定の文字書式を要求します。
| ppCF | CHARFORMATW** | in | 既定の文字書式。 |
戻り値
型: HRESULT
メソッドが成功した場合は S_OK を返します。
メソッドが失敗した場合は、次の COM エラーコードを返します。COM エラーコードの詳細については、Error Handling in COM を参照してください。
| 戻り値 | 説明 |
|---|---|
| 実装されていません。 |
解説(Remarks)
テキストホストは、返された CHARFORMAT の所有権を保持します。ただし、返されたポインターは、既定の文字書式が変更されたことをテキストホストが OnTxPropertyBitsChange を通じてテキストサービスオブジェクトに通知するまで、有効なままである必要があります。
テキストホストの既定の段落書式を要求します。
| ppPF | PARAFORMAT** | in | 既定の段落書式。 |
戻り値
型: HRESULT
メソッドが成功した場合は S_OK を返します。
メソッドが失敗した場合は、次の COM エラーコードを返します。COM エラーコードの詳細については、Error Handling in COM を参照してください。
| 戻り値 | 説明 |
|---|---|
| 実装されていません。 |
解説(Remarks)
ホストオブジェクトは、返された PARAFORMAT 構造体の所有権を保持します。ただし、返されたポインターは、既定の段落書式が変更されたことをホストが OnTxPropertyBitsChange を通じてテキストサービスオブジェクトに通知するまで、有効なままである必要があります。
指定した表示要素に対するテキストホストの色を取得します。
| nIndex | SYS_COLOR_INDEX | in | 色を取得する表示要素。このパラメーターに指定できる値の一覧については、GetSysColor 関数を参照してください。 |
戻り値
型: COLORREF
指定した要素の赤、緑、青(RGB)のカラー値を識別する値。
解説(Remarks)
返される色は、GetSysColor の呼び出しによって返される色とは 異なる 場合があることに注意してください。これは、ホストが既定のシステム動作をオーバーライドする場合に該当します。
テキストホストの背景スタイルを要求します。
| pstyle | TXTBACKSTYLE* | inout | テキストホストが背景スタイルを示すために設定する変数。スタイルは TXTBACKSTYLE 列挙型の次のいずれかの値です。
|
戻り値
テキストホストが許可するテキストの最大長を取得します。
| plength | DWORD* | inout | 許可される最大テキスト長(文字数)。INFINITE が返された場合、テキストサービスオブジェクトは、指定された任意のテキストを格納するために必要なだけメモリを使用できます。 |
戻り値
解説(Remarks)
この最大値に達すると、テキストサービスオブジェクトはそれ以上の文字挿入と貼り付けテキストを拒否する必要があります。 ただし TxSetText は、最大長より長いテキストも受け入れて(設定して)ください。これは、このメソッドがバインディングに使用され、コントロールがバインドされているデータの整合性を維持するために重要だからです。
このメソッドは EM_LIMITTEXT メッセージに対応します。
返される制限が、テキストサービスオブジェクト内に現在ある文字数より少ない場合でも、データが失われることはありません。代わりに、テキストが制限を下回るまで、削除 以外 のテキスト編集は許可されません。
テキストホストがサポートするスクロールバーに関する情報を要求します。
| pdwScrollBar | DWORD* | inout | スクロールバー。このパラメーターには、スクロールバーに関連する次のウィンドウスタイルの組み合わせを指定できます。 |
戻り値
テキストホストのパスワード文字を要求します。
| pch | CHAR* | out | パスワード文字。 |
戻り値
型: HRESULT
パスワード文字が有効な場合は S_OK を返します。
パスワード文字が有効でない場合は S_FALSE を返します。COM エラーコードの詳細については、Error Handling in COM を参照してください。
解説(Remarks)
パスワード文字は、テキストサービスオブジェクトで TXTBIT_USEPASSWORD ビットが有効になっている場合にのみ表示されます。パスワード文字が変更された場合は、OnTxPropertyBitsChange を通じて TXTBIT_USEPASSWORD ビットを再度有効にしてください。
アクセラレーター文字の下線表示に使用する特殊文字を要求します。
| pcp | INT* | inout | 下線を引く文字の文字位置。この変数はテキストホストによって設定されます。文字位置が –1(つまりマイナス 1)の場合、どの文字にも下線を引かないことを示します。 |
戻り値
解説(Remarks)
アクセラレーターは、さまざまな UI 要素(ボタンなど)へのキーボードショートカット(アクセラレーターキー)を可能にします。通常、ショートカット文字には下線が引かれます。
このメソッドは、どの文字がアクセラレーターであり、したがって下線を引くべきかをテキストサービスオブジェクトに伝えます。テキストサービスオブジェクトはアクセラレーターを 処理しない ことに注意してください。それはホストの責任です。
このメソッドは通常、テキストサービスオブジェクトで TXTBIT_SHOWACCELERATOR ビットが設定されている場合にのみ呼び出されます。OnTxPropertyBitsChange を参照してください。
コントロールのネイティブサイズを HIMETRIC で要求します。
| lpExtent | SIZE* | inout | コントロールのサイズ(HIMETRIC 単位。つまり単位は 0.01 ミリメートル)。 |
戻り値
型: HRESULT
メソッドが成功した場合は S_OK を返します。
メソッドが失敗した場合は、次の COM エラーコードを返します。COM エラーコードの詳細については、Error Handling in COM を参照してください。
| 戻り値 | 説明 |
|---|---|
| 実装されていません。 |
解説(Remarks)
このメソッドは、ズームを実装するためにテキストサービスオブジェクトによって使用されます。テキストサービスオブジェクトは、クライアント四角形の HIMETRIC 単位のサイズとデバイスピクセル単位のサイズの比率からズーム倍率を導出します。各 HIMETRIC 単位は 0.01 ミリメートルに対応します。
[垂直ズーム倍率] = [クライアント四角形のピクセル高さ] * 2540 / [HIMETRIC 垂直サイズ] * [垂直インチあたりのピクセル数(デバイスコンテキストから)]
垂直方向と水平方向のズーム倍率が同じでない場合、テキストサービスオブジェクトは水平方向のズーム倍率を無視し、垂直方向と同じであると仮定できます。
テキストホストの既定の文字書式を設定します。
| pCF | CHARFORMATW* | in | 新しい既定の文字書式。 |
戻り値
型: HRESULT
メソッドが成功した場合は S_OK を返します。
メソッドが失敗した場合は、次のいずれかの COM エラーコードを返します。COM エラーコードの詳細については、Error Handling in COM を参照してください。
| 戻り値 | 説明 |
|---|---|
| 1 つ以上の引数が無効です。 | |
| 原因不明のエラー。 |
テキストホストの既定の段落書式を設定します。
| pPF | PARAFORMAT* | in | 新しい既定の段落書式。 |
戻り値
型: HRESULT
メソッドが成功した場合は S_OK を返します。
メソッドが失敗した場合は、次のいずれかの COM エラーコードを返します。COM エラーコードの詳細については、Error Handling in COM を参照してください。
| 戻り値 | 説明 |
|---|---|
| 1 つ以上の引数が無効です。 | |
| 原因不明のエラー。 |
テキストホストのビットプロパティ設定を要求します。
| dwMask | DWORD | in | 呼び出し元が関心を持つプロパティのマスク。指定可能なビット値については、 OnTxPropertyBitsChange の dwBits を参照してください。 |
| pdwBits | DWORD* | inout | |
戻り値
解説(Remarks)
この呼び出しは、要求されるプロパティビットのどのような組み合わせに対しても、いつでも有効です。
さまざまなイベントをテキストホストに通知します。
| iNotify | DWORD | in | ホストに通知するイベント。 EN_ 通知コードのいずれか。 |
| pv | void* | inout | |
戻り値
型: HRESULT
メソッドが成功した場合は S_OK を返します。
メソッドが失敗した場合は S_FALSE を返します。COM エラーコードの詳細については、Error Handling in COM を参照してください。
解説(Remarks)
イベントには基本的に 2 つのカテゴリ、 直接 と 遅延 があることに注意してください。直接イベントは、何らかの処理が必要なため即座に送信されます。たとえば EN_PROTECTED です。遅延イベントは、すべての処理が完了した後に送信されます。したがってコントロールは安定した状態にあります。遅延通知の例としては、EN_CHANGE、EN_ERRSPACE、EN_SELCHANGE があります。
通知イベントは、リッチエディットウィンドウの親ウィンドウに送信される通知コードと同じです。イベントの発生は、EM_SETEVENTMASK メッセージで設定するマスクによって制御できます。
一般に、このメソッドの処理中にテキストサービスオブジェクトを呼び出すことは正当ですが、実装者は過度の再帰を避けるよう注意してください。
以下は、送信される可能性のある通知の一覧です。
| 通知 | 意味 |
|---|---|
| EN_CHANGE | ユーザーがコントロール内のテキストを変更した可能性のある操作を行ったときに、システムが画面を更新した後に送信されます。 |
| EN_DROPFILES | WM_DROPFILES メッセージ、または IDropTarget::DragEnter 通知のいずれかを受信したときに送信されます。 |
| EN_ERRSPACE | コントロールが指定された要求を満たすのに十分なメモリを割り当てられないときに送信されます。 |
| EN_HSCROLL | 画面が更新される前に、ユーザーがコントロールの水平スクロールバーをクリックしたときに送信されます。 |
| EN_KILLFOCUS | コントロールがキーボードフォーカスを失ったときに送信されます。 |
| EN_LINK | マウスポインターが CFE_LINK 効果を持つテキストの上にあるときに、リッチエディットコントロールがマウスクリックメッセージなどのさまざまなメッセージを受信したときに送信されます。 |
| EN_MAXTEXT | 現在のテキスト挿入がコントロールの最大文字数を超えたときに送信されます。 |
| EN_OLEOPFAILED | OLE オブジェクトに対するユーザー操作が失敗したときに送信されます。 |
| EN_PROTECTED | ユーザーが保護されたテキスト範囲を変更する操作を行ったときに送信されます。 |
| EN_REQUESTRESIZE | リッチエディットコントロールの内容がコントロールのウィンドウサイズと異なるときに送信されます。 |
| EN_SAVECLIPBOARD | エディットコントロールが破棄されるときに送信されます。テキストホストは、OleFlushClipboard を呼び出すべきかどうかを示す必要があります。フラッシュする文字数とオブジェクト数を示すデータは、 ENSAVECLIPBOARD データ構造体で送信されます。マスク値はありません。 |
| EN_SELCHANGE | 現在の選択範囲が変更されたときに送信されます。SELCHANGE データ構造体も送信され、新しい選択範囲と、その選択範囲が現在対象としているデータの種類を示します。ENM_SELCHANGE マスクによって制御されます。 |
| EN_SETFOCUS | エディットコントロールがキーボードフォーカスを受け取ったときに送信されます。追加データは送信されず、マスクもありません。 |
| EN_STOPNOUNDO | 元に戻す(undo)状態を維持するのに十分なメモリをコントロールが割り当てられない操作が発生したときに送信されます。S_FALSE が返された場合、操作は停止されます。それ以外の場合、操作は続行されます。 |
| EN_UPDATE | エディットコントロールが変更されたデータまたはテキストの再描画を要求する前に送信されます。追加データは送信されません。このイベントは ENM_UPDATE マスクによって制御されます。 Rich Edit 2.0 以降: ENM_UPDATE マスクは無視され、EN_UPDATE 通知コードが常に送信されます。ただし、Microsoft Rich Edit 3.0 が Microsoft Rich Edit 1.0 をエミュレートする場合、ENM_UPDATE マスクがこの通知を制御します。 |
| EN_VSCROLL | 画面が更新される前に、ユーザーがエディットコントロールの垂直スクロールバーをクリックしたとき、またはエディットコントロール上でマウスホイールをスクロールしたときに送信されます。これは ENM_SCROLL マスクによって制御されます。追加データは送信されません。 |
テキストサービスホストに関連付けられた Input Method Editor (IME) 入力コンテキストを取得します。このメソッドは、オペレーティングシステムのアジア言語版でのみ使用されます。
戻り値
型: HIMC
入力コンテキストのハンドル。
ITextHost::TxImmGetContext メソッドが返した入力コンテキストを解放し、そのコンテキストに関連付けられたメモリのロックを解除します。このメソッドは、オペレーティングシステムのアジア言語版でのみ使用されます。
| himc | HIMC | in | 入力コンテキスト。 |
選択バーのサイズを HIMETRIC で返します。
| lSelBarWidth | INT* | inout | 選択バーの幅(HIMETRIC 単位。つまり単位は 0.01 ミリメートル)。 |
戻り値
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_ITextHost "{}" #usecom global ITextHost IID_ITextHost "{}" #comfunc global ITextHost_TxGetDC 3 #comfunc global ITextHost_TxReleaseDC 4 sptr #comfunc global ITextHost_TxShowScrollBar 5 int,int #comfunc global ITextHost_TxEnableScrollBar 6 int,int #comfunc global ITextHost_TxSetScrollRange 7 int,int,int,int #comfunc global ITextHost_TxSetScrollPos 8 int,int,int #comfunc global ITextHost_TxInvalidateRect 9 var,int #comfunc global ITextHost_TxViewChange 10 int #comfunc global ITextHost_TxCreateCaret 11 sptr,int,int #comfunc global ITextHost_TxShowCaret 12 int #comfunc global ITextHost_TxSetCaretPos 13 int,int #comfunc global ITextHost_TxSetTimer 14 int,int #comfunc global ITextHost_TxKillTimer 15 int #comfunc global ITextHost_TxScrollWindowEx 16 int,int,var,var,sptr,var,int #comfunc global ITextHost_TxSetCapture 17 int #comfunc global ITextHost_TxSetFocus 18 #comfunc global ITextHost_TxSetCursor 19 sptr,int #comfunc global ITextHost_TxScreenToClient 20 var #comfunc global ITextHost_TxClientToScreen 21 var #comfunc global ITextHost_TxActivate 22 var #comfunc global ITextHost_TxDeactivate 23 int #comfunc global ITextHost_TxGetClientRect 24 var #comfunc global ITextHost_TxGetViewInset 25 var #comfunc global ITextHost_TxGetCharFormat 26 var #comfunc global ITextHost_TxGetParaFormat 27 var #comfunc global ITextHost_TxGetSysColor 28 int #comfunc global ITextHost_TxGetBackStyle 29 var #comfunc global ITextHost_TxGetMaxLength 30 var #comfunc global ITextHost_TxGetScrollBars 31 var #comfunc global ITextHost_TxGetPasswordChar 32 var #comfunc global ITextHost_TxGetAcceleratorPos 33 var #comfunc global ITextHost_TxGetExtent 34 var #comfunc global ITextHost_OnTxCharFormatChange 35 var #comfunc global ITextHost_OnTxParaFormatChange 36 var #comfunc global ITextHost_TxGetPropertyBits 37 int,var #comfunc global ITextHost_TxNotify 38 int,sptr #comfunc global ITextHost_TxImmGetContext 39 #comfunc global ITextHost_TxImmReleaseContext 40 sptr #comfunc global ITextHost_TxGetSelectionBarWidth 41 var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_ITextHost "{}" #usecom global ITextHost IID_ITextHost "{}" #comfunc global ITextHost_TxGetDC 3 #comfunc global ITextHost_TxReleaseDC 4 sptr #comfunc global ITextHost_TxShowScrollBar 5 int,int #comfunc global ITextHost_TxEnableScrollBar 6 int,int #comfunc global ITextHost_TxSetScrollRange 7 int,int,int,int #comfunc global ITextHost_TxSetScrollPos 8 int,int,int #comfunc global ITextHost_TxInvalidateRect 9 sptr,int #comfunc global ITextHost_TxViewChange 10 int #comfunc global ITextHost_TxCreateCaret 11 sptr,int,int #comfunc global ITextHost_TxShowCaret 12 int #comfunc global ITextHost_TxSetCaretPos 13 int,int #comfunc global ITextHost_TxSetTimer 14 int,int #comfunc global ITextHost_TxKillTimer 15 int #comfunc global ITextHost_TxScrollWindowEx 16 int,int,sptr,sptr,sptr,sptr,int #comfunc global ITextHost_TxSetCapture 17 int #comfunc global ITextHost_TxSetFocus 18 #comfunc global ITextHost_TxSetCursor 19 sptr,int #comfunc global ITextHost_TxScreenToClient 20 sptr #comfunc global ITextHost_TxClientToScreen 21 sptr #comfunc global ITextHost_TxActivate 22 sptr #comfunc global ITextHost_TxDeactivate 23 int #comfunc global ITextHost_TxGetClientRect 24 sptr #comfunc global ITextHost_TxGetViewInset 25 sptr #comfunc global ITextHost_TxGetCharFormat 26 sptr #comfunc global ITextHost_TxGetParaFormat 27 sptr #comfunc global ITextHost_TxGetSysColor 28 int #comfunc global ITextHost_TxGetBackStyle 29 sptr #comfunc global ITextHost_TxGetMaxLength 30 sptr #comfunc global ITextHost_TxGetScrollBars 31 sptr #comfunc global ITextHost_TxGetPasswordChar 32 sptr #comfunc global ITextHost_TxGetAcceleratorPos 33 sptr #comfunc global ITextHost_TxGetExtent 34 sptr #comfunc global ITextHost_OnTxCharFormatChange 35 sptr #comfunc global ITextHost_OnTxParaFormatChange 36 sptr #comfunc global ITextHost_TxGetPropertyBits 37 int,sptr #comfunc global ITextHost_TxNotify 38 int,sptr #comfunc global ITextHost_TxImmGetContext 39 #comfunc global ITextHost_TxImmReleaseContext 40 sptr #comfunc global ITextHost_TxGetSelectionBarWidth 41 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。