共用方式為


(dbgmodel.h) IDebugHostEvaluator2::AssignTo 方法

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

另請參閱

IDebugHostEvaluator2 介面