Win32 API 日本語リファレンス
ホームNetworking.Clustering › IWEExtendPropertySheet

IWEExtendPropertySheet

COM
IID97dede61-fc6b-11cf-b5f5-00a0c90ab505継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

IWEExtendPropertySheet インターフェイスを実装すると、クラスター オブジェクト用のプロパティ シート ページを作成し、フェールオーバー クラスター アドミニストレーターのプロパティ シートに追加できます。

メソッド 1

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

vtbl 3 HRESULT CreatePropertySheetPages(IUnknown* piData, IWCPropertySheetCallback* piCallback)

クラスター オブジェクト用のプロパティ ページを作成し、フェールオーバー クラスター アドミニストレーターのプロパティ シートに追加します。

piDataIUnknown*in

新しいプロパティ ページに関連する情報を取得するための IUnknown インターフェイス ポインターです。piData ポインターを使用して IUnknown::QueryInterface メソッドを呼び出すと、次のインターフェイスを取得できます。

さらに、プロパティ シート ページを作成する対象の クラスター オブジェクト の種類に応じて、次のいずれかのインターフェイスへのポインターも取得できます。
piCallbackIWCPropertySheetCallback*inクラスター アドミニストレーターのプロパティ シートにプロパティ ページを追加するための IWCPropertySheetCallback インターフェイス実装へのポインターです。

戻り値

次のいずれかの値、または操作の結果を表す任意の HRESULT を返します。

戻り値/値 説明
NOERROR
0
操作は成功しました。
E_INVALIDARG
0x80070057
少なくとも 1 つのパラメーターが無効です。
E_NOTIMPL
0x80004001
拡張機能はプロパティ ページの追加をサポートしていません。

解説(Remarks)

フェールオーバー クラスター アドミニストレーター は、プロパティ シートを拡張して追加の クラスター オブジェクト を扱えるようにするために、拡張機能の CreatePropertySheetPages メソッドを呼び出します。

実装者への注意

追加するプロパティ ページごとに、次の手順を実行します

  1. piData を使用して QueryInterface を呼び出し、そのページに関連付けられたクラスター オブジェクトのインターフェイス ポインターを取得します。たとえば、リソース用のプロパティ ページを追加する場合は、 IGetClusterResourceInfo インターフェイスへのポインターを取得します。 対象のオブジェクトとは無関係のデータを取得するインターフェイスに対しても照会が成功する場合がありますが、そのメソッドを呼び出すとエラーが返されることを想定してください。
  2. ページを作成するには、関数 CreatePropertySheetPage を呼び出します。クラスター アドミニストレーターが提供するページと同じ外観にするには、新しい各プロパティ ページの大きさを幅 252 ダイアログ単位、高さ 218 ダイアログ単位以下とし、次の 2 つの標準コントロールを含める必要があります。
    • オブジェクトのアイコン用に、位置 (8,7)、サイズ (18,20) のアイコン コントロール。
    • オブジェクトの名前用に、位置 (38,12)、サイズ (206,10) のスタティック コントロール。
  3. ページをプロパティ シートに追加するには、piCallback が指す IWCPropertySheetCallback::AddPropertySheetPage メソッドを呼び出します。
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
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 指定が可能。