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 la cosa que se va a asignar. Aunque esto 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 valor LVALUE).
assignmentValue
Valor al que se hace referencia a lo que se hace referencia a través del argumento assignmentReference. Tenga en cuenta que este valor se puede convertir o convertir de acuerdo con las reglas de idioma antes de asignarse.
assignmentResult
Resultado de la asignación, si se ejecuta 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++, 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.
Observaciones
de ejemplo de código de
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 |
---|---|
encabezado de | dbgmodel.h |