SWT OLE + Java

ennbee

Grünschnabel
Hallo...

habe vor Tagen schon mal mein Problem gepostet:

http://www.tutorials.de/forum/java/241237-outlook-termin-erzeugen-java.html

.. und leider keine (aussagekräftige) Hilfe bekommen.
Nun fällt mir als Anfängerin das Ausformulieren meines Problemes bzw. der Aufgabe ja auch nicht so leicht, zumal ich das Fachchinesisch noch nicht beherrsche ...
Also, ich möchte durch Betätigen eines Buttons in meiner Java-Applikation ein Outlook-Termin-Fenster öffnen.
Dafür im www Hilfe oder gar Code zu finden... anscheinend schwierig *seufz*

Habe Fragmente aus Toms Code zu Hilfe genommen und bin nun bei Folgendem angelangt (snippet):
Code:
public OpenOutlook() {
	super("New Outlook Appointment", IAction.AS_PUSH_BUTTON);
	this.setImageDescriptor(UiPlugin.getImageDescriptor(OUTLOOK_IMG));
	this.setToolTipText("Outlook");
}

public void run() {
	try{
	  Display display = new Display();
	  Shell shell = new Shell(display);
			
	  OleFrame frame = new OleFrame(shell, SWT.NONE);
	  OleClientSite site = new OleClientSite(frame, SWT.NONE, "Outlook.Application");
	  site.doVerb(OLE.OLEIVERB_INPLACEACTIVATE);
			
	  OleAutomation auto = new OleAutomation(site);
	  int[] dispIDs = auto.getIDsOfNames(new String[] {"NewAppointment"});
	  auto.invoke(dispIDs[0]);
	  auto.dispose();
			
	  shell.dispose();
	  display.dispose();
	}
	catch (SWTException e){
	  e.printStackTrace();
	}
}

Das funktioniert leider auch noch nicht so richtig (verursacht "Invalid thread access"), könnte aber in die richtige Richtung gehen... oder?
Weiss einer von euch einen Lösungsansatz? Bin dankbar für jede Hilfe *wimperklimper*

Gruß
Nicole
 
Hab's nun soweit, das ein Outlook-Termin-Fenster geöffnet wird... fehlt noch Inhalt- und Parameterübergabe. Lösungsvorschläge immer gern an mich :-)

Wen's interessiert:
Code:
	public void run() {
		 Display display = Display.getCurrent();
		 Shell shell = new Shell(display);

		 OleFrame frame = new OleFrame(shell, SWT.NONE);
		 OleClientSite site = new OleClientSite(frame, SWT.NONE, "OVCtl.OVCtl");
		 site.doVerb(OLE.OLEIVERB_INPLACEACTIVATE);

		 OleAutomation auto = new OleAutomation(site);
		 int[] dispIDs = auto.getIDsOfNames(new String[] {"NewAppointment"});
		 auto.invoke(dispIDs[0]); 
		 auto.dispose();

		 shell.dispose();
         }
 
Zurück