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.

questionAnswers(2)

yourAnswerToTheQuestion