IModelObject 인터페이스(dbgmodel.h)
IModelObject 인터페이스는 개체의 개념을 캡슐화합니다( 해당 개체가 정수인지, 문자열인지, 디버거의 대상 주소 공간에 있는 일부 복합 형식인지 여부).
상속
IModelObject는 IUnknown에서 상속됩니다.
방법
IModelObject 인터페이스에는 이러한 메서드가 있습니다.
IModelObject::AddParentModel AddParentModel 메서드는 지정된 개체에 새 부모 모델을 추가합니다. |
IModelObject::AddRef AddRef 메서드는 개체의 인터페이스에 대한 참조 수를 증분합니다. 이 메서드는 IModelObject 인터페이스에 속합니다. |
IModelObject::ClearConcepts ClearConcepts 메서드는 이 메서드로 지정된 개체의 인스턴스에서 모든 개념을 제거합니다. |
IModelObject::ClearKeys ClearKeys 메서드는 지정된 개체의 인스턴스에서 모든 키와 연결된 값 및 메타데이터를 제거합니다. |
IModelObject::비교 Compare 메서드는 두 모델 개체를 비교하고 해당 개체가 어떻게 관련되는지를 나타내는 표시를 반환합니다. |
IModelObject::D연결 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 메서드는 지정된 개체 인스턴스에 연결된 부모 모델의 수를 반환합니다. |
IModelObject::GetParentModel GetParentModel 메서드는 지정된 개체의 부모 모델 체인에서 i-th 부모 모델을 반환합니다. |
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 메서드는 이 포인터로 지정된 개체 인스턴스에 지정된 개념을 배치합니다. |
IModelObject::SetContextForDataModel SetContextForDataModel 메서드는 데이터 모델 구현에서 구현 데이터를 인스턴스 개체에 배치하는 데 사용됩니다. |
IModelObject::SetKey SetKey 메서드는 개체에 키를 만들기 위해 클라이언트에서 설정 하는 메서드 (및 잠재적으로 만든 된 키와 메타 데이터를 연결). |
IModelObject::SetKeyValue SetKeyValue 메서드는 키 값을 설정하기 위해 클라이언트가 설정하는 첫 번째 메서드입니다. 이 메서드는 개체에 새 키를 만드는 데 사용할 수 없습니다. |
IModelObject::TryCastToRuntimeType TryCastToRuntimeType 메서드는 디버그 호스트에 분석을 수행하고 지정된 개체의 실제 런타임 형식(가장 많이 파생된 클래스)을 결정하도록 요청합니다. |
발언
데이터 모델에 대한 가장 기본적이면서도 강력한 것 중 하나는 개체의 정의와 개체와 상호 작용하는 방식을 표준화한다는 것입니다. IModelObject 인터페이스는 해당 개체가 정수, 부동 소수점 값, 문자열, 디버거의 대상 주소 공간에 있는 일부 복합 형식 또는 프로세스 또는 모듈의 개념과 같은 일부 디버거 개념 등 개체의 개념을 캡슐화합니다.
IModelObject에 보관하거나 상자에 넣을 수 있는 여러 가지 사항이 있습니다.
• 내장 값 - IModelObject는 8, 16, 32 또는 부호 있거나 부호 없는 64비트 정수, 부울, 문자열, 오류 또는 빈 개념과 같은 다양한 기본 형식에 대한 컨테이너가 될 수 있습니다.
• 네이티브 개체 - IModelObject는 디버거가 대상으로 하는 주소 공간 내에서 복잡한 형식(디버거의 형식 시스템에 정의된 대로)을 나타낼 수 있습니다.
• 가상 개체 - IModelObject는 동적 개체일 수 있습니다. 즉, 키/값/메타데이터 튜플의 컬렉션과 키/값 쌍으로 표현되지 않는 동작을 정의하는 개념 집합입니다.
• 속성 - IModelObject는 메서드 호출을 사용하여 값을 검색하거나 변경할 수 있는 속성을 나타낼 수 있습니다. IModelObject 내의 속성은 실제로 IModelObject에 박스된 IModelPropertyAccessor 인터페이스입니다.
• 메서드 - IModelObject는 메서드를 나타낼 수 있습니다. 인수 집합으로 호출하고 반환 값을 가져올 수 있습니다. IModelObject 내의 메서드는 실제로 IModelObject에 박스된 IModelMethod 인터페이스입니다.
IModelObject는 격리된 개체가 아닙니다. 위에 표시된 개체 형식 중 하나를 나타내는 것 외에도 각 개체에는 부모 데이터 모델 체인의 개념이 있습니다. 이 체인은 |처럼 동작합니다. JavaScript 프로토타입 체인. JavaScript와 같은 프로토타입의 선형 체인 대신 각 데이터 모델 개체는 부모 모델의 선형 체인을 정의합니다. 이러한 각 부모 모델에는 자체 부모 집합의 또 다른 선형 체인이 있습니다. 기본적으로 각 개체는 자체 및 이 트리의 모든 개체에 대한 기능(속성 등)의 집계입니다. 특정 속성을 쿼리할 때 쿼리된 개체가 해당 속성을 지원하지 않는 경우 쿼리는 차례로 각 부모에 선형 순서로 전달됩니다. 이렇게 하면 집계 트리의 깊이 우선 검색을 통해 속성 검색이 확인되는 동작이 만들어집니다.
이 개체 모델 내의 확장성은 모든 개체가 자체 및 부모 모델의 트리의 집계라는 개념을 고려할 때 매우 간단합니다. 확장이 들어와서 다른 개체의 부모 모델 목록에 자신을 추가할 수 있습니다. 이렇게 하면 개체가 확장됩니다. 이러한 방식으로 개체 또는 값의 특정 인스턴스, 네이티브 형식, 프로세스 또는 스레드에 대한 디버거의 개념 또는 "모든 반복 가능한 개체"의 개념 등 모든 기능에 기능을 추가할 수 있습니다.
요구 사항
요구 | 값 |
---|---|
헤더 | dbgmodel.h |