Freigeben über


IDebugHostEvaluator2::AssignTo-Methode (dbgmodel.h)

Die AssignTo-Methode führt die Zuweisung entsprechend 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 die zugewiesene Sache. Dies kann zwar entweder ein modellbasierter Verweis (z. B. ein ObjectTargetObjectReference) oder ein Sprachverweis (z. B. ein C++-&) sein, aber es muss sich um einen bestimmten Verweistyp (LVALUE) handeln.

assignmentValue

Der Wert, auf den über das Argument assignmentReference verwiesen wird. Beachten Sie, dass dieser Wert vor der Zuweisung ggf. nach Sprachregeln zwangsverordnet oder konvertiert werden kann.

assignmentResult

Das Ergebnis der Zuweisung, falls erfolgreich. Andernfalls optional ein erweitertes Fehlerobjekt, das angibt, warum bei der Zuweisung ein Fehler aufgetreten ist. Beachten Sie, dass das Ergebnis der Zuweisung in diesem Fall das ist, was die Sprache als Ergebnis eines Zuweisungsvorgangs definiert. Für C++ wäre dies ein Sprachverweis auf das zugewiesene Ding.

assignmentMetadata

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

Rückgabewert

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

Hinweise

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

Weitere Informationen

IDebugHostEvaluator2-Schnittstelle