IConsoleNameSpace
COM公式ドキュメント
スナップインがスコープペイン内の動的なサブコンテナーを列挙できるようにします。何をサブコンテナーと見なすかは、個々のスナップインによって決まります。
メソッド 7
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
IConsoleNameSpace2::InsertItem メソッドを使用すると、スナップインはスコープビューに単一の項目を挿入できます。
| item | SCOPEDATAITEM* | inout | 新しいスコープ項目の属性を指定する SCOPEDATAITEM 構造体へのポインター。呼び出しから戻ると、構造体の ID メンバーには、新しく挿入された項目に対して MMC が割り当てた項目識別子が格納されます。この値は挿入された項目の HSCOPEITEM ハンドルであることに注意してください。スナップインは、後で IConsoleNameSpace2::GetItem などのメソッドを呼び出して挿入された項目を操作するために、この値を保存しておく必要があります。 |
戻り値
このメソッドは、次のいずれかの値を返すことがあります。
IConsoleNameSpace2::DeleteItem メソッドを使用すると、スナップインはスコープペインから単一の項目を削除できます。
| hItem | INT_PTR | in | 子項目をスコープペインから削除する対象となる項目へのハンドル。IConsoleNameSpace2::DeleteItem の第 2 引数が TRUE に設定されている場合、その項目自体も削除されます。 |
| fDeleteThis | INT | in | TRUE の場合、hItem で指定された項目も削除されます。それ以外の場合は削除されません。 |
戻り値
このメソッドは、次のいずれかの値を返すことがあります。
IConsoleNameSpace2::SetItem メソッドを使用すると、スナップインは単一のスコープビュー項目の属性を設定できます。
| item | SCOPEDATAITEM* | in | スコープペインで設定する項目に関する 情報を含む SCOPEDATAITEM 構造体へのポインター。 |
戻り値
このメソッドは、次のいずれかの値を返すことがあります。
IConsoleNameSpace2::GetItem メソッドを使用すると、スナップインは単一のスコープ項目の属性の一部またはすべてを取得できます。
| item | SCOPEDATAITEM* | inout | 取得する情報を指定し、項目に関する情報を受け取る SCOPEDATAITEM 構造体へのポインター。メッセージが送信されると、構造体の ID メンバーが項目を識別し、mask メンバーが取得する属性を指定します。 mask が SDI_STATE 値を指定している場合、nState メンバーには項目の状態情報が格納されます。 |
戻り値
このメソッドは、次のいずれかの値を返すことがあります。
IConsoleNameSpace2::GetChildItem メソッドを使用すると、スナップインはスコープペイン内の子項目のハンドルを取得できます。
| item | INT_PTR | in | スコープペイン内の親項目へのハンドル。 |
| pItemChild | INT_PTR* | out | 返されたスコープペイン内の子項目を識別するハンドルへのポインター。 |
| pCookie | INT_PTR* | out | 返された子項目に関連付けられた cookie へのポインター。 |
戻り値
このメソッドは、次のいずれかの値を返すことがあります。
解説(Remarks)
子項目のハンドルが取得できない場合は、NULL が返されます。
IConsoleNameSpace2::GetNextItem メソッドを使用すると、スナップインはスコープビュー内の次の項目のハンドルを取得できます。
| item | INT_PTR | in | スコープペイン内の項目へのハンドル。 |
| pItemNext | INT_PTR* | out | 返されたスコープペイン内の次の項目へのハンドルへのポインター。 |
| pCookie | INT_PTR* | out | 返された次の項目の cookie へのポインター。 |
戻り値
このメソッドは、次のいずれかの値を返すことがあります。
解説(Remarks)
指定した項目の次に項目が存在しない場合は、NULL が返されます。
IConsoleNameSpace2::GetParentItem メソッドを使用すると、スナップインはスコープビュー内の親項目のハンドルを取得できます。
| item | INT_PTR | in | スコープペイン内の項目へのハンドル。 |
| pItemParent | INT_PTR* | out | 返される親項目へのハンドルへのポインター。 |
| pCookie | INT_PTR* | out | 返される親項目に関連付けられた cookie へのポインター。 |
戻り値
このメソッドは、次のいずれかの値を返すことがあります。
解説(Remarks)
指定した項目に親が存在しない場合は、NULL が返されます。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IConsoleNameSpace "{BEDEB620-F24D-11CF-8AFC-00AA003CA9F6}" #usecom global IConsoleNameSpace IID_IConsoleNameSpace "{}" #comfunc global IConsoleNameSpace_InsertItem 3 var #comfunc global IConsoleNameSpace_DeleteItem 4 sptr,int #comfunc global IConsoleNameSpace_SetItem 5 var #comfunc global IConsoleNameSpace_GetItem 6 var #comfunc global IConsoleNameSpace_GetChildItem 7 sptr,var,var #comfunc global IConsoleNameSpace_GetNextItem 8 sptr,var,var #comfunc global IConsoleNameSpace_GetParentItem 9 sptr,var,var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IConsoleNameSpace "{BEDEB620-F24D-11CF-8AFC-00AA003CA9F6}" #usecom global IConsoleNameSpace IID_IConsoleNameSpace "{}" #comfunc global IConsoleNameSpace_InsertItem 3 sptr #comfunc global IConsoleNameSpace_DeleteItem 4 sptr,int #comfunc global IConsoleNameSpace_SetItem 5 sptr #comfunc global IConsoleNameSpace_GetItem 6 sptr #comfunc global IConsoleNameSpace_GetChildItem 7 sptr,sptr,sptr #comfunc global IConsoleNameSpace_GetNextItem 8 sptr,sptr,sptr #comfunc global IConsoleNameSpace_GetParentItem 9 sptr,sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。