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 |