다음을 통해 공유


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

추가 정보

IDebugHostEvaluator2 인터페이스