Он делает это очень похожим образом. Класс, который поддерживает foreach, имеет метод с DispID -4, который возвращает объект перечислителя, аналогичный реализации IEnumerator.
Если вы намереваетесь реализовать это в VB6, то, хотя это возможно, вам придется быть готовым прыгать через непомерно сложные обручи, тем более что такие безумно сложные вещи теперь уже давно не продаются по дате. COM-эквивалент IEnumerator - это stole.IEnumVARIANT
, одна из характеристик, которая делает его несовместимым с простой реализацией в VB6, заключается в том, что его метод Next
использует S_FALSE
HResult.
Если вы действительно, действительно хотите это сделать, тогда получите эту книгу: Advanced Visual Basic 6 , если можете. Предупреждение с точки зрения типичного разработчика VB6 термин «продвинутый» на самом деле не оправдывает себя. «Безумно глубокий VB6» будет лучшим описанием.