国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
可以查看ActiveX控件屬性函數(shù)等的SWT中的代碼

/*
 * OLE and ActiveX example snippet: browse the typelibinfo for a program id
 *
 * For a list of all SWT example snippets see
 * http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-swt-home/dev.html#snippets
 */
import org.eclipse.swt.SWT;
import org.eclipse.swt.SWTException;
import org.eclipse.swt.internal.ole.win32.TYPEATTR;
import org.eclipse.swt.ole.win32.OLE;
import org.eclipse.swt.ole.win32.OleAutomation;
import org.eclipse.swt.ole.win32.OleControlSite;
import org.eclipse.swt.ole.win32.OleFrame;
import org.eclipse.swt.ole.win32.OleFunctionDescription;
import org.eclipse.swt.ole.win32.OlePropertyDescription;
import org.eclipse.swt.widgets.Shell;

public class Snippet81 {

  public static void main(String[] args) {

    if (args.length == 0) {
      System.out.println("Usage: java Main <program id>");
      return;
    }

    String progID = args[0];

    Shell shell = new Shell();

    OleFrame frame = new OleFrame(shell, SWT.NONE);
    OleControlSite site = null;
    OleAutomation auto = null;
    try {
      site = new OleControlSite(frame, SWT.NONE, progID);
      auto = new OleAutomation(site);
    } catch (SWTException ex) {
      System.out.println("Unable to open type library for " + progID);
      return;
    }

    TYPEATTR typeattr = auto.getTypeInfoAttributes();
    if (typeattr != null) {
      if (typeattr.cFuncs > 0)
        System.out.println("Functions for " + progID + " :\n");
      for (int i = 0; i < typeattr.cFuncs; i++) {
        OleFunctionDescription data = auto.getFunctionDescription(i);
        String argList = "";
        int firstOptionalArgIndex = data.args.length
            - data.optionalArgCount;
        for (int j = 0; j < data.args.length; j++) {
          argList += "[";
          if (j >= firstOptionalArgIndex)
            argList += "optional, ";
          argList += getDirection(data.args[j].flags) + "] "
              + getTypeName(data.args[j].type) + " "
              + data.args[j].name;
          if (j < data.args.length - 1)
            argList += ", ";
        }
        System.out.println(getInvokeKind(data.invokeKind) + " (id = "
            + data.id + ") : " + "\n\tSignature   : "
            + getTypeName(data.returnType) + " " + data.name + "("
            + argList + ")" + "\n\tDescription : "
            + data.documentation + "\n\tHelp File   : "
            + data.helpFile + "\n");
      }

      if (typeattr.cVars > 0)
        System.out.println("\n\nVariables for " + progID + " :\n");
      for (int i = 0; i < typeattr.cVars; i++) {
        OlePropertyDescription data = auto.getPropertyDescription(i);
        System.out.println("PROPERTY (id = " + data.id + ") :"
            + "\n\tName : " + data.name + "\n\tType : "
            + getTypeName(data.type) + "\n");
      }
    }

    auto.dispose();
    shell.dispose();

  }

  private static String getTypeName(int type) {
    switch (type) {
    case OLE.VT_BOOL:
      return "boolean";
    case OLE.VT_R4:
      return "float";
    case OLE.VT_R8:
      return "double";
    case OLE.VT_I4:
      return "int";
    case OLE.VT_DISPATCH:
      return "IDispatch";
    case OLE.VT_UNKNOWN:
      return "IUnknown";
    case OLE.VT_I2:
      return "short";
    case OLE.VT_BSTR:
      return "String";
    case OLE.VT_VARIANT:
      return "Variant";
    case OLE.VT_CY:
      return "Currency";
    case OLE.VT_DATE:
      return "Date";
    case OLE.VT_UI1:
      return "unsigned char";
    case OLE.VT_UI4:
      return "unsigned int";
    case OLE.VT_USERDEFINED:
      return "UserDefined";
    case OLE.VT_HRESULT:
      return "int";
    case OLE.VT_VOID:
      return "void";

    case OLE.VT_BYREF | OLE.VT_BOOL:
      return "boolean *";
    case OLE.VT_BYREF | OLE.VT_R4:
      return "float *";
    case OLE.VT_BYREF | OLE.VT_R8:
      return "double *";
    case OLE.VT_BYREF | OLE.VT_I4:
      return "int *";
    case OLE.VT_BYREF | OLE.VT_DISPATCH:
      return "IDispatch *";
    case OLE.VT_BYREF | OLE.VT_UNKNOWN:
      return "IUnknown *";
    case OLE.VT_BYREF | OLE.VT_I2:
      return "short *";
    case OLE.VT_BYREF | OLE.VT_BSTR:
      return "String *";
    case OLE.VT_BYREF | OLE.VT_VARIANT:
      return "Variant *";
    case OLE.VT_BYREF | OLE.VT_CY:
      return "Currency *";
    case OLE.VT_BYREF | OLE.VT_DATE:
      return "Date *";
    case OLE.VT_BYREF | OLE.VT_UI1:
      return "unsigned char *";
    case OLE.VT_BYREF | OLE.VT_UI4:
      return "unsigned int *";
    case OLE.VT_BYREF | OLE.VT_USERDEFINED:
      return "UserDefined *";
    }
    return "unknown " + type;
  }

  private static String getDirection(int direction) {
    String dirString = "";
    boolean comma = false;
    if ((direction & OLE.IDLFLAG_FIN) != 0) {
      dirString += "in";
      comma = true;
    }
    if ((direction & OLE.IDLFLAG_FOUT) != 0) {
      if (comma)
        dirString += ", ";
      dirString += "out";
      comma = true;
    }
    if ((direction & OLE.IDLFLAG_FLCID) != 0) {
      if (comma)
        dirString += ", ";
      dirString += "lcid";
      comma = true;
    }
    if ((direction & OLE.IDLFLAG_FRETVAL) != 0) {
      if (comma)
        dirString += ", ";
      dirString += "retval";
    }

    return dirString;
  }

  private static String getInvokeKind(int invKind) {
    switch (invKind) {
    case OLE.INVOKE_FUNC:
      return "METHOD";
    case OLE.INVOKE_PROPERTYGET:
      return "PROPERTY GET";
    case OLE.INVOKE_PROPERTYPUT:
      return "PROPERTY PUT";
    case OLE.INVOKE_PROPERTYPUTREF:
      return "PROPERTY PUT BY REF";
    }
    return "unknown " + invKind;
  }
}

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
How using DLL & COM and so on in squirrel script?
JAVA.SWT/JFace: SWT高級(jí)控件之SWT的高級(jí)應(yīng)用
SWT Designer 安裝與破解
SWT無邊框窗體實(shí)現(xiàn)鼠標(biāo)拖動(dòng)移動(dòng)
關(guān)于CString與VARIANT(CComVariant)之間的轉(zhuǎn)化
JAVA:SWT插件
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服