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&.
}
}
}
}
요구 사항
요구 사항 | 값 |
---|---|
헤더 | dbgmodel.h |