Método IDebugHostEvaluator3::AssignTo (dbgmodel.h)
O método AssignTo executa a atribuição de acordo com a semântica do idioma que está sendo depurado.
Sintaxe
HRESULT AssignTo(
IModelObject *assignmentReference,
IModelObject *assignmentValue,
_COM_Errorptr_ IModelObject **assignmentResult,
IKeyStore **assignmentMetadata
);
Parâmetros
assignmentReference
Uma referência à coisa que está sendo atribuída. Embora isso possa ser uma referência baseada em modelo (por exemplo: um ObjectTargetObjectReference) ou uma referência de linguagem (por exemplo: um &C++), deve ser algum tipo de referência (um LVALUE).
assignmentValue
O valor que está sendo atribuído ao que é referenciado por meio do argumento assignmentReference. Observe que esse valor pode ser coagido ou convertido de acordo com as regras de idioma antes de ser atribuído.
assignmentResult
O resultado da atribuição, se bem-sucedido. Caso contrário, opcionalmente, um objeto de erro estendido que indica por que a atribuição falhou. Observe que o resultado da atribuição nesse caso é o que o idioma define como resultado de uma operação de atribuição. Para C++, essa seria uma referência de linguagem à coisa atribuída.
assignmentMetadata
Todos os metadados opcionais associados ao resultado da atribuição são retornados aqui.
Valor de retorno
Esse método retorna HRESULT que indica êxito ou falha.
Observações
de exemplo 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 |
---|---|
cabeçalho | dbgmodel.h |
Consulte também
interface IDebugHostEvaluator3