存在する場合、スナップイン オブジェクトの内容を正しく表示するには、オブジェクトの子アイテムを列挙する必要。この変更のための最高の場所スナップイン データ クラスの通知方法には (この議論の CSnapNameData )。
注特価;CSnapInItemImplからスナップインのデータ クラスを派生します。(&N)。
既定では、ATL オブジェクト ウィザードはこの通知のハンドラーを作成します。このハンドラーでは、既存を変更する必要があります switch を処理するステートメント、 MMCN_EXPANDと MMCN_SHOW通知。
MMCN_EXPAND通知が送信されるときにスナップイン オブジェクト フォルダーを拡大または縮小する必要があります。この例では、スコープ ウィンドウの項目を列挙することのみ必要があります。この列挙体で行われます、 case 、 MMCN_EXPAND通知のステートメント。
スコープ ウィンドウの項目を挿入するには、最初に取得、 IConsoleNameSpaceスナップインでオブジェクトのインターフェイスし、を呼び出して、 InsertItemメソッド。次のコードを検索に必要なインターフェイスの例します。
CComQIPtrlt、IConsoleNameSpace、・ IID_IConsoleNameSpace > spConsoleNameSpace(pConsole);//TODO: スコープ ウィンドウの項目、ユーザー定義関数の列挙
MMCN_SHOW通知が送信されるときに、項目を選択または、初めてでも。この列挙体で行われます、 case 、 MMCN_SHOW通知のステートメント。MMCN_EXPANDの通知とは異なり、結果ウィンドウの項目とスコープ ウィンドウの項目を列挙する必要があります。
最初に、取得することによってスコープ項目を列挙、 スナップイン オブジェクト、および [通話のためのIConsoleNameSpaceフェース、 InsertItemメソッド。スコープ ウィンドウの項目を列挙した後、同じ結果を取得することによってウィンドウの項目は、 IResultDataフェースとする呼び出しを行う InsertItem。
CComQIPtrlt、IConsoleNameSpace、・ IID_IConsoleNameSpace > spConsoleNameSpace(pConsole);//TODO: スコープ ウィンドウの項目、ユーザー定義関数の列挙CComQIPtr < IResultData、& IID_IResultData > spResultData(pConsole);//TODO: 結果ウィンドウの項目、ユーザー定義関数の列挙