Método IDebugHostEvaluator2::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 possa ser uma referência baseada em modelo (por exemplo: um ObjectTargetObjectReference) ou uma referência de linguagem (por exemplo: um & C++), ela 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 indicando 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 para o item atribuído.
assignmentMetadata
Todos os metadados opcionais associados ao resultado da atribuição são retornados aqui.
Retornar valor
Esse método retorna HRESULT que indica êxito ou falha.
Comentários
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 |