
org.jinterop.dcom.impls.automation.IJIEnumVariant Maven / Gradle / Ivy
/**j-Interop (Pure Java implementation of DCOM protocol)
* Copyright (C) 2006 Vikram Roopchand
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 3.0 of the License, or (at your option) any later version.
*
* Though a sincere effort has been made to deliver a professional,
* quality product,the library itself is distributed WITHOUT ANY WARRANTY;
* See the GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
*/
package org.jinterop.dcom.impls.automation;
import org.jinterop.dcom.common.JIException;
/** Represents the Windows COM IEnumVARIANT
Interface.
* Sample Usage:-
*
* //From MSEnumVariant example
* JIVariant variant = dispatch.get("_NewEnum");
* IJIComObject object2 = variant.getObjectAsComObject();
* IJIEnumVariant enumVARIANT = (IJIEnumVariant)JIObjectFactory.narrowObject(object2.queryInterface(IJIEnumVariant.IID));
*
* for (i = 0; i < 10; i++)
* {
* Object[] values = enumVARIANT.next(1);
* JIArray array = (JIArray)values[0];
* Object[] arrayObj = (Object[])array.getArrayInstance();
* for (int j = 0; j < arrayObj.length; j++)
* {
* System.out.println(((JIVariant)arrayObj[j]).getObjectAsInt() + "," + ((Integer)values[1]).intValue());
* }
* }
*
*
*
*
* @since 1.0
*
*/
public interface IJIEnumVariant {
/**
* IID representing the COM IEnumVARIANT
.
*/
public static final String IID = "00020404-0000-0000-C000-000000000046";
/** Definition from MSDN:
* Attempts to get the next celt items in the enumeration sequence. If fewer than the requested number
* of elements remain in the sequence, Next returns only the remaining elements.
*
*
* @param celt number of elements to be returned.
* @return results
* @throws JIException
*/
public Object[] next(int celt) throws JIException;
/** Definition from MSDN: Attempts to skip over the next celt elements in the enumeration sequence.
*
*
* @param celt number of elements to skip.
* @throws JIException
*/
public void skip(int celt) throws JIException;
/**Definition from MSDN:
* Resets the enumeration sequence to the beginning. There is no guarantee that exactly the same set of
* variants will be enumerated the second time as was enumerated the first time. Although an exact duplicate
* is desirable, the outcome depends on the collection being enumerated. You may find that it is impractical
* for some collections to maintain this condition (for example, an enumeration of the files in a directory).
*
* @throws JIException
*/
public void reset() throws JIException;
/** Definition from MSDN:
* Creates a copy of the current state of enumeration. Using this function, a particular point in the enumeration
* sequence can be recorded, and then returned to at a later time. The returned enumerator is of the same actual
* interface as the one that is being cloned.
* There is no guarantee that exactly the same set of variants will be enumerated the second time as was
* enumerated the first. Although an exact duplicate is desirable, the outcome depends on the collection
* being enumerated. You may find that it is impractical for some collections to maintain this condition
* (for example, an enumeration of the files in a directory).
*
* @return reference to the clone.
* @throws JIException
*/
public IJIEnumVariant Clone() throws JIException;
}