Win32 API 日本語リファレンス
ホームUI.Xaml.Diagnostics › IVisualTreeService

IVisualTreeService

COM
IIDa593b11a-d17f-48bb-8f66-83910731c8a5継承元IUnknown自前メソッド開始 vtbl3

メソッド 12

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 3 HRESULT AdviseVisualTreeChange(IVisualTreeServiceCallback* pCallback)
pCallbackIVisualTreeServiceCallback*inビジュアルツリーの変更通知を受け取るコールバックを表す IVisualTreeServiceCallback インターフェイスへのポインタである。
vtbl 4 HRESULT UnadviseVisualTreeChange(IVisualTreeServiceCallback* pCallback)
pCallbackIVisualTreeServiceCallback*in通知登録を解除するコールバックを表す IVisualTreeServiceCallback インターフェイスへのポインタである。
vtbl 5 HRESULT GetEnums(DWORD* pCount, EnumType** ppEnums)
pCountDWORD*out返される列挙型情報の数を受け取る。
ppEnumsEnumType**out列挙型の定義情報の配列を表す EnumType へのポインタを受け取る。
vtbl 6 HRESULT CreateInstance(LPWSTR typeName, LPWSTR value, ULONGLONG* pInstanceHandle)
typeNameLPWSTRin作成するインスタンスの型名を表す文字列である。
valueLPWSTRinインスタンスの初期化に使用する値を表す文字列である。
pInstanceHandleULONGLONG*out作成されたインスタンスを識別するハンドルを受け取る。
vtbl 7 HRESULT GetPropertyValuesChain(ULONGLONG instanceHandle, DWORD* pSourceCount, PropertyChainSource** ppPropertySources, DWORD* pPropertyCount, PropertyChainValue** ppPropertyValues)
instanceHandleULONGLONGinプロパティ値を取得する対象インスタンスを識別するハンドルである。
pSourceCountDWORD*out返されるプロパティソースの数を受け取る。
ppPropertySourcesPropertyChainSource**outプロパティの値の供給元を表す PropertyChainSource 配列へのポインタを受け取る。
pPropertyCountDWORD*out返されるプロパティ値の数を受け取る。
ppPropertyValuesPropertyChainValue**outプロパティ値の配列を表す PropertyChainValue へのポインタを受け取る。
vtbl 8 HRESULT SetProperty(ULONGLONG instanceHandle, ULONGLONG value, DWORD propertyIndex)
instanceHandleULONGLONGinプロパティを設定する対象インスタンスを識別するハンドルである。
valueULONGLONGin設定する値を識別するハンドルである。
propertyIndexDWORDin設定するプロパティのインデックスを指定する。
vtbl 9 HRESULT ClearProperty(ULONGLONG instanceHandle, DWORD propertyIndex)
instanceHandleULONGLONGinプロパティをクリアする対象インスタンスを識別するハンドルである。
propertyIndexDWORDinクリアするプロパティのインデックスを指定する。
vtbl 10 HRESULT GetCollectionCount(ULONGLONG instanceHandle, DWORD* pCollectionSize)
instanceHandleULONGLONGinコレクションの要素数を取得する対象インスタンスを識別するハンドルである。
pCollectionSizeDWORD*outコレクションに含まれる要素の数を受け取る。
vtbl 11 HRESULT GetCollectionElements(ULONGLONG instanceHandle, DWORD startIndex, DWORD* pElementCount, CollectionElementValue** ppElementValues)
instanceHandleULONGLONGin要素を取得するコレクションインスタンスを識別するハンドルである。
startIndexDWORDin取得を開始する要素のインデックスを指定する。
pElementCountDWORD*inout返された要素の数を受け取る。
ppElementValuesCollectionElementValue**outコレクション要素の値の配列を表す CollectionElementValue へのポインタを受け取る。
vtbl 12 HRESULT AddChild(ULONGLONG parent, ULONGLONG child, DWORD index)
parentULONGLONGin子を追加する親要素を識別するハンドルである。
childULONGLONGin追加する子要素を識別するハンドルである。
indexDWORDin子を挿入する位置のインデックスを指定する。
vtbl 13 HRESULT RemoveChild(ULONGLONG parent, DWORD index)
parentULONGLONGin子を削除する親要素を識別するハンドルである。
indexDWORDin削除する子要素のインデックスを指定する。
vtbl 14 HRESULT ClearChildren(ULONGLONG parent)
parentULONGLONGinすべての子要素を削除する親要素を識別するハンドルである。

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_IVisualTreeService "{A593B11A-D17F-48BB-8F66-83910731C8A5}"
#usecom global IVisualTreeService IID_IVisualTreeService "{}"
#comfunc global IVisualTreeService_AdviseVisualTreeChange    3 sptr
#comfunc global IVisualTreeService_UnadviseVisualTreeChange  4 sptr
#comfunc global IVisualTreeService_GetEnums                  5 var,var
#comfunc global IVisualTreeService_CreateInstance            6 wstr,wstr,var
#comfunc global IVisualTreeService_GetPropertyValuesChain    7 int64,var,var,var,var
#comfunc global IVisualTreeService_SetProperty               8 int64,int64,int
#comfunc global IVisualTreeService_ClearProperty             9 int64,int
#comfunc global IVisualTreeService_GetCollectionCount        10 int64,var
#comfunc global IVisualTreeService_GetCollectionElements     11 int64,int,var,var
#comfunc global IVisualTreeService_AddChild                  12 int64,int64,int
#comfunc global IVisualTreeService_RemoveChild               13 int64,int
#comfunc global IVisualTreeService_ClearChildren             14 int64
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。