Compartir a través de


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

Consulte también

interfaz IDebugHostEvaluator2