Um den Inhalt eines Objekts-Snap-in ordnungsgemäß anzuzeigen, müssen Sie zum Auflisten der untergeordneten Elemente des Objekts, sofern vorhanden. Der beste Platz für diese Änderung ist in der Notify -Methode der Datenklasse-Snap-in-(in dieser Diskussion, CSnapNameData
).
Hinweis&Nbsp; Die Snap-in-Klasse wird von CSnapInItemImpl abgeleitet.
Standardmäßig erstellt der ATL-Objekt-Assistenten einen Handler für diese Benachrichtigung. In diesem Ereignishandler müssen Sie ändern die vorhandenen switch
Anweisung zum Behandeln der MMCN_EXPAND und MMCN_SHOW Benachrichtigungen.
Die MMCN_EXPAND -Benachrichtigung wird gesendet, wenn der Ordner-Snap-in-Objekt erweitert oder vergeben werden muss. In diesem Fall brauchen Sie nur den Bereich Elemente auflisten. Diese Enumeration erfolgt der case
-Anweisung für die MMCN_EXPAND -Benachrichtigung.
Der Bereich Elemente einfügen, zuerst rufen Sie die IConsoleNameSpace -Schnittstelle für das Snap-in-Objekt, und rufen Sie dann die InsertItem- Methode. Der folgende Code veranschaulicht Abrufen der erforderlichen Schnittstellen
CComQIPtrlt; IConsoleNameSpace,
& IID_IConsoleNameSpace > spConsoleNameSpace(pConsole);
/ / TODO: Bereich Elemente mit einer selbst-definierten Funktion auflisten
Die MMCN_SHOW -Benachrichtigung wird gesendet, wenn ein Element ausgewählt oder zum ersten Mal deaktiviert. Diese Enumeration erfolgt der case
-Anweisung für die MMCN_SHOW -Benachrichtigung. Im Gegensatz zu der MMCN_EXPAND -Benachrichtigung müssen Sie Ergebniselemente Bereich sowohl im Bereich Elemente auflisten.
Zuerst Auflisten der Bereich Elemente durch Abrufen der IConsoleNameSpace -Schnittstelle für das Snap-in-Objekt und dann Aufrufen der InsertItem- Methode. Nachdem Sie den Bereich Bereich Elemente aufgezählt haben, das gleiche zu tun für das Ergebnis im Bereich Elemente durch Abrufen der IResultData -Schnittstelle und ein Aufruf an InsertItem.
CComQIPtrlt; IConsoleNameSpace,
& IID_IConsoleNameSpace > spConsoleNameSpace(pConsole);
/ / TODO: Bereich Elemente mit einer selbst-definierten Funktion auflisten
CComQIPtr < IResultData & IID_IResultData > spResultData(pConsole);
/ / TODO: Auflisten der Ergebniselemente mit einer selbst-definierten Funktion