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

ITfRange

COM
IIDaa80e7ff-2021-11d2-93e0-0060b067b86e継承元IUnknown自前メソッド開始 vtbl3

メソッド 22

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

vtbl 3 HRESULT GetText(DWORD ec, DWORD dwFlags, LPWSTR pchText, DWORD cchMax, DWORD* pcch)
ecDWORDin読み取りアクセスが許可された編集クッキーを指定する。
dwFlagsDWORDinテキスト取得の動作を制御するフラグを指定する。TF_TF_MOVESTART を指定すると取得後に開始位置を移動する。
pchTextLPWSTRout取得したテキストを格納するバッファへのポインタである。
cchMaxDWORDinpchText バッファに格納できる最大文字数を指定する。
pcchDWORD*out実際にバッファへ書き込まれた文字数を受け取るポインタである。
vtbl 4 HRESULT SetText(DWORD ec, DWORD dwFlags, LPWSTR pchText, INT cch)
ecDWORDin書き込みアクセスが許可された編集クッキーを指定する。
dwFlagsDWORDinテキスト設定の動作を制御するフラグを指定する。TF_ST_CORRECTION を指定すると修正として扱う。
pchTextLPWSTRin範囲に設定する Unicode テキストへのポインタである。範囲を空にする場合は NULL を指定する。
cchINTinpchText のテキスト長を文字数で指定する。
vtbl 5 HRESULT GetFormattedText(DWORD ec, IDataObject** ppDataObject)
ecDWORDin読み取りアクセスが許可された編集クッキーを指定する。
ppDataObjectIDataObject**out範囲の書式付きテキストを保持する IDataObject インターフェイスを受け取るポインタである。
vtbl 6 HRESULT GetEmbedded(DWORD ec, GUID* rguidService, GUID* riid, IUnknown** ppunk)
ecDWORDin読み取りアクセスが許可された編集クッキーを指定する。
rguidServiceGUID*in取得対象の埋め込みオブジェクトのサービスを識別する GUID へのポインタである。
riidGUID*in取得するオブジェクトのインターフェイス識別子 (IID) へのポインタである。
ppunkIUnknown**out要求したインターフェイスを持つ埋め込みオブジェクトを受け取るポインタである。
vtbl 7 HRESULT InsertEmbedded(DWORD ec, DWORD dwFlags, IDataObject* pDataObject)
ecDWORDin書き込みアクセスが許可された編集クッキーを指定する。
dwFlagsDWORDin埋め込みオブジェクト挿入の動作を制御するフラグを指定する。
pDataObjectIDataObject*in挿入する埋め込みオブジェクトのデータを保持する IDataObject へのポインタである。
vtbl 8 HRESULT ShiftStart(DWORD ec, INT cchReq, INT* pcch, TF_HALTCOND* pHalt)
ecDWORDin読み取りアクセスが許可された編集クッキーを指定する。
cchReqINTin範囲の開始位置を移動する文字数を指定する。正の値で後方、負の値で前方へ移動する。
pcchINT*out実際に移動した文字数を受け取るポインタである。
pHaltTF_HALTCOND*in移動を停止させる条件を指定する TF_HALTCOND 構造体へのポインタである。不要な場合は NULL を指定できる。
vtbl 9 HRESULT ShiftEnd(DWORD ec, INT cchReq, INT* pcch, TF_HALTCOND* pHalt)
ecDWORDin読み取りアクセスが許可された編集クッキーを指定する。
cchReqINTin範囲の終了位置を移動する文字数を指定する。正の値で後方、負の値で前方へ移動する。
pcchINT*out実際に移動した文字数を受け取るポインタである。
pHaltTF_HALTCOND*in移動を停止させる条件を指定する TF_HALTCOND 構造体へのポインタである。不要な場合は NULL を指定できる。
vtbl 10 HRESULT ShiftStartToRange(DWORD ec, ITfRange* pRange, TfAnchor aPos)
ecDWORDin読み取りアクセスが許可された編集クッキーを指定する。
pRangeITfRange*in開始位置の移動先を示す参照用の ITfRange へのポインタである。
aPosTfAnchorinpRange のどちらのアンカー (開始/終了) に合わせるかを示す TfAnchor の値である。
vtbl 11 HRESULT ShiftEndToRange(DWORD ec, ITfRange* pRange, TfAnchor aPos)
ecDWORDin読み取りアクセスが許可された編集クッキーを指定する。
pRangeITfRange*in終了位置の移動先を示す参照用の ITfRange へのポインタである。
aPosTfAnchorinpRange のどちらのアンカー (開始/終了) に合わせるかを示す TfAnchor の値である。
vtbl 12 HRESULT ShiftStartRegion(DWORD ec, TfShiftDir dir, BOOL* pfNoRegion)
ecDWORDin読み取りアクセスが許可された編集クッキーを指定する。
dirTfShiftDirinリージョン境界へ移動する方向を示す TfShiftDir の値である。
pfNoRegionBOOL*out移動先にリージョンが存在せず移動できなかったか否かを受け取るポインタである。
vtbl 13 HRESULT ShiftEndRegion(DWORD ec, TfShiftDir dir, BOOL* pfNoRegion)
ecDWORDin読み取りアクセスが許可された編集クッキーを指定する。
dirTfShiftDirinリージョン境界へ移動する方向を示す TfShiftDir の値である。
pfNoRegionBOOL*out移動先にリージョンが存在せず移動できなかったか否かを受け取るポインタである。
vtbl 14 HRESULT IsEmpty(DWORD ec, BOOL* pfEmpty)
ecDWORDin読み取りアクセスが許可された編集クッキーを指定する。
pfEmptyBOOL*outこの範囲が空 (開始と終了が同一位置) であるか否かを受け取るポインタである。
vtbl 15 HRESULT Collapse(DWORD ec, TfAnchor aPos)
ecDWORDin読み取りアクセスが許可された編集クッキーを指定する。
aPosTfAnchorin範囲を縮退させる基準となるアンカー位置を示す TfAnchor の値である。
vtbl 16 HRESULT IsEqualStart(DWORD ec, ITfRange* pWith, TfAnchor aPos, BOOL* pfEqual)
ecDWORDin読み取りアクセスが許可された編集クッキーを指定する。
pWithITfRange*in比較対象の ITfRange へのポインタである。
aPosTfAnchorinpWith のどちらのアンカーと比較するかを示す TfAnchor の値である。
pfEqualBOOL*outこの範囲の開始位置が比較対象のアンカーと一致するか否かを受け取るポインタである。
vtbl 17 HRESULT IsEqualEnd(DWORD ec, ITfRange* pWith, TfAnchor aPos, BOOL* pfEqual)
ecDWORDin読み取りアクセスが許可された編集クッキーを指定する。
pWithITfRange*in比較対象の ITfRange へのポインタである。
aPosTfAnchorinpWith のどちらのアンカーと比較するかを示す TfAnchor の値である。
pfEqualBOOL*outこの範囲の終了位置が比較対象のアンカーと一致するか否かを受け取るポインタである。
vtbl 18 HRESULT CompareStart(DWORD ec, ITfRange* pWith, TfAnchor aPos, INT* plResult)
ecDWORDin読み取りアクセスが許可された編集クッキーを指定する。
pWithITfRange*in比較対象の ITfRange へのポインタである。
aPosTfAnchorinpWith のどちらのアンカーと比較するかを示す TfAnchor の値である。
plResultINT*out比較結果を受け取るポインタである。負/0/正の値で前後関係を示す。
vtbl 19 HRESULT CompareEnd(DWORD ec, ITfRange* pWith, TfAnchor aPos, INT* plResult)
ecDWORDin読み取りアクセスが許可された編集クッキーを指定する。
pWithITfRange*in比較対象の ITfRange へのポインタである。
aPosTfAnchorinpWith のどちらのアンカーと比較するかを示す TfAnchor の値である。
plResultINT*out比較結果を受け取るポインタである。負/0/正の値で前後関係を示す。
vtbl 20 HRESULT AdjustForInsert(DWORD ec, DWORD cchInsert, BOOL* pfInsertOk)
ecDWORDin書き込みアクセスが許可された編集クッキーを指定する。
cchInsertDWORDin挿入を想定する文字数を指定する。
pfInsertOkBOOL*outこの範囲への挿入が許可されるか否かを受け取るポインタである。
vtbl 21 HRESULT GetGravity(TfGravity* pgStart, TfGravity* pgEnd)
pgStartTfGravity*out開始アンカーのグラビティ (挿入時の付着方向) を受け取る TfGravity へのポインタである。
pgEndTfGravity*out終了アンカーのグラビティ (挿入時の付着方向) を受け取る TfGravity へのポインタである。
vtbl 22 HRESULT SetGravity(DWORD ec, TfGravity gStart, TfGravity gEnd)
ecDWORDin書き込みアクセスが許可された編集クッキーを指定する。
gStartTfGravityin開始アンカーに設定するグラビティを示す TfGravity の値である。
gEndTfGravityin終了アンカーに設定するグラビティを示す TfGravity の値である。
vtbl 23 HRESULT Clone(ITfRange** ppClone)
ppCloneITfRange**outこの範囲と同じ位置を指す複製された ITfRange インターフェイスを受け取るポインタである。
vtbl 24 HRESULT GetContext(ITfContext** ppContext)
ppContextITfContext**outこの範囲が属するコンテキストを表す ITfContext インターフェイスを受け取るポインタである。

