IModelObject::SetKey-Methode (dbgmodel.h)

Die SetKey-Methode ist die Methode, die ein Client verwendet, um einen Schlüssel für ein Objekt zu erstellen (und dem erstellten Schlüssel möglicherweise Metadaten zuzuordnen). Wenn ein bestimmtes Objekt bereits über einen Schlüssel mit dem angegebenen Namen verfügt, tritt eines von zwei Verhaltensweisen auf. Wenn sich der Schlüssel auf der instance befindet, die dadurch angegeben wird, wird der Wert dieses Schlüssels so ersetzt, als ob der ursprüngliche Schlüssel nicht vorhanden wäre. Befindet sich der Schlüssel hingegen in der Kette der übergeordneten Datenmodelle des instance, so wird ein neuer Schlüssel mit dem angegebenen Namen auf dem instance erstellt. Dies würde in der Tat dazu führen, dass das Objekt zwei Schlüssel mit demselben Namen besitzt (ähnlich wie eine abgeleitete Klasse, die ein Element mit demselben Namen wie eine Basisklasse überschatten würde).

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 in diesem Argument enthaltene Objekt festgelegt.

metadata

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

Rückgabewert

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

Hinweise

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

Weitere Informationen

IModelObject-Schnittstelle