Compartilhar via


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

Confira também

Interface IDebugHostEvaluator2