IModelObject 인터페이스(dbgmodel.h)

데이터 모델에 대한 가장 기본적이면서도 강력한 것 중 하나는 개체의 정의와 개체와 상호 작용하는 방식을 표준화한다는 것입니다. IModelObject 인터페이스는 개체의 개념을 캡슐화합니다. 즉, 해당 개체가 정수, 부동 소수점 값, 문자열, 디버거의 대상 주소 공간에 있는 일부 복합 형식 또는 프로세스 또는 모듈의 개념과 같은 일부 디버거 개념입니다.

IModelObject에 보관하거나 상자에 넣을 수 있는 여러 가지 사항이 있습니다.

• 내장 값 - IModelObject는 8, 16, 32 또는 부호 있거나 부호 없는 64비트 정수, 부울, 문자열, 오류 또는 빈 개념과 같은 다양한 기본 형식에 대한 컨테이너가 될 수 있습니다.

• 네이티브 개체 - IModelObject는 디버거가 대상으로 하는 주소 공간 내에서 복잡한 형식(디버거의 형식 시스템에 정의된 대로)을 나타낼 수 있습니다.

• 가상 개체 - IModelObject는 동적 개체일 수 있습니다. 즉, 키/값/메타데이터 튜플의 컬렉션과 키/값 쌍으로 표현되지 않는 동작을 정의하는 개념 집합을 사전으로 사용할 수 있습니다.

• 속성 - IModelObject는 메서드 호출을 사용하여 값을 검색하거나 변경할 수 있는 속성을 나타낼 수 있습니다. IModelObject 내의 속성은 사실상 IModelObject에 박스된 IModelPropertyAccessor 인터페이스입니다.

• 메서드 - IModelObject는 메서드를 나타낼 수 있습니다. 인수 집합을 사용하여 를 호출하고 반환 값을 가져올 수 있습니다. IModelObject 내의 메서드는 사실상 IModelObject에 박스된 IModelMethod 인터페이스입니다.

IModelObject는 격리된 개체가 아닙니다. 위에 표시된 개체 형식 중 하나를 나타내는 것 외에도 각 개체에는 부모 데이터 모델 체인의 개념이 있습니다. 이 체인은 | 처럼 동작합니다. JavaScript 프로토타입 체인. JavaScript와 같은 프로토타입의 선형 체인 대신 각 데이터 모델 개체는 부모 모델의 선형 체인을 정의합니다. 이러한 각 부모 모델에는 자체 부모 집합의 또 다른 선형 체인이 있습니다. 기본적으로 각 개체는 자체 및 이 트리의 모든 개체에 대한 기능(속성 등)의 집계입니다. 특정 속성을 쿼리할 때 쿼리된 개체가 해당 속성을 지원하지 않는 경우 쿼리는 차례로 각 부모에 선형 순서로 전달됩니다. 이렇게 하면 집계 트리의 깊이 우선 검색을 통해 속성 검색이 확인되는 동작이 만들어집니다.

이 개체 모델 내의 확장성은 모든 개체가 자체의 집계 및 부모 모델의 트리라는 개념을 감안할 때 매우 간단합니다. 확장이 들어와서 다른 개체의 부모 모델 목록에 자신을 추가할 수 있습니다. 이렇게 하면 개체가 확장됩니다. 이러한 방식으로 개체 또는 값의 특정 instance, 네이티브 형식, 프로세스 또는 스레드에 대한 디버거의 개념 또는 "모든 반복 가능한 개체"의 개념 등 모든 기능에 기능을 추가할 수 있습니다.

상속

IModelObject는 IUnknown에서 상속됩니다.

메서드

IModelObject 인터페이스에는 이러한 메서드가 있습니다.

 
IModelObject::AddParentModel

AddParentModel 메서드는 지정된 개체에 새 부모 모델을 추가합니다.
IModelObject::AddRef

AddRef 메서드는 개체의 인터페이스에 대한 참조 수를 증분합니다. 이 메서드는 IModelObject 인터페이스에 속합니다.
IModelObject::ClearConcepts

ClearConcepts 메서드는 이 로 지정된 개체의 instance 모든 개념을 제거합니다.
IModelObject::ClearKeys

ClearKeys 메서드는 이 에 지정된 개체의 instance 모든 키와 연결된 값 및 메타데이터를 제거합니다.
IModelObject::Compare

Compare 메서드는 두 모델 개체를 비교하고 해당 개체의 관계를 나타내는 표시를 반환합니다.
IModelObject::D ereference

Dereference 메서드는 개체를 역참조합니다.
IModelObject::EnumerateKeyReferences

EnumerateKeyReferences 메서드는 키 값 대신 열거하는 키에 대한 참조를 반환한다는 점을 제외하고 EnumerateKeyValues 메서드와 유사하게 동작합니다.
IModelObject::EnumerateKeys

동적 키 공급자 내에서 키를 열거합니다.
IModelObject::EnumerateKeyValues

EnumerateKeyValues 메서드는 개체의 모든 키를 열거하기 위해 클라이언트가 설정하는 첫 번째 메서드입니다.
IModelObject::EnumerateRawReferences

