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

EnumerateKeyValues メソッドは、オブジェクトのすべてのキーを列挙するためにクライアントが最初に使用するメソッドです (これには、親モデルのツリー内の任意の場所に実装されているすべてのキーが含まれます)。 EnumerateKeyValues では、オブジェクト ツリー内の重複する名前で定義されているすべてのキーが列挙されることに注意してください。ただし、GetKeyValue や SetKeyValue などのメソッドは、深さ優先トラバーサルによって検出された名前のキーの最初のインスタンスのみを操作します。

構文

HRESULT EnumerateKeyValues(
  IKeyEnumerator **enumerator
);

パラメーター

enumerator

オブジェクトのすべてのキー (およびそのすべての親モデル) とその値とメタデータの列挙子は、IKeyEnumerator としてこの引数で返されます。

戻り値

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

備考

コード サンプル

ComPtr<IModelObject> spObject; /* get the object you want to enumerate */

ComPtr<IKeyEnumerator> spEnum;
if (SUCCEEDED(spObject->EnumerateKeyValues(&spEnum)))
{
    HRESULT hr = S_OK;
    while (SUCCEEDED(hr))
    {
        BSTR keyName;
        ComPtr<IModelObject> spKeyValue;
        hr = spEnum->GetNext(&keyName, &spKeyValue, nullptr);
        if (SUCCEEDED(hr))
        {
            // keyName contains the name of the key
            // spKeyValue contains the value of the key

            SysFreeString(keyName);
        }
    }

    // hr == E_BOUNDS  : We hit the end of the enumerator
    // hr == E_ABORT   : User is requesting interruption of the 
    // operation / stop immediately and flow the error
}

必要条件

要件 価値
ヘッダー dbgmodel.h

関連項目

IModelObject インターフェイス