-Suresh Pitchai
Most of us use Outlook client application for mailing purpose where we also schedule meeting. The person who is going to organize the meeting will send request to the attendees. The receiver who receives the request may or may not accept the request. The sender will not be aware whether the meeting request has been accepted or declined by the receiver. In order to overcome this we have a mechanism for tracking the request and notify the sender.
Most of us use Outlook client application for mailing purpose where we also schedule meeting. The person who is going to organize the meeting will send request to the attendees. The receiver who receives the request may or may not accept the request. The sender will not be aware whether the meeting request has been accepted or declined by the receiver. In order to overcome this we have a mechanism for tracking the request and notify the sender.
As
I .Net Developer, I have written a small plug-in to solve this
problem. I have achieved this by using the COM Component of
‘Microsoft. Office.Interop.Outlook’. This COM Component provides
set of delegate events like ItemEvents_11, ApplicationEvents_11 etc.,
which has the methods ItemAdd, ItemChange, ItemRemove etc., In order
to implement we can follow the below steps and sample code is given
at the end.
Step
1:
First get all appointments
in Outlook Application. By using the below sample code , we get all
the appointments of outlook application.
NameSpace
nameSpace = null;
MAPIFolder
calendar = null;
Items
outlookAppointments = null;
public
void
OnStartupComplete(ref
System.Array
custom)
{
nameSpace
= app.GetNamespace("mapi");
nameSpace.Logon("",
"",
true,
true);
calendar
= nameSpace.GetDefaultFolder
(OlDefaultFolders.olFolderCalendar);
outlookAppointments
= calendar.Items;
}
The
above code is used to get all the appointment list objects. This
object is stored in “outlookAppointments” items objects.
Step
2:
Register the ItemAdd event
in the “OnStartupComplete” Method
outlookAppointments.ItemAdd
+= new ItemsEvents_ItemAddEventHandler(outlookAppointments_ItemAdd)
The “ItemsEvents_ItemAddEventHandler”
event is used to get
the latest meeting request
from your outlook application. The new meeting request added in your
outlook, automatically triggers the “outlookAppointments_ItemAdd” method.
Similarly to register the ItemChange, ItemRemove are as follows:
//this
event trigger, when the meeting request change
outlookAppointments.ItemChange
+= new
ItemsEvents_ItemChangeEventHandler(outlookAppointments_ItemChange);
//this
event trigger, when the meeting request decline or deleted.
outlookAppointments.ItemRemove
+= new
ItemsEvents_ItemRemoveEventHandler(outlookAppointments_ItemRemove);
Step 3: Add the below method in your page.
void
outlookAppointments_ItemAdd(object
Item)
void
outlookAppointments_ItemChange(object
Item)
void
outlookAppointments_ItemRemove()
You
can get details about the appointment body, duration, start time, end
time, decline date, accepted date and etc., using the “item”
object. The below sample code is used to get the some details.
void outlookAppointments_ItemChange(object Item)
{
AppointmentItem
appointment = (Item as
AppointmentItem);
string
AppointmentDetails = string.Empty;
AppointmentDetails
= AppointmentDetails + "Subject
:: "
+
appointment.Subject
+ "\r\n";
AppointmentDetails
= AppointmentDetails + "Body
:: "
+
appointment.Body +
"\r\n";
AppointmentDetails
= AppointmentDetails + "Action
:: "
+
appointment.Action.ToString()
+ "\r\n";
}
This gives
information about the receivers action.