IModelObject 介面 (dbgmodel.h)
IModelObject 介面會封裝物件的概念-- 該物件是否為整數、字串、調試程式目標地址空間中的一些複雜類型。
遺產
IModelObject 繼承自 IUnknown。
方法
IModelObject 介面具有這些方法。
IModelObject::AddParentModel AddParentModel 方法會將新的父模型新增至指定的 物件。 |
IModelObject::AddRef AddRef 方法會遞增 物件上介面的參考計數。 這個方法屬於IModelObject 介面。 |
IModelObject::ClearConcepts ClearConcepts 方法會從這個 所指定對象的實例中移除所有概念。 |
IModelObject::ClearKeys ClearKeys 方法會從這個所指定對象的實例中移除所有索引鍵及其相關聯的值和元數據。 |
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 方法會傳回附加至指定物件實例的父模型數目。 |
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 方法會將指定的概念放在這個指標所指定的物件實例上。 |
IModelObject::SetContextForDataModel SetContextForDataModel 方法是由數據模型的實作用來將實作數據放在實例物件上。 |
IModelObject::SetKey SetKey 方法是用戶端將轉換成的方法,以便在物件上建立索引鍵(並可能將元數據與建立的密鑰產生關聯)。 |
IModelObject::SetKeyValue SetKeyValue 方法是客戶端要用來設定索引鍵值的第一個方法。 這個方法無法用來在物件上建立新的索引鍵。 |
IModelObject::TryCastToRuntimeType TryCastToRuntimeType 方法會要求偵錯主機執行分析,並判斷指定對象的實際運行時間類型(大部分衍生類別)。 |
言論
數據模型最基本但最強大的內容之一是,它會標準化對象的定義,以及對象與對象互動的方式。 IModelObject 介面會封裝物件的概念-- 不論該對像是整數、浮點值、字串、調試程式目標地址空間中的某些複雜型別,或是一些調試程式概念,例如進程或模組的概念。
IModelObject 中可以保留數個不同的專案:(或 Boxed 到) 中:
• 內建值 - IModelObject 可以是許多基本類型的容器:8、16、32 或 64 位帶正負號或無符號整數、布爾值、字串、錯誤或空白的概念。
• 原生物件 - IModelObject 可以在除錯程式的位址空間內代表複雜類型(如除錯程式的類型系統所定義)
• 綜合物件 - IModelObject 可以是動態物件 ,如果您將會是字典:索引鍵/值/元數據元組的集合,以及一組概念,這些概念定義不只以索引鍵/值組表示的行為。
• 屬性 - IModelObject 可以代表屬性:可以使用方法呼叫來擷取或改變其值的專案。 IModelObject 內的屬性實際上是一個 IModelPropertyAccessor 介面,並分成 IModelObject
• 方法 - IModelObject 可以代表方法:您可以使用一組自變數呼叫的專案,並取得傳回值。 IModelObject 內的方法實際上是將 IModelMethod 介面 boxed 到 IModelObject 中的
IModelObject 不是隔離的物件。 除了代表上述其中一種物件類型之外,每個物件都有父數據模型鏈結的概念。 此鏈結的行為非常類似 |JavaScript 原型鏈結。 每個數據模型物件會定義父模型的線性鏈結,而不是 JavaScript 等原型的線性鏈結。 每個父模型都會有另一個自己的父系線性鏈結。 基本上,每個物件都是本身和這個樹狀結構中每個物件的功能(屬性等...)匯總。 查詢特定屬性時,如果查詢的物件不支援該屬性,查詢會依線性順序傳遞至每個父系。 這會建立行為,其中搜尋屬性會透過匯總樹狀結構的深度優先搜尋來解析。
這個物件模型中的擴充性非常簡單,因為這個概念是每個物件都是本身的匯總和父模型的樹狀結構。 延伸模組可以傳入並新增至另一個物件的父模型清單。 這樣做會擴充 物件。 如此一來,就可以將功能新增至任何專案:物件或值的特定實例、原生類型、調試程式的程式或線程概念,甚至是「所有可反覆運算的物件」的概念。
要求
要求 | 價值 |
---|---|
標頭 | dbgmodel.h |