Wir haben ein Problem mit einem ATL-basierten Visual C++ MMC Snapin. Wir haben ein Bereichsobjekt, das nur im Bereich "Bereich" angezeigt wird. Wenn dieses Element ausgewählt ist, füllt es den Ergebnisbereich mit einer Reihe von Ergebniselementen.IResultData :: DeleteItem und IResultData :: DeleteAllRsltItems geben E_UNEXPECTED zurück
Wenn der Benutzer den Popup-Menübefehl "Alle Objekte löschen" auswählt, wird unser Snapin-Code aufgerufen - zuerst macht er etwas Arbeit und fährt dann mit dem Löschen der Ergebnisansicht fort. Wir möchten folgendes Verhalten: Der Benutzer klickt auf diesen Menüeintrag, unser benutzerdefinierter Code wird aufgerufen, um nützliche Arbeit zu leisten, dann verschwinden alle Einträge aus dem Ergebnisbereich, der Bereich bleibt ausgewählt.
Ich habe versucht, zwei Variationen zu tun, um alle Ergebniselemente zu entfernen.
Variante 1 - es ruft IResultData::DeleteAllRsltItems()
, die E_UNEXPECTED
zurückgibt und Elemente werden nicht entfernt - sie bleiben einfach dort.
VAriation 2 - es ruft IResultData::DeleteItem()
für jedes Element auf, das zuvor in das Ergebnisfenster eingefügt wurde. Jeder Anruf gibt erneut E_UNEXPECTED
zurück und Elemente werden nicht entfernt.
Wie entferne ich alle Ergebniselemente ordnungsgemäß aus der MMC-Ansicht?