(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 |