INodeProperties
COM公式ドキュメント
INodeProperties インターフェイスは、ノードのテキストのみのプロパティを取得します。
メソッド 1
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
GetProperty メソッドは、ノードのテキストのみのプロパティ値を取得します。INodeProperties::GetProperty メソッドの実装は、MMC 2.0 オートメーション オブジェクト モデルに基づくアプリケーションが Node.Property プロパティを取得するときに呼び出されます。
| pDataObject | IDataObject* | in | スナップインのデータ オブジェクトへのポインター。 |
| szPropertyName | LPWSTR | in | 取得するプロパティの名前。 |
| pbstrProperty | LPWSTR* | out | プロパティのテキスト値。 |
戻り値
このメソッドが呼び出されたときにスナップインがプロパティ値を提供する場合、スナップインは S_OK を返します。スナップインが S_FALSE を返した場合は、データ オブジェクトに対してプロパティ値が照会されます。
解説(Remarks)
Extended View 拡張は、CCF_DESCRIPTION と CCF_HTML_DETAILS の 2 つのプロパティを使用します。データ オブジェクトを使用して CCF_DESCRIPTION および CCF_HTML_DETAILS クリップボード形式を照会してこれらのプロパティの値を提供する代わりに、スナップインは INodeProperties::GetProperty を使用して Extended View にプロパティ値を返すことができます。この代替手段は、スナップインのデータ オブジェクトが目的の情報を提供しない状況で役立ちます。
スナップインは、CCF_DESCRIPTION および CCF_HTML_DETAILS のプロパティ値を提供するだけでなく、 INodeProperties を使用して他のテキストベースのプロパティ(たとえば、新しいビュー拡張など)の値を提供することもできます。
INodeProperties::GetProperty の詳細とコード例については、 Using the Extended View Extension - Implementation Details を参照してください。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_INodeProperties "{15BC4D24-A522-4406-AA55-0749537A6865}" #usecom global INodeProperties IID_INodeProperties "{}" #comfunc global INodeProperties_GetProperty 3 sptr,wstr,var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_INodeProperties "{15BC4D24-A522-4406-AA55-0749537A6865}" #usecom global INodeProperties IID_INodeProperties "{}" #comfunc global INodeProperties_GetProperty 3 sptr,wstr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。