Skip navigation links
JNA API 5.6.0
com.sun.jna.platform.win32.COM

Class IComEnumVariantIterator

  • All Implemented Interfaces:
    java.io.Closeable, 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>, java.io.Closeable
    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
          OleAuto.INSTANCE.VariantClear(v);
     }
     

    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.
        Parameters:
        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

        Parameters:
        dispatch - IDispatch to be analysed
        Returns:
        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 java.io.Closeable
        Specified by:
        close in interface java.lang.AutoCloseable
      • finalize

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

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

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