次の方法で共有


ITfReadOnlyProperty::EnumRanges メソッド (msctf.h)

指定された範囲内の プロパティの一意の値を含む範囲の列挙を取得します。

構文

HRESULT EnumRanges(
  [in]  TfEditCookie  ec,
  [out] IEnumTfRanges **ppEnum,
  [in]  ITfRange      *pTargetRange
);

パラメーター

[in] ec

編集コンテキストを識別する編集 Cookie が含まれています。 これは、 ITfDocumentMgr::CreateContext または ITfEditSession::D oEditSession から取得されます。

[out] ppEnum

列挙子オブジェクトを受け取る IEnumTfRanges インターフェイス ポインターへのポインター。 呼び出し元は、不要になったときにこのオブジェクトを解放する必要があります。

[in] pTargetRange

一意のプロパティ値をスキャンする範囲を指定する ITfRange インターフェイスへのポインター。 このパラメーターは省略可能であり、 NULL にすることができます。 詳細については、「解説」を参照してください。

戻り値

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

説明
S_OK
メソッドは正常に実行されました。
E_INVALIDARG
1 つ以上のパラメーターが無効です。
E_OUTOFMEMORY
メモリ割り当てエラーが発生しました。
E_FAIL
未指定のエラーが発生しました。
メモ アプリケーションで ITextStoreACP::FindNextAttrTransition が実装されていない場合、ITfReadOnlyProperty::EnumRanges はE_FAILで失敗します。
 
TF_E_NOLOCK
ec によって識別される編集コンテキストには、読み取り専用または読み取り/書き込みロックがありません。

解説

メモ: アプリケーションで ITextStoreACP::FindNextAttrTransition が実装されていない場合、 ITfReadOnlyProperty::EnumRanges は E_FAILで失敗します。

このメソッドによって取得された列挙子には、指定されたプロパティの空の値を含む一意の値ごとに範囲が含まれます。 たとえば、架空の色のプロパティは、次のマークアップされたテキストに適用できます。


COLOR:      RR      GGGGGGGG
TEXT:  this is some colored text

この範囲に pTargetRange を設定して ITfReadOnlyProperty::EnumRanges を呼び出すと、列挙子には 5 つの範囲が含まれます。

範囲インデックス Color プロパティの値 範囲テキスト
0 <empty> "this"
1 R "is"
2 <empty> " some "
3 G "色付き"
4 <empty> "text"
 

pTargetRangeNULL の場合、列挙子は、コンテキスト内の空でないプロパティ値を含む最初と最後の範囲で開始および終了します。 上記の例で pTargetRangeNULL を指定すると、3 つの範囲を持つ列挙子が生成されます。

範囲インデックス Color プロパティの値 範囲内のテキスト
0 R "is"
1 <empty> " some "
2 G "色付き"
 

列挙された範囲は、いずれかのアンカーがプロパティの中央に配置されている場合でも、 pTargetRange の開始アンカーと終了アンカーで開始および終了します。

要件

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

関連項目

IEnumTfRanges

ITfDocumentMgr::CreateContext

ITfEditSession::D oEditSession

ITfRange

ITfReadOnlyProperty