다음을 통해 공유


IDataModelManager::CreateIntrinsicObject 메서드(dbgmodel.h)

CreateIntrinsicObject 메서드는 IModelObject에 내장 값을 입력하는 메서드입니다. 호출자는 COM VARIANT에 값을 배치하고 이 메서드를 호출합니다. 데이터 모델 관리자는 개체를 나타내는 IModelObject 를 반환합니다. 이 메서드는 속성 접근자, 메서드, 컨텍스트 등 기본 IUnknown 기반 형식을 상자로 만드는 데도 사용됩니다. 이러한 경우 objectKind 메서드는 개체가 나타내는 IUnknown 기반 구문의 종류를 나타내고 전달된 변형의 punkVal 필드는 IUnknown 파생 형식입니다. 형식은 프로세스에서 적절한 모델 인터페이스(예: IModelPropertyAccessor, IModelMethod, IDebugHostContext 등)로 정적으로 캐스팅할 수 있어야 합니다.

이 메서드에서 지원하는 VARIANT 형식은 VT_UI1, VT_I1, VT_UI2, VT_I2, VT_UI4, VT_I4, VT_UI8, VT_I8, VT_R4, VT_R8, VT_BOOL, VT_BSTR 및 VT_UNKNOWN(열거형 ModelObjectKind에 표시된 대로 특수화된 IUnknown 파생 형식 집합의 경우)입니다.

구문

HRESULT CreateIntrinsicObject(
  ModelObjectKind objectKind,
  VARIANT         *intrinsicData,
  IModelObject    **object
);

매개 변수

objectKind

boxed되는 개체의 종류를 나타냅니다. 변형 형식과 다른 일반 내장 함수의 경우 ObjectIntrinsic이 여기에 전달됩니다. 사실상 IUnknown 파생 인터페이스인 다른 인터페이스의 경우 개체 형식은 ModelObjectKind 열거형의 값 중 하나이며 VARIANT의 인터페이스가 일치해야 합니다.

intrinsicData

IModelObject 컨테이너 내에 boxed될 값을 포함하는 VARIANT입니다.

object

새로 상자가 지정된 값( IModelObject)이 여기에 반환됩니다.

반환 값

이 메서드는 성공 또는 실패를 나타내는 HRESULT를 반환합니다.

설명

예제 코드

ComPtr<IDataModelManager> spManager; /* get the data model manager */

VARIANT vtValue;
vtValue.vt = VT_I4;
vtValue.lVal = 42;

// If the object is an VT_UNKNOWN, the first argument to CreateIntrinsicObject
// indicates what KIND of IUnknown.  For example, ObjectPropertyAccessor would 
// indicate IModelPropertyAccessor.  ObjectMethod would indicate IModelMethod, etc...
ComPtr<IModelObject> spValue;
if (SUCCEEDED(spManager->CreateIntrinsicObject(ObjectIntrinsic, &vtValue, &spValue)))
{
    // spValue now contains the object (boxed) representation of the int value 42.
}

요구 사항

요구 사항
헤더 dbgmodel.h

추가 정보

IDataModelManager 인터페이스