다음을 통해 공유


IDataModelManager3::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<IDataModelManager3> 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

참고 항목

IDataModelManager3 인터페이스