Win32 API 日本語リファレンス
ホームUI.Controls.RichEdit › ITextStrings

ITextStrings

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

公式ドキュメント

ITextStrings インターフェイスは、リッチテキストの操作に役立つリッチテキスト文字列のコレクションを表します。

メソッド 17

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

vtbl 7 HRESULT Item(INT Index, ITextRange2** ppRange)

文字列コレクション内の選択したインデックスに対応する ITextRange2 オブジェクトを取得します。

IndexINTin取得する文字列のインデックス。既定値は 1 です。
ppRangeITextRange2**out範囲を受け取るオブジェクト。

戻り値

Type: HRESULT

メソッドが成功した場合は NOERROR を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

最初の文字列は Index = 1 に対応し、最後の文字列は ITextStrings_GetCount によって得られる Count に対応します。

vtbl 8 HRESULT GetCount(INT* pCount)

文字列コレクション内の文字列の数を取得します。

pCountINT*out文字列の数。

戻り値

Type: HRESULT

メソッドが成功した場合は NOERROR を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 9 HRESULT Add(LPWSTR bstr)

コレクションの末尾に文字列を追加します。

bstrLPWSTRin文字列。null 文字列の場合は値を NULL にできます。

戻り値

Type: HRESULT

メソッドが成功した場合は S_OK を返します。メソッドが失敗した場合は、次の COM エラーコードのいずれかを返します。COM エラーコードの詳細については、Error Handling in COM を参照してください。

Return code Description
E_INVALIDARG
引数が無効です。
E_OUTOFMEMORY
メモリが不足しています。

解説(Remarks)

コレクションの末尾に項目を追加することは、パラメーターをスタックにプッシュすることに似ています。

vtbl 10 HRESULT Append(ITextRange2* pRange, INT iString)

コレクション内の指定したインデックスにある文字列に、文字列を追加します。

pRangeITextRange2*inoptional追加する文字列。
iStringINTin文字列のインデックス。

戻り値

Type: HRESULT

メソッドが成功した場合は S_OK を返します。メソッドが失敗した場合は、次の COM エラーコードのいずれかを返します。COM エラーコードの詳細については、Error Handling in COM を参照してください。

Return code Description
E_INVALIDARG
引数が無効です。
E_OUTOFMEMORY
メモリが不足しています。

解説(Remarks)

インデックスはコレクションの先頭を基準とします。したがって、iString が 0 の場合、文字列は先頭に挿入されます。iString が –1 の場合は先頭の文字列の下に挿入され、以降も同様です。

vtbl 11 HRESULT Cat2(INT iString)

2 つの文字列を連結します。

iStringINTin文字列。

戻り値

Type: HRESULT

メソッドが成功した場合は NOERROR を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 12 HRESULT CatTop2(LPWSTR bstr)

コレクション内の先頭 2 つの文字列の間にテキストを挿入します。

bstrLPWSTRin挿入するテキスト。値は NULL にできます。

戻り値

Type: HRESULT

メソッドが成功した場合は NOERROR を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 13 HRESULT DeleteRange(ITextRange2* pRange)

指定した範囲の内容を削除します。

pRangeITextRange2*inoptional削除する範囲。

戻り値

Type: HRESULT

メソッドが成功した場合は S_OK を返します。メソッドが失敗した場合は、次の COM エラーコードのいずれかを返します。COM エラーコードの詳細については、Error Handling in COM を参照してください。

Return code Description
S_FALSE
範囲が縮退していません。
E_OUTOFMEMORY
メモリが不足しています。

解説(Remarks)

範囲によって選択されたテキストが文字列に完全に含まれていない場合、メソッドは失敗します。

vtbl 14 HRESULT EncodeFunction(INT Type, INT Align, INT Char, INT Char1, INT Char2, INT Count, INT TeXStyle, INT cCol, ITextRange2* pRange)

引数文字列のセットを指定してオブジェクトをエンコードします。

TypeINTinオブジェクトの種類。定義の一覧については、ITextRange2::GetInlineObject を参照してください。
AlignINTinオブジェクトの配置。定義の一覧については、ITextRange2::GetInlineObject を参照してください。
CharINTinオブジェクトの文字。
Char1INTinオブジェクトの文字。
Char2INTinオブジェクトの文字。
CountINTin連結する文字列(引数)の数。
TeXStyleINTinTeX スタイル。
cColINTin列の数(tomArray のみ)。
pRangeITextRange2*inoptional目的の書式を指す範囲。

戻り値

Type: HRESULT

メソッドが成功した場合は NOERROR を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

引数の詳しい説明については、ITextRange2::GetInlineObject を参照してください。

vtbl 15 HRESULT GetCch(INT iString, INT* pcch)

選択した文字列インデックスの文字数を取得します。

iStringINTin文字列のインデックス。
pcchINT*out文字列の文字数。

戻り値

Type: HRESULT

メソッドが成功した場合は NOERROR を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

インデックスはコレクションの先頭を基準とします。したがって、iString = 0 は先頭の文字列の文字数を返し、iString = –1 は先頭の文字列の下にある文字列の文字数を返し、以降も同様です。

vtbl 16 HRESULT InsertNullStr(INT iString)

選択した文字列インデックスの位置に、コレクション内へ NULL 文字列を挿入します。

iStringINTin文字列のインデックス。

戻り値

Type: HRESULT

メソッドが成功した場合は NOERROR を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

