Método IDebugHostEvaluator2::AssignTo (dbgmodel.h)
El método AssignTo realiza la asignación según la semántica del lenguaje que se está depurando.
Sintaxis
HRESULT AssignTo(
IModelObject *assignmentReference,
IModelObject *assignmentValue,
_COM_Errorptr_ IModelObject **assignmentResult,
IKeyStore **assignmentMetadata
);
Parámetros
assignmentReference
Referencia a lo que se va a asignar. Aunque puede ser una referencia basada en modelos (por ejemplo, un ObjectTargetObjectReference) o una referencia de lenguaje (por ejemplo, un & de C++), debe ser algún tipo de referencia (un LVALUE).
assignmentValue
Valor al que se hace referencia a lo que se hace referencia mediante el argumento assignmentReference. Tenga en cuenta que este valor se puede convertir o convertir según las reglas de idioma antes de asignarse.
assignmentResult
Resultado de la asignación, si se realiza correctamente. Si no es así, opcionalmente, un objeto de error extendido que indica por qué se produjo un error en la asignación. Tenga en cuenta que el resultado de la asignación en este caso es lo que define el lenguaje como resultado de una operación de asignación. Para C++, esta sería una referencia de lenguaje a la cosa asignada.
assignmentMetadata
Los metadatos opcionales asociados al resultado de la asignación se devuelven aquí.
Valor devuelto
Este método devuelve HRESULT, que indica que se ha realizado correctamente o no.
Comentarios
Ejemplo de código
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&.
}
}
}
}
Requisitos
Requisito | Valor |
---|---|
Header | dbgmodel.h |