package ocx;
import org.eclipse.jface.action.*;
import org.eclipse.jface.action.ToolBarManager;
import org.eclipse.jface.window.ApplicationWindow;import org.eclipse.swt.SWT;
import org.eclipse.swt.SWTException;
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.Variant;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
public class PDFViewer extends ApplicationWindow
{
    private OleControlSite site;
    private OleAutomation auto;    public PDFViewer()
    {
        super(null);
      //  this.addMenuBar();
      this.addToolBar(1);
    }    protected Control createContents(Composite parent)
    {
        Shell shell = this.getShell();
        shell.setText("PDF Viewer");
        shell.setSize(500, 450);        OleFrame frame = new OleFrame(shell, SWT.NONE);        try
        {
            site = new OleControlSite(frame, SWT.NONE, "TTF161.TTF1");
            auto = new OleAutomation(site);
            site.doVerb(OLE.OLEIVERB_SHOW);
           int[] rgdispid = auto.getIDsOfNames(new String[] { "InsertSheets" });
           int dispIdMember = rgdispid[0];          Variant[] rgvarg = new Variant[2];
           rgvarg[0] = new Variant(1);
           rgvarg[1] = new Variant(1);        Variant pVarResult = auto.invoke(dispIdMember, rgvarg);
       // rgdispid = auto.getIDsOfNames(new String[] { "LaunchDesigner" });
      //  dispIdMember = rgdispid[0];
         // rgvarg = new Variant[1];
         // rgvarg[0] = new Variant(1);
        
        //  pVarResult = auto.invoke(dispIdMember);
        
        rgdispid = auto.getIDsOfNames(new String[] { "SetSheet" });
//        auto.get
        if (rgdispid!=null)
        dispIdMember = rgdispid[0];
       //   rgvarg = new Variant[1];
       //   rgvarg[0] = new Variant(1);
        
          pVarResult = auto.invoke(dispIdMember);
        
           // shell.layout();
           // shell.open();            // loadFile("");
        }
        catch (SWTException ex)
        {
            System.out.println("Failed to create <<Acrobat>> : " +
                ex.getMessage());            return null;
        }        return frame;
    }    public static void main(String[] args)
    {
        PDFViewer viewer = new PDFViewer();      //  viewer.setStatus("1");
        
        viewer.setBlockOnOpen(true);
        viewer.open();        Display.getCurrent().dispose();
    }    protected ToolBarManager createToolBarManager()
    {
        ToolBarManager bar = new ToolBarManager();
        IContributionItem a=null;
       // a.
      //  bar.insert(1,a);
         a.update("asdf");
         bar.add(a);
    //    MenuManager fileMenu = new MenuManager("&File");
      //  MenuManager helpMenu = new MenuManager("&Help");      //  bar.add(fileMenu);
       // bar.add(helpMenu);              return bar;
    }    public void showPdfControl()
    {
        site.doVerb(OLE.OLEIVERB_SHOW);
    } /*   public void loadFile(String file)
    {
        showPdfControl();        int[] rgdispid = auto.getIDsOfNames(new String[] { "LoadFile" });
        int dispIdMember = rgdispid[0];        Variant[] rgvarg = new Variant[1];
        rgvarg[0] = new Variant(file);        Variant pVarResult = auto.invoke(dispIdMember, rgvarg);
    }*/
}