インデックスはコレクションの先頭を基準とします。したがって、iString = 0 は先頭に NULL 文字列を挿入し、iString = –1 は先頭の文字列の下に挿入し、以降も同様です。

vtbl 17 HRESULT MoveBoundary(INT iString, INT cch)

インデックスで指定した文字列の開始境界を、選択した文字数分だけ移動します。

iStringINTin文字列のインデックス。
cchINTin境界を移動する文字数。

戻り値

Type: HRESULT

メソッドが成功した場合は NOERROR を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

インデックスはコレクションの先頭を基準とします。したがって、iString = 0 は先頭の文字列の境界を移動し、iString = –1 は先頭の文字列の下にある文字列の境界を移動し、以降も同様です。

vtbl 18 HRESULT PrefixTop(LPWSTR bstr)

コレクション内の先頭の文字列の前に文字列を付加します。

bstrLPWSTRinコレクションの前に付加する文字列。

戻り値

Type: HRESULT

メソッドが成功した場合は S_OK を返します。メソッドが失敗した場合は、次の COM エラーコードのいずれかを返します。COM エラーコードの詳細については、Error Handling in COM を参照してください。

Return code Description
E_OUTOFMEMORY
メモリが不足しています。
vtbl 19 HRESULT Remove(INT iString, INT cString)

インデックスから始めて、文字列コレクションから文字列を削除します。

iStringINTin文字列のインデックス。
cStringINTin削除する文字列の数。

戻り値

Type: HRESULT

メソッドが成功した場合は S_OK を返します。メソッドが失敗した場合は、次の COM エラーコードのいずれかを返します。COM エラーコードの詳細については、Error Handling in COM を参照してください。

Return code Description
E_INVALIDARG
引数が無効です。

解説(Remarks)

インデックスはコレクションの先頭を基準とします。したがって、iString = 0 は先頭の文字列を削除し(cString は 1 でなければなりません)、iString = –1 は先頭の文字列の下にある文字列を削除します(cString = 2 の場合は先頭の文字列も削除します)。以降も同様です。

vtbl 20 HRESULT SetFormattedText(ITextRange2* pRangeD, ITextRange2* pRangeS)

テキストを書式付きテキストに置き換えます。

pRangeDITextRange2*inoptional置き換えられるテキスト。
pRangeSITextRange2*inoptional書式付きテキスト。

戻り値

Type: HRESULT

メソッドが成功した場合は S_OK を返します。メソッドが失敗した場合は、次の COM エラーコードのいずれかを返します。COM エラーコードの詳細については、Error Handling in COM を参照してください。

Return code Description
E_INVALIDARG
引数が無効です。
E_OUTOFMEMORY
メモリが不足しています。
vtbl 21 HRESULT SetOpCp(INT iString, INT cp)

目的の文字書式属性を持つ、ソース範囲のストーリー内の文字位置を設定します。

iStringINTin文字位置に関連付ける文字列のインデックス。
cpINTin目的の文字書式を持つ、ソース範囲のストーリー内の文字位置。

戻り値

Type: HRESULT

メソッドが成功した場合は S_OK を返します。メソッドが失敗した場合は、次の COM エラーコードのいずれかを返します。COM エラーコードの詳細については、Error Handling in COM を参照してください。

Return code Description
E_INVALIDARG
引数が無効です。
vtbl 22 HRESULT SuffixTop(LPWSTR bstr, ITextRange2* pRange)

コレクション内の先頭の文字列の後ろに文字列を付加します。

bstrLPWSTRin先頭の文字列の後ろに付加するテキスト。
pRangeITextRange2*inoptional目的の文字書式を持つ範囲。

戻り値

Type: HRESULT

メソッドが成功した場合は S_OK を返します。メソッドが失敗した場合は、次の COM エラーコードのいずれかを返します。COM エラーコードの詳細については、Error Handling in COM を参照してください。

Return code Description
E_OUTOFMEMORY
メモリが不足しています。

解説(Remarks)

このメソッドは ITextStrings::Append に似ていますが、範囲ではなく文字列を追加します。

vtbl 23 HRESULT Swap()

コレクション内の先頭 2 つの文字列を入れ替えます。

戻り値

Type: HRESULT

メソッドが成功した場合は NOERROR を返します。それ以外の場合は HRESULT エラーコードを返します。

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_ITextStrings "{C241F5E7-7206-11D8-A2C7-00A0D1D6C6B3}"
#usecom global ITextStrings IID_ITextStrings "{}"
#comfunc global ITextStrings_Item              7 int,sptr
#comfunc global ITextStrings_GetCount          8 var
#comfunc global ITextStrings_Add               9 wstr
#comfunc global ITextStrings_Append            10 sptr,int
#comfunc global ITextStrings_Cat2              11 int
#comfunc global ITextStrings_CatTop2           12 wstr
#comfunc global ITextStrings_DeleteRange       13 sptr
#comfunc global ITextStrings_EncodeFunction    14 int,int,int,int,int,int,int,int,sptr
#comfunc global ITextStrings_GetCch            15 int,var
#comfunc global ITextStrings_InsertNullStr     16 int
#comfunc global ITextStrings_MoveBoundary      17 int,int
#comfunc global ITextStrings_PrefixTop         18 wstr
#comfunc global ITextStrings_Remove            19 int,int
#comfunc global ITextStrings_SetFormattedText  20 sptr,sptr
#comfunc global ITextStrings_SetOpCp           21 int,int
#comfunc global ITextStrings_SuffixTop         22 wstr,sptr
#comfunc global ITextStrings_Swap              23
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。
; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。