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 |