ホーム › Networking.Clustering › IWEExtendPropertySheet
IWEExtendPropertySheet
COM公式ドキュメント
IWEExtendPropertySheet インターフェイスを実装すると、クラスター オブジェクト用のプロパティ シート ページを作成し、フェールオーバー クラスター アドミニストレーターのプロパティ シートに追加できます。
メソッド 1
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 3 HRESULT CreatePropertySheetPages(IUnknown* piData, IWCPropertySheetCallback* piCallback)
クラスター オブジェクト用のプロパティ ページを作成し、フェールオーバー クラスター アドミニストレーターのプロパティ シートに追加します。
| piData | IUnknown* | in | 新しいプロパティ ページに関連する情報を取得するための IUnknown インターフェイス ポインターです。piData ポインターを使用して IUnknown::QueryInterface メソッドを呼び出すと、次のインターフェイスを取得できます。 さらに、プロパティ シート ページを作成する対象の クラスター オブジェクト の種類に応じて、次のいずれかのインターフェイスへのポインターも取得できます。
|
| piCallback | IWCPropertySheetCallback* | in | クラスター アドミニストレーターのプロパティ シートにプロパティ ページを追加するための IWCPropertySheetCallback インターフェイス実装へのポインターです。 |
戻り値
次のいずれかの値、または操作の結果を表す任意の HRESULT を返します。
| 戻り値/値 | 説明 |
|---|---|
|
操作は成功しました。 |
|
少なくとも 1 つのパラメーターが無効です。 |
|
拡張機能はプロパティ ページの追加をサポートしていません。 |
解説(Remarks)
フェールオーバー クラスター アドミニストレーター は、プロパティ シートを拡張して追加の クラスター オブジェクト を扱えるようにするために、拡張機能の CreatePropertySheetPages メソッドを呼び出します。
実装者への注意
追加するプロパティ ページごとに、次の手順を実行します
- piData を使用して QueryInterface を呼び出し、そのページに関連付けられたクラスター オブジェクトのインターフェイス ポインターを取得します。たとえば、リソース用のプロパティ ページを追加する場合は、 IGetClusterResourceInfo インターフェイスへのポインターを取得します。 対象のオブジェクトとは無関係のデータを取得するインターフェイスに対しても照会が成功する場合がありますが、そのメソッドを呼び出すとエラーが返されることを想定してください。
-
ページを作成するには、関数
CreatePropertySheetPage を呼び出します。クラスター アドミニストレーターが提供するページと同じ外観にするには、新しい各プロパティ ページの大きさを幅 252 ダイアログ単位、高さ 218 ダイアログ単位以下とし、次の 2 つの標準コントロールを含める必要があります。
- オブジェクトのアイコン用に、位置 (8,7)、サイズ (18,20) のアイコン コントロール。
- オブジェクトの名前用に、位置 (38,12)、サイズ (206,10) のスタティック コントロール。
- ページをプロパティ シートに追加するには、piCallback が指す IWCPropertySheetCallback::AddPropertySheetPage メソッドを呼び出します。
出典・ライセンス: 上記「公式ドキュメント」の内容は 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_IWEExtendPropertySheet "{97DEDE61-FC6B-11CF-B5F5-00A0C90AB505}"
#usecom global IWEExtendPropertySheet IID_IWEExtendPropertySheet "{}"
#comfunc global IWEExtendPropertySheet_CreatePropertySheetPages 3 sptr,sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。