Freigeben über


IDebugHostEvaluator2::AssignTo-Methode (dbgmodel.h)

Die AssignTo-Methode führt Zuweisungen gemäß der Semantik der zu debuggenden Sprache aus.

Syntax

HRESULT AssignTo(
  IModelObject                *assignmentReference,
  IModelObject                *assignmentValue,
  _COM_Errorptr_ IModelObject **assignmentResult,
  IKeyStore                   **assignmentMetadata
);

Parameter

assignmentReference

Ein Verweis auf das Zugewiesene. Dies kann zwar entweder ein modellbasierter Verweis (z. B. ein ObjectTargetObjectReference) oder ein Sprachverweis (z. B. ein C++-&) sein), es muss jedoch ein Bezugstyp (ein LVALUE) sein.

assignmentValue

Der Wert, auf den über das argument assignmentReference verwiesen wird. Beachten Sie, dass dieser Wert möglicherweise entsprechend den Sprachregeln umgewandelt oder konvertiert werden kann, bevor er zugewiesen wird.

assignmentResult

Das Ergebnis der Zuordnung, falls erfolgreich. Wenn nicht, optional, ein erweitertes Fehlerobjekt, das angibt, warum die Zuordnung fehlgeschlagen ist. Beachten Sie, dass das Ergebnis der Zuordnung in diesem Fall das Ergebnis eines Zuordnungsvorgangs ist, was die Sprache als Ergebnis eines Zuordnungsvorgangs definiert. Bei C++ wäre dies ein Sprachverweis auf das zugewiesene Objekt.

assignmentMetadata

Alle optionalen Metadaten, die dem Zuordnungsergebnis zugeordnet sind, werden hier zurückgegeben.

Rückgabewert

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

Bemerkungen

Codebeispiel

ComPtr<IDebugHost> spHost;           /* get the host */
ComPtr<IDataModelManager> spManager; /* get the data model manager */
ComPtr<IModelObject> spObject;       /* get an object; for an example - consider a
                                        'class MyClass' with an integer value 
                                        m_intVal */

ComPtr<IDebugHostEvaluator2> spEval2;
if (SUCCEEDED(spHost.As(&spEval2)))
{
    // Get a reference to the m_intVal field
    ComPtr<IModelObject> spIntValRef;
    if (SUCCEEDED(spObject->GetRawReference(SymbolField, 
                                            L"m_intVal", 
                                            RawSearchNone, 
                                            &spIntValRef)))
    {
        // Box some value we want to assign.
        VARIANT vtVal;
        vtVal.vt = VT_UI8;
        vtVal.ullVal = 123456;

        ComPtr<IModelObject> spAssignmentValue;
        if (SUCCEEDED(spManager->CreateIntrinsicObject(ObjectIntrinsic, 
                                                       &vtVal, 
                                                       &spAssignmentValue)))
        {
            ComPtr<IModelObject> spAssignmentResult;
            if (SUCCEEDED(spEval2->AssignTo(spIntValRef.Get(), 
                                            spAssignmentValue.Get(),
                                            &spAssignmentResult, 
                                            nullptr)))
            {
                // The (unsigned __int64)123456 was assigned to m_intVal with
                // the set of coercions defined by the language (C++)
                // spAssignmentResult has the language meaning of operator=() 
                // in this case.  This would be a MyClass&.
            }
        }
    }
}

Anforderungen

Anforderung Wert
Header- dbgmodel.h

Siehe auch

IDebugHostEvaluator2-Schnittstelle