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 |