ITfRange::SetText メソッド (msctf.h)

ITfRange::SetText メソッドは、テキスト範囲の対象となるコンテンツを置き換えます。 空の範囲オブジェクトの場合、 メソッドは範囲の位置に挿入されます。 新しいコンテンツが空の文字列 (cch = 0) の場合、メソッドは範囲内の既存のコンテンツを削除します。

構文

HRESULT SetText(
  [in] TfEditCookie ec,
  [in] DWORD        dwFlags,
  [in] const WCHAR  *pchText,
  [in] LONG         cch
);

パラメーター

[in] ec

ITfDocumentMgr::CreateContext または ITfEditSession::D oEditSession から取得した編集コンテキストを識別します。

[in] dwFlags

コンテンツを修正するためのオプションの動作を指定します。 TF_ST_CORRECTIONの値に設定すると、操作は既存のコンテンツの修正であり、新しいコンテンツの作成ではなく、元のテキスト プロパティが保持されます。

[in] pchText

範囲の内容を置き換えるテキストを含むバッファーへのポインター。

[in] cch

pchText の文字数を格納します。

戻り値

このメソッドは、これらの値のいずれかを返すことができます。

説明
S_OK
メソッドは正常に実行されました。
E_FAIL
未指定のエラーが発生しました。
E_INVALIDARG
1 つ以上のパラメーターが無効です。
TF_E_COMPOSITION_REJECTED
コンテキスト所有者が既定のコンポジションを拒否しました。
TF_E_NOLOCK
ec パラメーターの値が無効な Cookie であるか、呼び出し元に読み取り/書き込みロックがありません。
TF_E_RANGE_NOT_COVERED
範囲が呼び出し元のアクティブな構成内にありません。

解説

範囲が複数のリージョンをカバーしている場合は、各リージョンで ITfRange::SetText を個別に呼び出します。 それ以外の場合、メソッドは失敗する可能性があります。

既定では、テキスト サービスは範囲をカバーする一時的なコンポジションを開始および終了し、コンテキスト所有者が編集されたテキストに対してコンポジションを一貫して認識できるようにします。 コンポジション所有者が既定のコンポジションを拒否した場合、メソッドは TF_E_COMPOSITION_REJECTEDを返します。 既定のコンポジションは、呼び出し元がまだ開始されていない場合にのみ作成されます。 呼び出し元にアクティブなコンポジションがある場合、呼び出しは失敗します。

TF_CHAR_EMBEDDED オブジェクト プレースホルダー文字は、このメソッドに渡されない可能性があります。 代わりに ITfRange::InsertEmbedded を使用する必要があります。

テキストを挿入する場合、 ITFInsertAtSelection:InsertTextAtSelection メソッドは選択範囲を割り当てる必要がないため、範囲が選択範囲と一致するという要件を回避します。

要件

   
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリ |UWP アプリ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリ |UWP アプリ]
対象プラットフォーム Windows
ヘッダー msctf.h
[DLL] Msctf.dll
再頒布可能パッケージ Windows 2000 Professional の TSF 1.0

関連項目

ITFInsertAtSelection:InsertTextAtSelection

ITfDocumentMgr::CreateContext

ITfEditSession::D oEditSession

ITfRange

ITfRange::GetText

ITfRange::InsertEmbedded

その他のフレームワーク定数

テキスト ストア