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

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

The 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;


/**

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 - 2025 Weber Informatics LLC | Privacy Policy