次の方法で共有


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"
        }
    }
}

要件

要件
Header dbgmodel.h

こちらもご覧ください

IModelObject インターフェイス