ホーム › UI.Xaml.Diagnostics › IVisualTreeService2
IVisualTreeService2
COM公式ドキュメント
IVisualTreeService オブジェクトの追加機能を表します。
メソッド 4
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
指定したプロパティ名に対応するプロパティインデックスを取得します。
| object | ULONGLONG | in | プロパティインデックスの取得元となる依存関係オブジェクト。 |
| propertyName | LPWSTR | in | インデックスを取得する依存関係プロパティの名前。 |
| pPropertyIndex | DWORD* | out | 指定したプロパティのインデックス。 |
戻り値
戻り値として考えられるコードには、次の表に示す値が含まれますが、これらに限定されません。
| 戻り値コード | 説明 |
|---|---|
| メソッドが成功しました。 | |
| propertyName に一致するプロパティが見つからなかったか、そのプロパティを object に適用できません。 |
解説(Remarks)
このインデックスを GetProperty メソッドに渡すことで、オブジェクト上の特定のプロパティを取得できます。
指定した依存関係プロパティの有効値を取得します。
| object | ULONGLONG | in | プロパティ値の取得元となる依存関係オブジェクト。 |
| propertyIndex | DWORD | in | 値を取得するプロパティのインデックス。 |
| pValue | ULONGLONG* | out | プロパティの有効値。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
既存のリソースを、同じ型の新しいリソースで置き換えます。
| resourceDictionary | ULONGLONG | in | 置き換えるリソースを含むディクショナリ。 |
| key | ULONGLONG | in | 置き換えるリソースのキー。 |
| newValue | ULONGLONG | in | リソースを置き換える新しい値。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
vtbl 18 HRESULT RenderTargetBitmap(ULONGLONG handle, RenderTargetBitmapOptions options, DWORD maxPixelWidth, DWORD maxPixelHeight, IBitmapData** ppBitmapData)
handle で示されるオブジェクトを表す画像を返します。オブジェクトがそのような画像を持たない、または提供できない場合はエラーを返します。
| handle | ULONGLONG | in | 呼び出し元がビットマップを要求しているビジュアルに関連付けられたハンドル。 |
| options | RenderTargetBitmapOptions | in | ビジュアルに関連付けられたテクスチャのみをレンダリングするか、そのテクスチャと子要素をレンダリングするかを指定するフラグ。 |
| maxPixelWidth | DWORD | in | 返されるビットマップの最大幅(ピクセル単位)。 |
| maxPixelHeight | DWORD | in | 返されるビットマップの最大高さ(ピクセル単位)。 |
| ppBitmapData | IBitmapData** | out | 要求されたビットマップ情報、およびそのビットマップに関連する情報を含む構造体。 |
戻り値
戻り値として考えられるコードには、次の表に示す値が含まれますが、これらに限定されません。
| 戻り値コード | 説明 |
|---|---|
| メソッドが成功しました。ppBitmapData には画像を含む IBitmapData が設定されます。 | |
| 画像を取得または変換できませんでした。ppBitmapData には NULL が設定されます。 | |
| handle が画像を返せるオブジェクトを参照していないか、 options の値が無効であるか、 ppBitmapData が NULL です。 |
解説(Remarks)
返される画像は次の特性を持ちます。
- Format: DXGI_FORMAT_B8G8R8A8_UNORM
- AlphaMode: DXGI_ALPHA_MODE_PREMULTIPLIED
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_IVisualTreeService2 "{130F5136-EC43-4F61-89C7-9801A36D2E95}" #usecom global IVisualTreeService2 IID_IVisualTreeService2 "{}" #comfunc global IVisualTreeService2_GetPropertyIndex 15 int64,wstr,var #comfunc global IVisualTreeService2_GetProperty 16 int64,int,var #comfunc global IVisualTreeService2_ReplaceResource 17 int64,int64,int64 #comfunc global IVisualTreeService2_RenderTargetBitmap 18 int64,int,int,int,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IVisualTreeService2 "{130F5136-EC43-4F61-89C7-9801A36D2E95}" #usecom global IVisualTreeService2 IID_IVisualTreeService2 "{}" #comfunc global IVisualTreeService2_GetPropertyIndex 15 int64,wstr,sptr #comfunc global IVisualTreeService2_GetProperty 16 int64,int,sptr #comfunc global IVisualTreeService2_ReplaceResource 17 int64,int64,int64 #comfunc global IVisualTreeService2_RenderTargetBitmap 18 int64,int,int,int,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。