Package com.sun.jna.platform.win32.COM
Class IComEnumVariantIterator
java.lang.Object
com.sun.jna.platform.win32.COM.IComEnumVariantIterator
- All Implemented Interfaces:
Closeable
,AutoCloseable
,Iterable<Variant.VARIANT>
,Iterator<Variant.VARIANT>
public class IComEnumVariantIterator
extends Object
implements Iterable<Variant.VARIANT>, Iterator<Variant.VARIANT>, 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 Summary
ConstructorsConstructorDescriptionIComEnumVariantIterator
(EnumVariant backingIteration) IComEnumVariantIterator wraps the supplied EnumVariant and exposes that as anIterable<Variant.VARIANT>
/Iterator<Variant.VARIANT>
. -
Method Summary
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface java.lang.Iterable
forEach, spliterator
Methods inherited from interface java.util.Iterator
forEachRemaining
-
Constructor Details
-
IComEnumVariantIterator
IComEnumVariantIterator wraps the supplied EnumVariant and exposes that as anIterable<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 Details
-
wrap
Helper to get new enumeration from anIDispatch
.This expects, that the supplied IDispatch has a property identified by a
OaIdl.DISPID
ofOaIdl.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 interfaceIterator<Variant.VARIANT>
-
next
- Specified by:
next
in interfaceIterator<Variant.VARIANT>
-
close
public void close()- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
-
finalize
-
iterator
- Specified by:
iterator
in interfaceIterable<Variant.VARIANT>
-
remove
public void remove()- Specified by:
remove
in interfaceIterator<Variant.VARIANT>
-