8

クラスに機能を追加して、for-each ループで使用できるようにしたいと考えています。

ハッシュマップ、配列リスト、キュー、セットなどを書き、反復処理を行いました。現在、IUnknown クラスを実装してカスタム イテレータを構築する方法を探しています。

使い方はもうわかった

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

しかし、これらの例はすべて Collection クラスに基づいているため、使用したくありません。

私が注目したいのは、IUnknown インターフェイスを実装しようとすることですが、その方法に関する参考文献が見つかりませんでした。

私は Java、C++、C# などで豊富な経験を持っているので、VBA でさえ、おそらくそのような API 呼び出しでさえ、それを実装する方法が必要であると思います。

4

2 に答える 2

8

要するに、IUnknown を実装できないということです。同じことがCollectionにも当てはまります。どちらも、VBA での拡張に使用できない Com オブジェクトです。ただし、カスタム コレクションを作成したり、その他のとてもクールな反復処理を実行したりできます。

于 2014-08-27T01:12:46.090 に答える