Compartilhar via


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