Skip navigation links
JNA API 4.5.2

Class IComEnumVariantIterator

  • All Implemented Interfaces:, java.lang.AutoCloseable, java.lang.Iterable<Variant.VARIANT>, java.util.Iterator<Variant.VARIANT>

    public class IComEnumVariantIterator
    extends java.lang.Object
    implements java.lang.Iterable<Variant.VARIANT>, java.util.Iterator<Variant.VARIANT>,
    Wrapper for an EnumVariant Iteration. The usecase is a for-loop in the style:
     // Aquire an IDispatch, that has a new NewEnum Property (DISPID_NEWENUM)
     for(VARIANT v: IComEnumVariantIterator.wrap(dispatch)) {
          // Work with the acquired Variant
          // ...
          // Finally free it

    The IComEnumVariantIterator iterator closes the enumeration it wraps after the enumeration is exhausted or when the iterator is GCed, whatever happens earlier.

    • Constructor Detail

      • IComEnumVariantIterator

        public IComEnumVariantIterator(EnumVariant backingIteration)
        IComEnumVariantIterator wraps the supplied EnumVariant and exposes that as an Iterable<Variant.VARIANT>/Iterator<Variant.VARIANT>. The class takes possion of the supplied EnumVariant. So the EnumVariant is Released when the enumeration is exhausted or the Iterator is GCed.
        backingIteration -
    • Method Detail

      • wrap

        public static IComEnumVariantIterator wrap(IDispatch dispatch)
        Helper to get new enumeration from an IDispatch.

        This expects, that the supplied IDispatch has a property identified by a OaIdl.DISPID of OaIdl.DISPID_NEWENUM

        dispatch - IDispatch to be analysed
        IComEnumVariantIterator wrapping the enumeration queried from the supplied object
      • hasNext

        public boolean hasNext()
        Specified by:
        hasNext in interface java.util.Iterator<Variant.VARIANT>
      • close

        public void close()
        Specified by:
        close in interface
        Specified by:
        close in interface java.lang.AutoCloseable
      • finalize

        protected void finalize()
                         throws java.lang.Throwable
        finalize in class java.lang.Object
      • remove

        public void remove()
        Specified by:
        remove in interface java.util.Iterator<Variant.VARIANT>
JNA API 4.5.2

Copyright © 2007-2017 Timothy Wall. All Rights Reserved.