IDebugHostEvaluator2 ::AssignTo, méthode (dbgmodel.h)
La méthode AssignTo effectue une affectation en fonction de la sémantique du langage en cours de débogage.
Syntaxe
HRESULT AssignTo(
IModelObject *assignmentReference,
IModelObject *assignmentValue,
_COM_Errorptr_ IModelObject **assignmentResult,
IKeyStore **assignmentMetadata
);
Paramètres
assignmentReference
Référence à la chose affectée. Bien que cela puisse être une référence basée sur un modèle (par exemple, un ObjectTargetObjectReference) ou une référence de langage (par exemple, un &C++), il doit s’agir d’un type de référence (un LVALUE).
assignmentValue
Valeur affectée à ce qui est référencé via l’argument assignmentReference. Notez que cette valeur peut être cochée ou convertie en fonction des règles de langue avant d’être assignée.
assignmentResult
Résultat de l’affectation, en cas de réussite. Si ce n’est pas le cas, si vous le souhaitez, un objet d’erreur étendu indiquant pourquoi l’affectation a échoué. Notez que le résultat de l’affectation dans ce cas est ce que la langue définit comme 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 d’affectation sont retournées ici.
Valeur de retour
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&.
}
}
}
}
Exigences
Exigence | Valeur |
---|---|
d’en-tête | dbgmodel.h |