次の方法で共有


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

SetKey メソッドは、オブジェクトにキーを作成するためにクライアントが設定するメソッドです (また、メタデータを作成されたキーに関連付ける可能性があります)。 特定のオブジェクトに指定された名前のキーが既に含まれている場合は、2 つの動作のいずれかが発生します。 このキーが指定されたインスタンス上にある場合、そのキーの値は元のキーが存在しなかったかのように置き換えられます。 一方、このキーが、このキーによって指定されたインスタンスの親データ モデルのチェーン内にある場合は、指定された名前の新しいキーが、このインスタンスに作成されます。 これにより、実際には、オブジェクトに同じ名前の 2 つのキーが割り当てられます (基底クラスと同じ名前のメンバーをシャドウする派生クラスに似ています)。

構文

HRESULT SetKey(
  PCWSTR       key,
  IModelObject *object,
  IKeyStore    *metadata
);

パラメーター

key

値を設定するキーの名前。

object

キーの値は、この引数に含まれるオブジェクトに設定されます。

metadata

新しく設定されたキーに関連付ける省略可能なメタデータ。

戻り値

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

備考

コード サンプル

ComPtr<IDataModelManager> spManager; /* get the data model manager */

// Create a new object with a property called "Test" with a value of 42.
ComPtr<IModelObject> spNewObject;
if (SUCCEEDED(spManager->CreateSyntheticObject(nullptr, &spNewObject)))
{
    VARIANT vtVal;
    vtVal.vt = VT_I4;
    vtVal.lVal = 42;

    ComPtr<IModelObject> sp42;
    if (SUCCEEDED(spManager->CreateIntrinsicObject(ObjectIntrinsic, &vtVal, &sp42)))
    {
        if (SUCCEEDED(spNewObject->SetKey(L"Test", sp42.Get(), nullptr)))
        {
            // We have placed a static "42" on the new object under the key "Test"
        }
    }
}

必要条件

要件 価値
ヘッダー dbgmodel.h

関連項目

IModelObject インターフェイス