IDebugHostEvaluator3::AssignTo 方法 (dbgmodel.h)

AssignTo 方法根据所调试的语言的语义执行赋值。

语法

HRESULT AssignTo(
  IModelObject                *assignmentReference,
  IModelObject                *assignmentValue,
  _COM_Errorptr_ IModelObject **assignmentResult,
  IKeyStore                   **assignmentMetadata
);

参数

assignmentReference

对要分配的事物的引用。 虽然它可以是基于模型的引用(例如:ObjectTargetObjectReference)或语言引用(例如:C++&),但它必须是某种类型的引用(LVALUE)。

assignmentValue

要分配给通过 assignmentReference 参数引用的值。 请注意,此值可能会在分配之前根据语言规则强制转换或转换。

assignmentResult

分配的结果(如果成功)。 (可选)指示分配失败的原因的扩展错误对象(可选)。 请注意,在这种情况下,赋值的结果是语言定义为赋值操作的结果。 对于C++,这将是对所分配事物的语言引用。

assignmentMetadata

此处返回与分配结果关联的任何可选元数据。

返回值

此方法返回 HRESULT,指示成功或失败。

言论

代码示例

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&.
            }
        }
    }
}

要求

要求 价值
标头 dbgmodel.h

另请参阅

IDebugHostEvaluator3 接口