Freigeben über


IModelObject::SetKey-Methode (dbgmodel.h)

Die SetKey-Methode ist die Methode, an die ein Client sich wendet, um einen Schlüssel für ein Objekt zu erstellen (und möglicherweise Metadaten mit dem erstellten Schlüssel zu verknüpfen). Wenn ein bestimmtes Objekt bereits über einen Schlüssel mit dem angegebenen Namen verfügt, tritt eins von zwei Verhaltensweisen auf. Wenn sich der Schlüssel auf der hier angegebenen Instanz befindet, wird der Wert dieses Schlüssels ersetzt, als wäre der ursprüngliche Schlüssel nicht vorhanden. Wenn sich der Schlüssel andererseits in der Kette der übergeordneten Datenmodelle der instanz befindet, die dadurch angegeben wird, wird ein neuer Schlüssel mit dem angegebenen Namen auf der von diesem angegebenen Instanz erstellt. Dies würde in Der Tat dazu führen, dass das Objekt zwei Schlüssel desselben Namens hat (ähnlich wie eine abgeleitete Klasse, die ein Element desselben Namens wie eine Basisklasse schattiert).

Syntax

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

Parameter

key

Der Name des Schlüssels, für den ein Wert festgelegt werden soll.

object

Der Wert des Schlüssels wird auf das objekt festgelegt, das in diesem Argument enthalten ist.

metadata

Optionale Metadaten, die dem neu festgelegten Schlüssel zugeordnet werden sollen.

Rückgabewert

Diese Methode gibt HRESULT zurück, das Erfolg oder Fehler angibt.

Bemerkungen

Codebeispiel

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

Anforderungen

Anforderung Wert
Header- dbgmodel.h

Siehe auch

IModelObject-Schnittstelle