Partager via


Méthode IDebugHostEvaluator2 ::AssignTo (dbgmodel.h)

La méthode AssignTo effectue l’affectation en fonction de la sémantique du langage débogué.

Syntaxe

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

Paramètres

assignmentReference

Référence à la chose affectée. Bien qu’il puisse s’agir d’une référence basée sur un modèle (par exemple, une référence ObjectTargetObjectReference) ou d’une référence de langage (par exemple, une & C++), il doit s’agir d’un type de référence (une LVALUE).

assignmentValue

Valeur affectée à ce qui est référencé via l’argument assignmentReference. Notez que cette valeur peut être convertie sous la force ou en fonction des règles de langue avant d’être affectée.

assignmentResult

Résultat de l’affectation, en cas de réussite. Si ce n’est pas le cas, éventuellement, un objet d’erreur étendu indiquant la raison de l’échec de l’affectation. Notez que le résultat de l’affectation dans ce cas correspond à ce que la langue définit comme le résultat d’une opération d’affectation. Pour C++, il s’agit d’une référence de langage à la chose affectée.

assignmentMetadata

Toutes les métadonnées facultatives associées au résultat de l’affectation sont retournées ici.

Valeur retournée

Cette méthode retourne HRESULT qui indique la réussite ou l’échec.

Remarques

Exemple de code

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&.
            }
        }
    }
}

Configuration requise

Condition requise Valeur
En-tête dbgmodel.h

Voir aussi

Interface IDebugHostEvaluator2