Aby poprawnie wyświetlić zawartość obiektu przystawki, należy wyliczyć elementy podrzędne obiektu, jeśli takie istnieją. Najlepsze miejsce dla tej zmiany jest w metodzie Powiadom klasie danych przystawki (w tej dyskusji, CSnapNameData
).
Uwaga Klasa przystawki danych pochodzi od CSnapInItemImpl.
Domyślnie kreator obiektu ATL tworzy program obsługi dla tego powiadomienia. W tej obsługi, trzeba zmodyfikować istniejące switch
instrukcji obsługi MMCN_EXPAND i MMCN_SHOW powiadomienia.
MMCN_EXPAND powiadomienie jest wysyłane, kiedy folderu przystawki obiekt musi zostać rozwinięte lub przejęła. W takim przypadku należy tylko wylicz elementy okienko zakresu. Tego wyliczenia odbywa się w case
oświadczenie o powiadomienie MMCN_EXPAND.
Aby wstawić elementy panelu zakresu, najpierw pobrać IConsoleNameSpace interfejsu dla obiektu przystawki, a następnie wywołać Użyj metody InsertItem metody. Poniższy kod demonstruje pobierania niezbędnych interfejsów
CComQIPtrlt, IConsoleNameSpace,
& IID_IConsoleNameSpace > spConsoleNameSpace(pConsole);
/ / TODO: Wyliczanie zakres okienku elementy z funkcja zdefiniowana przez użytkownika
MMCN_SHOW powiadomienie jest wysyłane, gdy element jest zaznaczony lub de-selected po raz pierwszy. Tego wyliczenia odbywa się w case
oświadczenie o powiadomienie MMCN_SHOW . W przeciwieństwie do powiadamiania MMCN_EXPAND musi wyliczyć wynik okienku elementy i zakres okienku elementy.
Po pierwsze, wylicz elementy zakres pobierając IConsoleNameSpace interfejsu dla przystawki obiektu, a następnie wywołania Użyj metody InsertItem metody. Po zostały wyliczone elementy panelu zakresu, czy taki sam wynik okienku elementy, pobierając IResultData interfejsu i transmisją do Użyj metody InsertItem.
CComQIPtrlt, IConsoleNameSpace,
& IID_IConsoleNameSpace > spConsoleNameSpace(pConsole);
/ / TODO: Wyliczanie zakres okienku elementy z funkcja zdefiniowana przez użytkownika
CComQIPtr < IResultData & IID_IResultData > spResultData(pConsole);
/ / TODO: wylicz elementy okienko wyników z funkcja zdefiniowana przez użytkownika