实现支持VBS的For Each语法的COM组件
VBS支持通过For Each遍历集合对象,但是如何用Delphi实现这样一个COM对象呢?
其实很简单
第一步:实现IEnumVARIANT接口,其声明如下
IEnumVARIANT = interface (IUnknown)
['{00020404-0000-0000-C000-000000000046}']
function Next (celt; var rgvar; pceltFetched): HResult;
function Skip (celt): HResult;
function Reset: HResult;
function Clone(out Enum): HResult;
end;
第二步:给我们的COM对象添加一个属性,名称为_NewEnum,类型IUnknown,DispID=-4
实际返回的内容就是实现了IEnumVARIANT接口的对象
That All!