How To Create Task and Appointment Items with Outlook Object Model and Visual J++ (216726)



The information in this article applies to:

  • Microsoft Visual J++ 6.0
  • Microsoft Outlook 98

This article was previously published under Q216726

SUMMARY

This article contains sample code demonstrating how to use the Outlook Object Model (OOM) with Visual J++ to create a Task item and an Appointment item.

The article also shows how to use Java's Time class to set up some "time-related" properties of the Task and Appointment items.

MORE INFORMATION

Please use the following steps to build and run the sample code:

  1. Start Visual J++ 6.0 and create a new Console Application project.
  2. In the Project Explorer window, open your Project tree and double-click on the Class1.java file created for you.
  3. From the Project menu, select the Add COM Wrapper, click Outlook 98 Type Library, and click OK.
  4. Ignore the created code and replace it with the following code. Make sure you update the code whenever you see the TO DO comment.
  5. Compile and run the code.

Sample Code


import com.ms.com.*;	
import com.ms.wfc.ui.*;   //in order to use MessageBox
import com.ms.wfc.app.*;  //in order to use Time object
import msoutl85.*;        //in order to use OOM


public class Class1
{
  public static void main(String[] args)
  {
    _Application olApp = (_Application) new msoutl85.Application();
    //app get confused with app of com.ms.wfc.app.*, so we add msoutl85
    //otherwise we can use the next line instead!
    //_Application ol = (_Application) new Application(); 	
    NameSpace mapiNS = olApp.GetNamespace("MAPI");
	
    //Create a null parameter for later use
    Variant nullParam = new Variant();
    nullParam.noParam();
	
    //Create a profile
    Variant profile = new Variant();
    profile.putString("<ProfileName>"); //TO DO: change to your profile
    mapiNS.Logon(profile, nullParam, nullParam, nullParam);
		
    //Create a parameter for Display use later
    Variant model = new Variant();
    model.putBoolean(true);

    //Get the Tasks folder
    MAPIFolder oTaskFolder = mapiNS.GetDefaultFolder(OlDefaultFolders.olFolderTasks);
    System.out.println("Task Folder Name : " + oTaskFolder.getName());	
    //oTaskFolder.Display();  

	
    //Create a new task in the folder oFolder
    try
    {	
	//Create a task
	_TaskItem newTask = null;
	newTask = (_TaskItem)oTaskFolder.getItems().Add(nullParam);
	
	//set up some properties for the new task
	newTask.setSubject("This is a test");
	newTask.setBody("How are you doing today?");
	
	Time tm = new Time(1999, 1, 30); //year, month, day
	newTask.setStartDate(tm.toDouble());
	newTask.setDueDate(tm.toDouble());
		
	//Save
	newTask.Save();
	//newTask.Display(model);
         newTask = null;
    }
    catch(java.lang.Exception e) 
    { 
	System.out.println( "Logon failed!" ); 
	e.printStackTrace(); 
    } 
 		
    //get the Calendar folder
    MAPIFolder oCalFolder = mapiNS.GetDefaultFolder(OlDefaultFolders.olFolderCalendar);
    System.out.println("Folder Name : " + oCalFolder.getName());
    //MessageBox.show(oCalFolder.getName());
    //oCalFolder.Display();

    //create an appointment in the Calendar folder
    try
    {
	//create an appointment
	_AppointmentItem oNewAppt = null;
	oNewAppt = (_AppointmentItem)oCalFolder.getItems().Add(nullParam);
		
	//sep up some properties
	oNewAppt.setSubject("Another Test");
	oNewAppt.setBody("Hello! Again!");
		
	Time tmStart = new Time("02/1/1999 08:00 am");
	Time tmEnd = new Time("02/1/1999 10:00 am");
	oNewAppt.setStart(tmStart.toDouble());
	oNewAppt.setEnd(tmEnd.toDouble());
	
	//oNewAppt.setAllDayEvent(true); 
	oNewAppt.setAllDayEvent(false);
	oNewAppt.setLocation("LPB");
		
	//save
	oNewAppt.Save();
	//oNewAppt.Display(model);
         oNewAppt = null;		
    }
    catch(java.lang.Exception e) 
    { 
      System.out.println( "Logon failed!" ); 
      e.printStackTrace(); 
    } 		

    System.out.println("Program terminated");
	
    //clean up
    oTaskFolder = null;
    oCalFolder =  null;
    olApp = null;
    mapiNS = null;
  }
}

				

REFERENCES

For more information about using the Outlook Object Model with Visual J++, please see the following article in the Microsoft Knowledge Base:

216728 How to Send Message using Outlook Object Model with Visual J++


Modification Type:MinorLast Reviewed:7/1/2004
Keywords:kbhowto kbJava kbMsg kbOutlookObj KB216726