ITextRange::MoveWhile メソッド (tom.h)

範囲の指定した末尾から開始し、 文字が Cset で指定されたセットに属し、文字数が Count 以下である間に検索します。 一致しない文字が見つかった場合、範囲はカーソルまで折りたたまれます。

構文

HRESULT MoveWhile(
  VARIANT *Cset,
  long    Count,
  long    *pDelta
);

パラメーター

Cset

型: VARIANT*

一致で使用する文字セット。 これは、文字の明示的な文字列または文字セット インデックスである可能性があります。 詳細については、「 文字一致セット」を参照してください。

Count

型: long

過去に移動する最大文字数。 既定値は tomForward で、ストーリーの末尾まで検索されます。 Count が 0 未満の場合、検索は開始位置から開始され、ストーリーの先頭に向かって後方に移動します。 Count が 0 より大きい場合、検索は終了位置から始まり、ストーリーの末尾に向かって進みます。

pDelta

型: long*

末尾の実際の文字数が移動されます。 このパラメーターには、null を指定できます。

戻り値

型: HRESULT

メソッドは HRESULT 値を返します。 メソッドが成功すると、 S_OKが返されます。 メソッドが失敗した場合は、次のいずれかのエラー コードが返されます。 COM エラー コードの詳細については、「COM でのエラー処理」を参照してください。

リターン コード 説明
E_INVALIDARG
Cset が無効です。
S_FALSE
何らかの理由でエラーが発生しました。

注釈

ITextRange::MoveUntil によって記述されるモーションは、幾何学的ではなく論理的です。 つまり、モーションは、ストーリーの末尾または開始に向かって行います。 言語によっては、ストーリーの最後に移動すると、左に移動したり、右に移動したりする場合があります。

詳細については、ITextRange のディスカッションと ITextRange::Move の「解説」セクションを参照してください。

ITextRange::MoveWhile メソッドは ITextRange::MoveUntil に似ていますが、MoveWhileCset で指定されたセットのメンバーを検索し、pDelta 値に追加のインクリメントがない限り検索します。

ITextRange::MoveStartWhile メソッドと ITextRange::MoveEndWhile メソッドは、それぞれ、Cset パラメーターで指定された一連の文字で見つかったすべての連続する文字の後に開始文字と終了文字を移動します。

VARIANT 型は、主に Microsoft Visual Basic for Applications (VBA) などの IDispatch シナリオで使用することを目的としていますが、C または C++ からも簡単に使用できます。 次の C++ コードは、範囲 r 内の数字のスパンを照合するために VARIANT 引数を初期化して使用する方法を示しています。

VariantInit(&varg);
varg.vt = VT_I4;
varg.lVal = C1_DIGIT;
hr = r.MoveWhile(&varg, tomForward, pDelta); // Move IP past span of digits

または、次の例のように、明示的な文字列を使用することもできます。

VariantInit(&varg);
bstr = SysAllocString("0123456789");
varg.vt = VT_BSTR;
varg.bstr = bstr;
hr =r.MoveWhile(&varg, tomForward, pDelta);    // Move IP past span of digits

次の VBA コード例は、範囲 r の次の標準汎用マークアップ言語 (SGML) エントリの本文と一致します。 SGML エントリは で <keyword ...> 始まり、 で終わるのは </ keyword>です。

r.Find <                  // Get to start of next tag
r.MoveWhile C1_SPACE      // Bypass any space characters
r.MoveEndWhile C1_ALPHA   // Match keyword
s$ = </ + r               // Create VBA string to search for
r.Find >                  // Bypass remainder of start tag
r.FindEnd s$              // Match up to end of closing keyword
r.FindEnd <, tomStart     // Back up to start of end tag
                          // r has body of SGML entry
                           

要件

要件
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー tom.h
[DLL] Msftedit.dll

関連項目

概念

ITextRange

移動

MoveEndWhile

MoveStartWhile

MoveUntil

リファレンス

Text オブジェクト モデル