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 lo que se va a asignar. Aunque 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 LVALUE).

assignmentValue

Valor al que se hace referencia a lo que se hace referencia mediante el argumento assignmentReference. Tenga en cuenta que este valor se puede convertir o convertir según las reglas de idioma antes de asignarse.

assignmentResult

Resultado de la asignación, si se realiza 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++, esta 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.

Comentarios

Ejemplo 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
Header dbgmodel.h

Consulte también

Interfaz IDebugHostEvaluator2