ienumvariant.java

来自「用于Java 组件和通过Windows COM 对象或Windows DLL 来」· Java 代码 · 共 57 行

JAVA
57
字号
package com.develop.jawin;
import com.develop.jawin.marshal.*;
import com.develop.jawin.constants.*;
import com.develop.jawin.win32.*;
import com.develop.io.*;
import java.io.*;

/** 
 * TODO: This class NOT TESTED YET! 
 *   new marshal features used
 *   skip (L) with neg args
 *   repeat (r)
 */
public class IEnumVariant extends COMPtr {
  static public final void init() {}
  static public final GUID proxyIID = IID_IEnumVariant;
  static public final int iidToken;
  static {
      iidToken = IdentityManager.registerProxy(proxyIID, IEnumVariant.class);
  }
  public int getGuidToken() {
    return iidToken;
  }

  public int Next(int elt, Object[] fillMe) throws COMException {
    try {
      NakedByteStream nbs = new NakedByteStream();
      int size = elt * Variant.SIZEOF;
      String instructions = "IM" + size + "A:H:L8n4L-8O|" + "r" + elt + "V!|";
      LittleEndianOutputStream leos = new LittleEndianOutputStream(nbs);
      leos.writeInt(elt);
      byte[] result = comInvoke(3, instructions, 12, nbs.getCount() , nbs.getInternalBuffer());
      ByteArrayInputStream bais = new ByteArrayInputStream(result);
      LittleEndianInputStream leis = new LittleEndianInputStream(bais);
      int ret = leis.readInt();
      for (int loop=0; loop<ret; loop++) {
	fillMe[loop] = Variant.marshalOut(leis);
      }
      return ret;
    } catch (IOException ioe) {
      throw new COMException(ioe);
    }
  }

  public void Skip(int elt) throws COMException, IOException {
    COMMarshal.invokeI(4, iidToken, getPeer(), getUnknown(), elt);
  }
  public void Reset() throws COMException, IOException {
    COMMarshal.invokeI(5, iidToken, getPeer(), getUnknown(), 0);
  }
  public void Clone() throws COMException, IOException {
    COMCustom.getIunknownProp(6, iidToken, getPeer(), getUnknown(), IID_IEnumVariant);
  }
}


⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?