EnumerateRawReferences 메서드는 지정된 개체의 모든 네이티브 자식(필드, 기본 클래스 등...)에 대한 참조를 열거합니다.
IModelObject::EnumerateRawValues

EnumerateRawValues 메서드는 지정된 개체의 모든 네이티브 자식(필드, 기본 클래스 등...)을 열거합니다.
IModelObject::GetConcept

GetConcept 메서드는 개체(또는 부모 모델 체인)에서 개념을 검색하고 개념 인터페이스에 대한 인터페이스 포인터를 반환합니다.
IModelObject::GetContext

GetContext 메서드는 개체와 연결된 호스트 컨텍스트를 반환합니다.
IModelObject::GetContextForDataModel

GetContextForDataModel 메서드는 SetContextForDataModel에 대한 이전 호출로 설정된 컨텍스트 정보를 검색하는 데 사용됩니다.
IModelObject::GetIntrinsicValue

GetIntrinsicValue 메서드는 IModelObject 내에 입력된 항목을 반환합니다.
IModelObject::GetIntrinsicValueAs

GetIntrinsicValueAs 메서드는 값을 지정된 변형 형식으로 변환한다는 점을 제외하고 GetIntrinsicValue 메서드만큼 동작합니다.
IModelObject::GetKey

GetKey 메서드는 이름으로 지정된 키의 값(및 연결된 메타데이터)을 가져옵니다.
IModelObject::GetKeyReference

개체 또는 부모 모델 중 하나에 인수 'key'에 따라 라는 키가 있는 경우 해당 키에 대한 참조가 반환됩니다.
IModelObject::GetKeyValue

GetKeyValue 메서드는 이름별로 지정된 키의 값(및 연결된 메타데이터)을 가져오기 위해 클라이언트가 설정하는 첫 번째 메서드입니다.
IModelObject::GetKind

GetKind 메서드는 IModelObject 내에서 boxed 개체의 종류를 반환합니다.
IModelObject::GetLocation

GetLocation 메서드는 네이티브 개체의 위치를 반환합니다. 이러한 위치는 일반적으로 디버그 대상의 주소 공간 내에 있는 가상 주소이지만 반드시 그런 것은 아닙니다.
IModelObject::GetNumberOfParentModels

GetNumberOfParentModels 메서드는 지정된 개체 instance 연결된 부모 모델 수를 반환합니다.
IModelObject::GetParentModel

GetParentModel 메서드는 지정된 개체의 부모 모델 체인에서 i번째 부모 모델을 반환합니다.
IModelObject::GetRawReference

GetRawReference 메서드는 지정된 개체 내에서 네이티브 구문을 찾아 해당 개체에 대한 참조를 반환합니다.
IModelObject::GetRawValue

GetRawValue 메서드는 지정된 개체 내에서 네이티브 구문을 찾습니다. 이러한 구문은 필드, 기본 클래스, 기본 클래스의 필드, 멤버 함수 등이 될 수 있습니다.
IModelObject::GetTargetInfo

GetTargetInfo 메서드는 주어진 개체의 네이티브 형식뿐만 아니라 추상 위치를 모두 반환하는 GetLocation 및 GetTypeInfo 메서드의 조합입니다.
IModelObject::GetTypeInfo

GetTypeInfo 메서드는 지정된 개체의 네이티브 형식을 반환합니다. 개체에 연결된 네이티브 형식 정보가 없으면 호출은 여전히 성공하지만 null을 반환합니다.
IModelObject::IsEqualTo

IsEqualTo 메서드는 호스트 컨텍스트를 다른 호스트 컨텍스트와 비교합니다. 두 컨텍스트가 동일하면 이를 나타내는 표시가 반환됩니다. 이 비교는 인터페이스 동등성이 아닙니다.
IModelObject::QueryInterface

IModelObject::QueryInterface 메서드는 개체에서 지원되는 인터페이스에 대한 포인터를 검색합니다.
IModelObject::Release

IModelObject::Release 메서드는 개체의 인터페이스에 대한 참조 수를 감소합니다.
IModelObject::RemoveParentModel

RemoveParentModel은 지정된 개체의 부모 검색 체인에서 지정된 부모 모델을 제거합니다.
IModelObject::SetConcept

SetConcept 메서드는 이 포인터에 지정된 개체 instance 지정된 개념을 배치합니다.
IModelObject::SetContextForDataModel

SetContextForDataModel 메서드는 데이터 모델의 구현에서 구현 데이터를 instance 개체에 배치하는 데 사용됩니다.
IModelObject::SetKey

SetKey 메서드는 개체에 키를 만들고 메타데이터를 생성된 키와 잠재적으로 연결하기 위해 클라이언트가 로 설정하는 메서드입니다.
IModelObject::SetKeyValue

SetKeyValue 메서드는 키 값을 설정하기 위해 클라이언트가 설정하는 첫 번째 메서드입니다. 이 메서드는 개체에 새 키를 만드는 데 사용할 수 없습니다.
IModelObject::TryCastToRuntimeType

TryCastToRuntimeType 메서드는 디버그 호스트에 분석을 수행하고 지정된 개체의 실제 런타임 형식(가장 많이 파생된 클래스)을 결정하도록 요청합니다.

요구 사항

요구 사항
헤더 dbgmodel.h