Jak zaimplementować niestandardową klasę iterowalną w VBA
Chcę dodać funkcję do moich klas, aby móc używać ich w pętlach for-each.
Napisałem hashapy, arraylists, kolejki, zestawy i tak dalej, które chcę iterować. Teraz szukam sposobu zaimplementowania klasy IUnknown do budowania niestandardowych iteratorów.
Już wiem, jak używać
private objPeople as Collection
Public Property Get NewEnum() As IUnknown
Attribute NewEnum.VB_UserMemId = -4
Attribute NewEnum.VB_MemberFlags = "40"
Set NewEnum = objPeople.[_NewEnum]
End Property
ale wszystkie te przykłady są oparte na klasie Collection, której nie chcę używać.
To, na czym chcę się skupić, to próba implementacji interfejsu IUnknown, ale nie znalazłem żadnych referencji, jak to zrobić.
Mam ogromne doświadczenie w Javie, C ++, C # i tak dalej, więc zakładam, że NALEŻY SPOSÓB zaimplementować to nawet w VBA, może nawet przy wywołaniach API takich rzeczy.