All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.jinterop.dcom.impls.automation.IJIEnumVariant Maven / Gradle / Ivy

There is a newer version: 3.5.1
Show newest version
/** 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;

/**
 * < p>
 * 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; }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy