次の方法で共有


IModelObject::EnumerateRawValues メソッド (dbgmodel.h)

EnumerateRawValues メソッドは、指定されたオブジェクトのすべてのネイティブ子 (フィールド、基底クラスなど) を列挙します。

構文

HRESULT EnumerateRawValues(
  SymbolKind     kind,
  ULONG          searchFlags,
  IRawEnumerator **enumerator
);

パラメーター

kind

フェッチするネイティブ シンボルの種類を示します (基本クラスやデータ メンバーなど)

searchFlags

ネイティブ コンストラクトの検索の動作を指定するフラグのオプション セット。

enumerator

kind 引数で指定された種類のすべてのネイティブ子を IRawEnumerator インターフェイスとして列挙する列挙子。

戻り値

このメソッドは、成功または失敗を示す HRESULT を返します。

注釈

コード サンプル

ComPtr<IModelObject> spMessage; /* get a tagMSG */

ComPtr<IRawEnumerator> spEnum;
if (SUCCEEDED(spMessage->EnumerateRawValues(SymbolField, RawSearchNone, &spEnum)))
{
    HRESULT hr = S_OK;
    while (SUCCEEDED(hr))
    {
        BSTR fieldName;
        SymbolKind symKind;
        ComPtr<IModelObject> spFieldValue;
        hr = spEnum->GetNext(&fieldName, &symbolKind, &spFieldValue);
        if (SUCCEEDED(hr))
        {
            // fieldName contains the name of the field, symKind contains the kind of 
            // symbol matched (SymbolField in this case), spFieldValue contains the value
            // For tagMSG (with symbols), the enumerator should produce field names and 
            // values for 'hwnd', 'message', 'wParam', 'lParam', 'time', and 'pt'
            SysFreeString(fieldName);
        }
    }

    // hr == E_BOUNDS : We hit the end of the enumerator
    // hr == E_ABORT  : There was a user request for an interrupt / propagate that upward immediately
}

要件

要件
Header dbgmodel.h

こちらもご覧ください

IModelObject インターフェイス