次の方法で共有


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

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

構文

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
}

要件

要件
Header dbgmodel.h

こちらもご覧ください

IModelObject インターフェイス