IBandSite
COM公式ドキュメント
バンドオブジェクトを制御するメソッドを公開します。
解説(Remarks)
IBandSite は、IDeskBand などのバンドオブジェクトをホストするために使用されます。
メソッド 8
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
バンドサイトオブジェクトにバンドを追加します。
| punk | IUnknown* | in | バンドサイトオブジェクトのインターフェイス。 |
戻り値
型: HRESULT
ShortFromResult(hresult) でバンド ID を返します。
バンドサイト内のバンドを列挙します。
| uBand | DWORD | in | 列挙を開始するには、このパラメーターを 0 にしてメソッドを呼び出します。このパラメーターが -1 の場合、 pdwBandID パラメーターは無視され、このメソッドはバンドサイト内のバンド数を返します。 |
| pdwBandID | DWORD* | out | バンド ID を受け取るバンド ID 変数のアドレス。 |
戻り値
型: HRESULT
成功した場合は S_OK を、エラーの場合は COM で定義されたエラーコードを返します。 最初のパラメーターが -1 の場合は、バンドサイト内のバンド数が 返されます。
バンドサイト内のバンドに関する情報を取得します。
| dwBandID | DWORD | in | クエリするバンドオブジェクトの ID。 |
| ppstb | IDeskBand** | outoptional | このメソッドが正常に返された際に、バンドを表す IDeskBand オブジェクトを指す IDeskBand インターフェイスポインターのアドレス。この値は NULL にできます。 |
| pdwState | DWORD* | outoptional | このメソッドが正常に返された際に、バンドオブジェクトの状態を受け取る DWORD 値へのポインター。この状態は BSSF_VISIBLE、BSSF_NOTITLE、および BSSF_UNDELETEABLE の組み合わせです。これらのフラグの詳細については、BANDSITEINFO を参照してください。状態情報が不要な場合、この値は NULL にできます。 |
| pszName | LPWSTR | outoptional | このメソッドが正常に返された際に、バンドオブジェクトの名前を受け取る cchName 個の Unicode 文字のバッファーへのポインター。 |
| cchName | INT | in | pszName バッファーのサイズ(文字数)。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は、HRESULT エラーコードを返します。
バンドサイト内のバンドの状態を設定します。
| dwBandID | DWORD | in | 設定するバンドの ID。このパラメーターが -1 の場合は、 バンドサイト内のすべてのバンドの状態を設定します。 |
| dwMask | DWORD | in | 設定する状態のマスク。 |
| dwState | DWORD | in | 設定する状態の値。これらは BSSF_* フラグの組み合わせです。詳細については、BANDSITEINFO を参照してください。 |
戻り値
型: HRESULT
成功した場合は S_OK を、それ以外の場合は COM で定義されたエラーコードを返します。
バンドサイトからバンドを削除します。
| dwBandID | DWORD | in | 削除するバンドの ID。 |
戻り値
型: HRESULT
成功した場合は S_OK を、それ以外の場合は COM で定義されたエラーコードを返します。
バンドサイトから指定されたバンドオブジェクトを取得します。
| dwBandID | DWORD | in | 取得するバンドオブジェクトの ID。 |
| riid | GUID* | in | 取得するオブジェクトの IID。 |
| ppv | void** | out | 要求されたオブジェクトへのポインターを受け取る ポインター変数のアドレス。 |
戻り値
型: HRESULT
成功した場合は S_OK を、それ以外の場合は COM で定義されたエラーコードを返します。
バンドサイトに関する情報を設定します。
| pbsinfo | BANDSITEINFO* | in | オブジェクトのバンドサイト情報を受け取る BANDSITEINFO 構造体のアドレス。この構造体の dwMask メンバーが、 どの情報を設定するかを指定します。 |
戻り値
型: HRESULT
成功した場合は S_OK を、それ以外の場合は COM で定義されたエラーコードを返します。
バンドサイト内のバンドに関する情報を取得します。
| pbsinfo | BANDSITEINFO* | inout | オブジェクトのバンドサイト情報を格納する BANDSITEINFO 構造体のアドレス。この構造体の dwMask メンバーが、 どの情報を要求するかを指定します。 |
戻り値
型: HRESULT
成功した場合は S_OK を、それ以外の場合は COM で定義されたエラーコードを返します。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IBandSite "{4CF504B0-DE96-11D0-8B3F-00A0C911E8E5}" #usecom global IBandSite IID_IBandSite "{}" #comfunc global IBandSite_AddBand 3 sptr #comfunc global IBandSite_EnumBands 4 int,var #comfunc global IBandSite_QueryBand 5 int,sptr,var,var,int #comfunc global IBandSite_SetBandState 6 int,int,int #comfunc global IBandSite_RemoveBand 7 int #comfunc global IBandSite_GetBandObject 8 int,var,sptr #comfunc global IBandSite_SetBandSiteInfo 9 var #comfunc global IBandSite_GetBandSiteInfo 10 var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IBandSite "{4CF504B0-DE96-11D0-8B3F-00A0C911E8E5}" #usecom global IBandSite IID_IBandSite "{}" #comfunc global IBandSite_AddBand 3 sptr #comfunc global IBandSite_EnumBands 4 int,sptr #comfunc global IBandSite_QueryBand 5 int,sptr,sptr,sptr,int #comfunc global IBandSite_SetBandState 6 int,int,int #comfunc global IBandSite_RemoveBand 7 int #comfunc global IBandSite_GetBandObject 8 int,sptr,sptr #comfunc global IBandSite_SetBandSiteInfo 9 sptr #comfunc global IBandSite_GetBandSiteInfo 10 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。