IDebugHostEvaluator2::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&.
}
}
}
}
要件
要件 | 値 |
---|---|
Header | dbgmodel.h |