IDsAdminNewObj
COM公式ドキュメント
IDsAdminNewObj インターフェイスは、プライマリまたはセカンダリのオブジェクト作成ウィザード拡張機能が、ページ数のデータを取得し、ウィザードのコマンド ボタンを制御するために使用します。
メソッド 2
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
IDsAdminNewObj::SetButtons メソッドは、ウィザードの特定のページに対して "次へ" コマンド ボタンを有効または無効にします。
| nCurrIndex | DWORD | in | "次へ" ボタンを有効または無効にする対象のウィザード ページの、0 から始まるインデックスを指定します。このインデックスは、メソッドを呼び出すウィザード拡張機能のページ数を基準とした相対値です。 |
| bValid | BOOL | in | "次へ" コマンド ボタンを有効にするか無効にするかを指定します。この値が 0 の場合、"次へ" コマンド ボタンは無効になります。この値が 0 以外の場合、"次へ" コマンド ボタンは有効になります。 |
戻り値
このメソッドは、これらの値のいずれかを返すことができます。
次の値のいずれかを返します。
解説(Remarks)
ページが最初に表示されるときの "次へ" コマンド ボタンの状態については、何も想定すべきではありません。オブジェクト作成拡張機能は、ページが最初に表示されるときと、ページ内のデータが変更されるときに、"次へ" コマンド ボタンの状態を設定する必要があります。ページ内のデータが必須でない場合は、ページが最初に表示されるときに "次へ" ボタンを有効にし、拡張機能によって状態を変更すべきではありません。
関数を呼び出す拡張機能が単一ページのプライマリ拡張機能であり、セカンダリ拡張機能が読み込まれていない場合、たとえばウィザードが単一ページのときは、コマンド ボタンは "戻る"、"次へ"、"キャンセル" ではなく、"OK" と "キャンセル" になります。この場合、この関数を呼び出すと "OK" ボタンが有効または無効になります。
IDsAdminNewObj::GetPageCounts メソッドは、ウィザード内の総ページ数と、拡張機能の最初のページのインデックスを取得します。
| pnTotal | INT* | inout | ウィザードに含まれる総ページ数を受け取る LONG 値へのポインターです。 |
| pnStartIndex | INT* | inout | 拡張機能の最初のページの、0 から始まるインデックスを受け取る LONG 値へのポインターです。 |
戻り値
このメソッドは、これらの値のいずれかを返すことができます。
次の値のいずれかを返します。
解説(Remarks)
この関数は、 IDsAdminNewObjExt::AddPages を使用して追加されたページ数に基づいて結果を返します。Win32 API によるページ操作でページ数が変化した場合、返される値は正確でない可能性があります。このメソッドが IDsAdminNewObjExt::SetObject メソッドに応じて呼び出される場合、返されるページ数は正確である可能性が高くなります。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IDsAdminNewObj "{F2573587-E6FC-11D2-82AF-00C04F68928B}" #usecom global IDsAdminNewObj IID_IDsAdminNewObj "{}" #comfunc global IDsAdminNewObj_SetButtons 3 int,int #comfunc global IDsAdminNewObj_GetPageCounts 4 var,var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。#define global IID_IDsAdminNewObj "{F2573587-E6FC-11D2-82AF-00C04F68928B}" #usecom global IDsAdminNewObj IID_IDsAdminNewObj "{}" #comfunc global IDsAdminNewObj_SetButtons 3 int,int #comfunc global IDsAdminNewObj_GetPageCounts 4 sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。