ホーム › System.Diagnostics.Debug.Extensions › IModelObject
IModelObject
COMメソッド 33
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 3 HRESULT GetContext(IDebugHostContext** context)
| context | IDebugHostContext** | out | このオブジェクトに関連付けられたホストコンテキストを受け取るポインタである。 |
vtbl 4 HRESULT GetKind(ModelObjectKind* kind)
| kind | ModelObjectKind* | out | オブジェクトの種類を示す ModelObjectKind 値を受け取るポインタである。 |
| intrinsicData | VARIANT* | out | オブジェクトが保持する組み込み(intrinsic)値を VARIANT として受け取るポインタである。 |
| vt | VARENUM | in | 値を変換して取得する VARIANT 型(VARENUM)を指定する。 |
| intrinsicData | VARIANT* | out | 指定した型に変換した組み込み値を受け取る VARIANT へのポインタである。 |
vtbl 7 HRESULT GetKeyValue(LPWSTR key, IModelObject** object, IKeyStore** metadata)
| key | LPWSTR | in | 取得する値のキー名を指定する。 |
| object | IModelObject** | outoptional | キーに格納された値(必要に応じて評価される)を受け取るポインタである。 |
| metadata | IKeyStore** | outoptional | キーに関連付けられたメタデータストアを受け取るポインタである。不要なら NULL を指定できる。 |
vtbl 8 HRESULT SetKeyValue(LPWSTR key, IModelObject* object)
| key | LPWSTR | in | 値を設定するキー名を指定する。 |
| object | IModelObject* | inoptional | キーに設定する値(オブジェクト)を指定する。 |
vtbl 9 HRESULT EnumerateKeyValues(IKeyEnumerator** enumerator)
| enumerator | IKeyEnumerator** | out | キーと値を列挙する IKeyEnumerator を受け取るポインタである。 |
vtbl 10 HRESULT GetRawValue(SymbolKind kind, LPWSTR name, DWORD searchFlags, IModelObject** object)
| kind | SymbolKind | in | 取得するシンボルの種類(SymbolKind)を指定する。 |
| name | LPWSTR | in | 取得するネイティブシンボル(フィールド・基底クラスなど)の名前を指定する。 |
| searchFlags | DWORD | in | 検索の動作を制御するフラグを指定する。 |
| object | IModelObject** | out | 取得した生の(ネイティブ)値を保持するオブジェクトを受け取るポインタである。 |
vtbl 11 HRESULT EnumerateRawValues(SymbolKind kind, DWORD searchFlags, IRawEnumerator** enumerator)
| kind | SymbolKind | in | 列挙するシンボルの種類(SymbolKind)を指定する。 |
| searchFlags | DWORD | in | 検索の動作を制御するフラグを指定する。 |
| enumerator | IRawEnumerator** | out | 生の(ネイティブ)値を列挙する IRawEnumerator を受け取るポインタである。 |
vtbl 12 HRESULT Dereference(IModelObject** object)
| object | IModelObject** | out | 逆参照した結果のオブジェクトを受け取るポインタである。 |
vtbl 13 HRESULT TryCastToRuntimeType(IModelObject** runtimeTypedObject)
| runtimeTypedObject | IModelObject** | out | 実行時の派生型へキャストしたオブジェクトを受け取るポインタである。 |
vtbl 14 HRESULT GetConcept(GUID* conceptId, IUnknown** conceptInterface, IKeyStore** conceptMetadata)
| conceptId | GUID* | in | 取得するコンセプトを識別する GUID(インターフェイス ID)へのポインタである。 |
| conceptInterface | IUnknown** | out | コンセプトを実装するインターフェイスを受け取るポインタである。 |
| conceptMetadata | IKeyStore** | outoptional | コンセプトに関連付けられたメタデータストアを受け取るポインタである。不要なら NULL を指定できる。 |
| location | Location* | out | オブジェクトのネイティブな位置を表す Location 構造体を受け取るポインタである。 |
vtbl 16 HRESULT GetTypeInfo(IDebugHostType** type)
| type | IDebugHostType** | out | オブジェクトのネイティブ型を表す IDebugHostType を受け取るポインタである。 |
vtbl 17 HRESULT GetTargetInfo(Location* location, IDebugHostType** type)
| location | Location* | out | オブジェクトのネイティブな位置を表す Location 構造体を受け取るポインタである。 |
| type | IDebugHostType** | out | オブジェクトのネイティブ型を表す IDebugHostType を受け取るポインタである。 |
| numModels | ULONGLONG* | out | 親データモデルの個数を受け取るポインタである。 |
vtbl 19 HRESULT GetParentModel(ULONGLONG i, IModelObject** model, IModelObject** contextObject)
| i | ULONGLONG | in | 取得する親モデルのゼロ始まりのインデックスを指定する。 |
| model | IModelObject** | out | 指定したインデックスの親モデルを受け取るポインタである。 |
| contextObject | IModelObject** | out | 親モデルに関連付けられたコンテキストオブジェクトを受け取るポインタである。 |
vtbl 20 HRESULT AddParentModel(IModelObject* model, IModelObject* contextObject, BYTE override)
| model | IModelObject* | in | 追加する親データモデルを指定する。 |
| contextObject | IModelObject* | inoptional | 親モデルの適用コンテキストとなるオブジェクトを指定する。不要なら NULL を指定できる。 |
| override | BYTE | in | 既存の親モデルより優先して先頭に追加する場合は TRUE を指定する。 |
vtbl 21 HRESULT RemoveParentModel(IModelObject* model)
| model | IModelObject* | in | 削除する親データモデルを指定する。 |
vtbl 22 HRESULT GetKey(LPWSTR key, IModelObject** object, IKeyStore** metadata)
| key | LPWSTR | in | 取得する値のキー名を指定する。 |
| object | IModelObject** | outoptional | キーの値(オブジェクト)を受け取るポインタである。 |
| metadata | IKeyStore** | outoptional | キーに関連付けられたメタデータストアを受け取るポインタである。不要なら NULL を指定できる。 |
vtbl 23 HRESULT GetKeyReference(LPWSTR key, IModelObject** objectReference, IKeyStore** metadata)
| key | LPWSTR | in | 参照を取得するキー名を指定する。 |
| objectReference | IModelObject** | outoptional | キーへの参照を表すオブジェクトを受け取るポインタである。 |
| metadata | IKeyStore** | outoptional | キーに関連付けられたメタデータストアを受け取るポインタである。不要なら NULL を指定できる。 |
vtbl 24 HRESULT SetKey(LPWSTR key, IModelObject* object, IKeyStore* metadata)
| key | LPWSTR | in | 設定する値のキー名を指定する。 |
| object | IModelObject* | inoptional | キーに設定する値(オブジェクト)を指定する。 |
| metadata | IKeyStore* | inoptional | キーに関連付けるメタデータストアを指定する。不要なら NULL を指定できる。 |
vtbl 25 HRESULT ClearKeys()
vtbl 26 HRESULT EnumerateKeys(IKeyEnumerator** enumerator)
| enumerator | IKeyEnumerator** | out | キーを列挙する IKeyEnumerator を受け取るポインタである。 |
vtbl 27 HRESULT EnumerateKeyReferences(IKeyEnumerator** enumerator)
| enumerator | IKeyEnumerator** | out | キーへの参照を列挙する IKeyEnumerator を受け取るポインタである。 |
| conceptId | GUID* | in | 設定するコンセプトを識別する GUID(インターフェイス ID)へのポインタである。 |
| conceptInterface | IUnknown* | in | コンセプトを実装するインターフェイスを指定する。 |
| conceptMetadata | IKeyStore* | inoptional | コンセプトに関連付けるメタデータストアを指定する。不要なら NULL を指定できる。 |
vtbl 29 HRESULT ClearConcepts()
vtbl 30 HRESULT GetRawReference(SymbolKind kind, LPWSTR name, DWORD searchFlags, IModelObject** object)
| kind | SymbolKind | in | 取得するシンボルの種類(SymbolKind)を指定する。 |
| name | LPWSTR | in | 参照を取得するネイティブシンボルの名前を指定する。 |
| searchFlags | DWORD | in | 検索の動作を制御するフラグを指定する。 |
| object | IModelObject** | out | 生の(ネイティブ)シンボルへの参照を受け取るポインタである。 |
vtbl 31 HRESULT EnumerateRawReferences(SymbolKind kind, DWORD searchFlags, IRawEnumerator** enumerator)
| kind | SymbolKind | in | 列挙するシンボルの種類(SymbolKind)を指定する。 |
| searchFlags | DWORD | in | 検索の動作を制御するフラグを指定する。 |
| enumerator | IRawEnumerator** | out | 生の(ネイティブ)シンボルへの参照を列挙する IRawEnumerator を受け取るポインタである。 |
vtbl 32 HRESULT SetContextForDataModel(IModelObject* dataModelObject, IUnknown* context)
| dataModelObject | IModelObject* | in | 対象のデータモデルオブジェクトを指定する。 |
| context | IUnknown* | in | データモデルに関連付けるコンテキストオブジェクトを指定する。 |
vtbl 33 HRESULT GetContextForDataModel(IModelObject* dataModelObject, IUnknown** context)
| dataModelObject | IModelObject* | in | 対象のデータモデルオブジェクトを指定する。 |
| context | IUnknown** | out | データモデルに関連付けられたコンテキストオブジェクトを受け取るポインタである。 |
vtbl 34 HRESULT Compare(IModelObject* other, IModelObject** ppResult)
| other | IModelObject* | in | 比較対象となるオブジェクトを指定する。 |
| ppResult | IModelObject** | outoptional | 比較結果(順序を表す数値)を保持するオブジェクトを受け取るポインタである。 |
vtbl 35 HRESULT IsEqualTo(IModelObject* other, BOOLEAN* equal)
| other | IModelObject* | in | 比較対象となるオブジェクトを指定する。 |
| equal | BOOLEAN* | out | 両者が等しい場合に TRUE を受け取るポインタである。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_IModelObject "{E28C7893-3F4B-4B96-BACA-293CDC55F45D}" #usecom global IModelObject IID_IModelObject "{}" #comfunc global IModelObject_GetContext 3 sptr #comfunc global IModelObject_GetKind 4 var #comfunc global IModelObject_GetIntrinsicValue 5 var #comfunc global IModelObject_GetIntrinsicValueAs 6 int,var #comfunc global IModelObject_GetKeyValue 7 wstr,sptr,sptr #comfunc global IModelObject_SetKeyValue 8 wstr,sptr #comfunc global IModelObject_EnumerateKeyValues 9 sptr #comfunc global IModelObject_GetRawValue 10 int,wstr,int,sptr #comfunc global IModelObject_EnumerateRawValues 11 int,int,sptr #comfunc global IModelObject_Dereference 12 sptr #comfunc global IModelObject_TryCastToRuntimeType 13 sptr #comfunc global IModelObject_GetConcept 14 var,sptr,sptr #comfunc global IModelObject_GetLocation 15 var #comfunc global IModelObject_GetTypeInfo 16 sptr #comfunc global IModelObject_GetTargetInfo 17 var,sptr #comfunc global IModelObject_GetNumberOfParentModels 18 var #comfunc global IModelObject_GetParentModel 19 int64,sptr,sptr #comfunc global IModelObject_AddParentModel 20 sptr,sptr,int #comfunc global IModelObject_RemoveParentModel 21 sptr #comfunc global IModelObject_GetKey 22 wstr,sptr,sptr #comfunc global IModelObject_GetKeyReference 23 wstr,sptr,sptr #comfunc global IModelObject_SetKey 24 wstr,sptr,sptr #comfunc global IModelObject_ClearKeys 25 #comfunc global IModelObject_EnumerateKeys 26 sptr #comfunc global IModelObject_EnumerateKeyReferences 27 sptr #comfunc global IModelObject_SetConcept 28 var,sptr,sptr #comfunc global IModelObject_ClearConcepts 29 #comfunc global IModelObject_GetRawReference 30 int,wstr,int,sptr #comfunc global IModelObject_EnumerateRawReferences 31 int,int,sptr #comfunc global IModelObject_SetContextForDataModel 32 sptr,sptr #comfunc global IModelObject_GetContextForDataModel 33 sptr,sptr #comfunc global IModelObject_Compare 34 sptr,sptr #comfunc global IModelObject_IsEqualTo 35 sptr,var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IModelObject "{E28C7893-3F4B-4B96-BACA-293CDC55F45D}" #usecom global IModelObject IID_IModelObject "{}" #comfunc global IModelObject_GetContext 3 sptr #comfunc global IModelObject_GetKind 4 sptr #comfunc global IModelObject_GetIntrinsicValue 5 sptr #comfunc global IModelObject_GetIntrinsicValueAs 6 int,sptr #comfunc global IModelObject_GetKeyValue 7 wstr,sptr,sptr #comfunc global IModelObject_SetKeyValue 8 wstr,sptr #comfunc global IModelObject_EnumerateKeyValues 9 sptr #comfunc global IModelObject_GetRawValue 10 int,wstr,int,sptr #comfunc global IModelObject_EnumerateRawValues 11 int,int,sptr #comfunc global IModelObject_Dereference 12 sptr #comfunc global IModelObject_TryCastToRuntimeType 13 sptr #comfunc global IModelObject_GetConcept 14 sptr,sptr,sptr #comfunc global IModelObject_GetLocation 15 sptr #comfunc global IModelObject_GetTypeInfo 16 sptr #comfunc global IModelObject_GetTargetInfo 17 sptr,sptr #comfunc global IModelObject_GetNumberOfParentModels 18 sptr #comfunc global IModelObject_GetParentModel 19 int64,sptr,sptr #comfunc global IModelObject_AddParentModel 20 sptr,sptr,int #comfunc global IModelObject_RemoveParentModel 21 sptr #comfunc global IModelObject_GetKey 22 wstr,sptr,sptr #comfunc global IModelObject_GetKeyReference 23 wstr,sptr,sptr #comfunc global IModelObject_SetKey 24 wstr,sptr,sptr #comfunc global IModelObject_ClearKeys 25 #comfunc global IModelObject_EnumerateKeys 26 sptr #comfunc global IModelObject_EnumerateKeyReferences 27 sptr #comfunc global IModelObject_SetConcept 28 sptr,sptr,sptr #comfunc global IModelObject_ClearConcepts 29 #comfunc global IModelObject_GetRawReference 30 int,wstr,int,sptr #comfunc global IModelObject_EnumerateRawReferences 31 int,int,sptr #comfunc global IModelObject_SetContextForDataModel 32 sptr,sptr #comfunc global IModelObject_GetContextForDataModel 33 sptr,sptr #comfunc global IModelObject_Compare 34 sptr,sptr #comfunc global IModelObject_IsEqualTo 35 sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。