Package org.eclipse.swt.internal.ole.win32

Examples of org.eclipse.swt.internal.ole.win32.VARIANT


  }

  private Variant execute(String code) {
    int[] dispIds = window.getIDsOfNames(new String[]{"execScript", "code"});
    Variant[] vArgs = new Variant[1];
    vArgs[0] = new Variant(code);
    int[] namedArgs = new int[1];
    namedArgs[0] = dispIds[1];
    Variant result = window.invoke(dispIds[0], vArgs, namedArgs);
    vArgs[0].dispose();
    if (result == null) {
      String lastError = window.getLastError();
      throw new RuntimeException("Error (" + lastError + ") executing JavaScript:\n" + code);
    }
View Full Code Here


    @Override
    protected Variant invoke(int dispId, int flags, Variant[] params) throws HResultException,
        InvocationTargetException {
      if (dispId == 0 && (flags & COM.DISPATCH_PROPERTYGET) != 0) {
        // MAGIC: this is the default property, let's just do toString()
        return new Variant(toString());
      } else if (dispId == 1) {
        if ((flags & COM.DISPATCH_METHOD) != 0) {
          try {
            IDispatch frameWnd =
                params[0].getType() == COM.VT_DISPATCH ? params[0].getDispatch() : null;
            boolean success = gwtOnLoad(frameWnd);
            // boolean return type
            return new Variant(success);
          } catch (SWTException e) {
            throw new HResultException(COM.E_INVALIDARG);
          }
        } else if ((flags & COM.DISPATCH_PROPERTYGET) != 0) {
          // property get on the method itself
          try {
            IDispatchImpl funcObj = new IDispatchImpl() {
              // do nothing, just return some IDispatch
              @Override
              protected Variant invoke(int dispId, int flags, Variant[] params)
                  throws HResultException, InstantiationException, InvocationTargetException {
                return new Variant();
              }

              @Override
              protected void getIDsOfNames(String[] names, int[] ids) throws HResultException {
              }
            };
            IDispatch disp = new IDispatch(funcObj.getAddress());
            disp.AddRef();
            return new Variant(disp);
          } catch (Exception e) {
            // just return VT_EMPTY
            return new Variant();
          }
        }
        throw new HResultException(COM.E_NOTSUPPORTED);
      }
      // The specified member id is out of range.
View Full Code Here

  /**
   * @see OleAutomation#invoke(int, Variant[])
   */
  public static Variant invoke(OleAutomation automation, int dispIdMember, Variant[] rgvarg) {
    try {
      Variant pVarResult = new Variant();
      int result = invoke(automation, dispIdMember, COM.DISPATCH_METHOD, rgvarg, null, pVarResult);
      return (result == COM.S_OK) ? pVarResult : null;
    } catch (Throwable e) {
      throw ReflectionUtils.propagate(e);
    }
View Full Code Here

    }
  }

  private static Variant maybeCopyVariant(Variant variant) {
    if (variant == null) {
      return new Variant();
    }
    switch (variant.getType()) {
      case COM.VT_DISPATCH : {
        IDispatch dispatch = variant.getDispatch();
        dispatch.AddRef();
        return new Variant(dispatch);
      }
      case COM.VT_UNKNOWN : {
        IUnknown unknown = variant.getUnknown();
        unknown.AddRef();
        return new Variant(unknown);
      }
    }
    return variant;
  }
View Full Code Here

    IDispatch dispatch = variant.getDispatch();
    int[] ids = oleAutomationGetIdsOfNames(dispatch);
    if (ids == null) {
      return false;
    }
    Variant result = null;
    try {
      result = oleAutomationInvoke(dispatch, ids[0]);
      /*
       * If the return type of the valueOf method is string, we assume it is a
       * String wrapper object.
       */
      return result.getType() == COM.VT_BSTR;
    } finally {
      if (result != null) {
        result.dispose();
      }
    }
  }
View Full Code Here

   *
   * @see com.google.gwt.dev.shell.JsValue#setBoolean(boolean)
   */
  @Override
  public void setBoolean(boolean val) {
    setVariant(new Variant(val));
  }
View Full Code Here

   *
   * @see com.google.gwt.dev.shell.JsValue#setByte(byte)
   */
  @Override
  public void setByte(byte val) {
    setVariant(new Variant(val));
  }
View Full Code Here

   *
   * @see com.google.gwt.dev.shell.JsValue#setChar(char)
   */
  @Override
  public void setChar(char val) {
    setVariant(new Variant(val));
  }
View Full Code Here

   *
   * @see com.google.gwt.dev.shell.JsValue#setDouble(double)
   */
  @Override
  public void setDouble(double val) {
    setVariant(new Variant(val));
  }
View Full Code Here

   *
   * @see com.google.gwt.dev.shell.JsValue#setInt(int)
   */
  @Override
  public void setInt(int val) {
    setVariant(new Variant(val));
  }
View Full Code Here

TOP

Related Classes of org.eclipse.swt.internal.ole.win32.VARIANT

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.