HSP用 COM定義

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

出力引数:
#define global IID_ITfRange "{AA80E7FF-2021-11D2-93E0-0060B067B86E}"
#usecom global ITfRange IID_ITfRange "{}"
#comfunc global ITfRange_GetText            3 int,int,var,int,var
#comfunc global ITfRange_SetText            4 int,int,wstr,int
#comfunc global ITfRange_GetFormattedText   5 int,sptr
#comfunc global ITfRange_GetEmbedded        6 int,var,var,sptr
#comfunc global ITfRange_InsertEmbedded     7 int,int,sptr
#comfunc global ITfRange_ShiftStart         8 int,int,var,var
#comfunc global ITfRange_ShiftEnd           9 int,int,var,var
#comfunc global ITfRange_ShiftStartToRange  10 int,sptr,int
#comfunc global ITfRange_ShiftEndToRange    11 int,sptr,int
#comfunc global ITfRange_ShiftStartRegion   12 int,int,var
#comfunc global ITfRange_ShiftEndRegion     13 int,int,var
#comfunc global ITfRange_IsEmpty            14 int,var
#comfunc global ITfRange_Collapse           15 int,int
#comfunc global ITfRange_IsEqualStart       16 int,sptr,int,var
#comfunc global ITfRange_IsEqualEnd         17 int,sptr,int,var
#comfunc global ITfRange_CompareStart       18 int,sptr,int,var
#comfunc global ITfRange_CompareEnd         19 int,sptr,int,var
#comfunc global ITfRange_AdjustForInsert    20 int,int,var
#comfunc global ITfRange_GetGravity         21 var,var
#comfunc global ITfRange_SetGravity         22 int,int,int
#comfunc global ITfRange_Clone              23 sptr
#comfunc global ITfRange_GetContext         24 sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。