[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [platform-ui-dev] SWT and acrobat activex control
|
You should try the newsgroup. Maybe someone from the SWT team or someone
from the community will be able to help you.
Simon :-)
"Tom DiZoglio"
<tom@xxxxxxxxxxx> To: <platform-ui-dev@xxxxxxxxxxx>
Sent by: cc:
platform-ui-dev-admin@ Subject: [platform-ui-dev] SWT and acrobat activex control
eclipse.org
08/19/02 03:24 PM
Please respond to
platform-ui-dev
I am trying to get the Acrobat Active X control working in SWT. I was
wondering if anyone has done this? I have pasted the code I have so far
below. The shell window appears but there is no control visible. I have
tried both OleClientsite and OleControlSite.
---------------------------
t0md
public static void main(String[] args)
{
Display display=new Display();
Shell shell=new Shell(display);
GridData data = new GridData(0);
shell.setLayoutData(data);
shell.setLayout(new org.eclipse.swt.layout.FillLayout());
ViewForm pdfForm=new ViewForm(shell,SWT.NONE);
OleFrame PDFFrame=new OleFrame(pdfForm,SWT.NONE);
// Border on right-hand side to make separation more obvious
pdfForm.setBorderVisible(true);
GridData gridData=new
GridData(GridData.FILL_HORIZONTAL|GridData.FILL_VERTICAL);
gridData.horizontalSpan=10;
PDFFrame.setLayoutData(gridData);
PDFFrame.setSize(300,200);
try {
// Create an Automation object for access to extended capabilities
// OleControlSite PDFControlSite=new
OleControlSite(PDFFrame,SWT.NONE,"PDF.PdfCtrl.1");
try {
OleClientSite PDFClientSite=new
OleClientSite(PDFFrame,SWT.NONE,"PDF.PdfCtrl.1");
// OleAutomation oleAutomation=new OleAutomation(PDFControlSite);
OleAutomation oleAutomation=new OleAutomation(PDFClientSite);
// int result = PDFControlSite.queryStatus(OLE.OLECMDID_PRINT);
int result = PDFClientSite.queryStatus(OLE.OLECMDID_PRINT);
if ((result & OLE.OLECMDF_SUPPORTED) == OLE.OLECMDF_SUPPORTED)
System.out.println("OLE.OLECMDID_PRINT is supported");
else
System.out.println("OLE.OLECMDID_PRINT is NOT supported");
if ((result & OLE.OLECMDF_ENABLED) == OLE.OLECMDF_ENABLED)
System.out.println("OLE.OLECMDID_PRINT is enabled");
else
System.out.println("OLE.OLECMDID_PRINT is NOT enabled");
// result = PDFControlSite.queryStatus(OLE.OLECMDID_OPEN);
result = PDFClientSite.queryStatus(OLE.OLECMDID_OPEN);
if ((result & OLE.OLECMDF_SUPPORTED) == OLE.OLECMDF_SUPPORTED)
System.out.println("OLE.OLECMDID_OPEN is supported");
else
System.out.println("OLE.OLECMDID_OPEN is NOT supported");
if ((result & OLE.OLECMDF_ENABLED) == OLE.OLECMDF_ENABLED)
System.out.println("OLE.OLECMDID_OPEN is enabled");
else
System.out.println("OLE.OLECMDID_OPEN is NOT enabled");
int[] rgdispid = oleAutomation.getIDsOfNames(new String[]{"AboutBox"});
int dispIdMember = rgdispid[0];
System.out.println("dispIdMember ="+dispIdMember);
oleAutomation.invoke(dispIdMember);
// Invoke the AddFile method
// Look up the IDs of the AddFile method and its parameter
rgdispid = oleAutomation.getIDsOfNames(new String[]{"setShowToolbar"});
dispIdMember = rgdispid[0];
System.out.println("dispIdMember ="+dispIdMember);
Variant bShowToolbar = new Variant((short)1); // set to true (0 = false)
if (oleAutomation.setProperty(dispIdMember, bShowToolbar) != true)
System.out.println("Error: setProperty(bShowToolbar)");
rgdispid = oleAutomation.getIDsOfNames(new String[]{"LoadFile"});
dispIdMember = rgdispid[0];
System.out.println("dispIdMember ="+dispIdMember);
// Variant fileName = new Variant("file:///C://test.pdf"); // set to true
(0 = false)
Variant fileName = new Variant("\\test.pdf"); // set to true (0 = false)
if (oleAutomation.setProperty(dispIdMember, fileName) != true)
System.out.println("Error: setProperty(fileName)");
// shell.pack();
shell.open();
pdfForm.setContent(PDFFrame);
// if (PDFControlSite.doVerb(OLE.OLEIVERB_SHOW) != OLE.OK)
// if (PDFClientSite.doVerb(OLE.OLEIVERB_SHOW) != OLE.OK)
// if (PDFClientSite.doVerb(OLE.OLEIVERB_UIACTIVATE) != OLE.OK)
boolean activated=(PDFClientSite.doVerb(OLE.OLEIVERB_INPLACEACTIVATE)
==OLE.S_OK);
if(activated)
System.out.println("Error: doVerb()");
while (!shell.isDisposed())
{
if (!display.readAndDispatch())
{
display.sleep();
}
}
oleAutomation.dispose();
pdfForm.dispose();
PDFFrame.dispose();
PDFClientSite.deactivateInPlaceClient();
// PDFControlSite.dispose();
PDFClientSite.dispose();
} catch(SWTError err) {
err.printStackTrace();
}
} catch(SWTException ex) {
ex.printStackTrace();
// Creation may have failed because control is not installed on machine
System.out.println("Error: Could Not Create PDF Control");
}
// activate the browser
try {
} catch(Exception e) {
e.printStackTrace();
}
}