Ed Kramer
2008-04-28 16:17:01 UTC
Greetings fellow developers,
I am in the process of adding a feature to a service that already processes
messages using MAPI in C++ with exchange 2003 to allow it to properly respond
to meeting requests. Unfortunately I've reached a bit of a stumbling block in
my response email. As far as I can tell everything is almost entirely set up
correctly. However it would seem that two bits of information required are
missing and I am not having any luck doing net and msdn searches to find
them. I am hoping someone here can shed some light on the situation. If for
some reason this question is inappropriate to this forum, please let me know
and I will move it elsewhere.
Part One:
In the organizer's inbox, if you open up the response Email from the
attendee in Outlook, you see 3 fields in the GUI. Accepted, Tentative,
Declined. Each of which hold the names of the attendee who responded to the
message under the appropriate heading. If the user accepted the meeting
through Outlook for example his name will appear under 'Accepted' and so
forth, appearing like this:
Accepted: George Washington; Thomas Jefferson
Tentative: Benjamin Franklin
Declined: John Adams
In my response email, this fields always say:
Accepted: No attendees have accepted.
Tentative: No attendees have tentatively accepted.
Declined: No attendees have declined.
Part Two:
In the Organizer's calendar, if you open the meeting request there and flip
to the 'tracking' tab. You see a list view of each person invited to the
meeting, their attendance requirement level and their response. If you accept
an appointment through outlook the Response field for the specified attendee
will have a value of none, declined, tentative or accepted such as:
Name.........................Attendance................Response
George Washington............Required Attendee.........Accepted
Benjamin Franklin............Required Attendee.........Tentative
John Adams...................Required Attendee.........Declined
In my calendar after the email arrives the only thing I ever see is 'None'
like this:
Name.........................Attendance................Response
George Washington............Required Attendee.........None
Benjamin Franklin............Required Attendee.........None
John Adams...................Required Attendee.........None
I have noticed that each of the attendees are recipients in the recipients
table of the calendar object and that if you change the Response status for a
user, then save the calendar item and read the properties of the IMessage
Object, the PR_RECIPIENT_TRACKSTATUS for the attendee changes to match the
value you specified when you saved the calendar item.
Presumably, the response email is the only communication between the
attendee and the originator of the meeting and there is no logical reason why
the attendee's outlook client should have any special access over the
originators. Indeed giving it such would be a dangerous hazard. Therefore we
can assume that these issues are caused by some malformation of my response
email. Either a property ( or properties ) not set, or not populated
correctly. Therefore I guess there is a property, that is associated with the
PR_RECIPIENT_TRACKSTATUS flag that appears in the attendee response email and
tells the originator's calendar the details needed to properly populate the
calendar item.
So that brings me to my questions:
Question 1: How do I appropriately populate the attendee response email so
that the Accepted:, Tentative: and Declined: fields on the email appear as
normal.
Question 2: How do I appropriately populate the attendee response email so
that the calendar items' PR_RECIPIENT_TRACKSTATUS property in for the
attendee in the recipient's table is properly populated.
I am in the process of adding a feature to a service that already processes
messages using MAPI in C++ with exchange 2003 to allow it to properly respond
to meeting requests. Unfortunately I've reached a bit of a stumbling block in
my response email. As far as I can tell everything is almost entirely set up
correctly. However it would seem that two bits of information required are
missing and I am not having any luck doing net and msdn searches to find
them. I am hoping someone here can shed some light on the situation. If for
some reason this question is inappropriate to this forum, please let me know
and I will move it elsewhere.
Part One:
In the organizer's inbox, if you open up the response Email from the
attendee in Outlook, you see 3 fields in the GUI. Accepted, Tentative,
Declined. Each of which hold the names of the attendee who responded to the
message under the appropriate heading. If the user accepted the meeting
through Outlook for example his name will appear under 'Accepted' and so
forth, appearing like this:
Accepted: George Washington; Thomas Jefferson
Tentative: Benjamin Franklin
Declined: John Adams
In my response email, this fields always say:
Accepted: No attendees have accepted.
Tentative: No attendees have tentatively accepted.
Declined: No attendees have declined.
Part Two:
In the Organizer's calendar, if you open the meeting request there and flip
to the 'tracking' tab. You see a list view of each person invited to the
meeting, their attendance requirement level and their response. If you accept
an appointment through outlook the Response field for the specified attendee
will have a value of none, declined, tentative or accepted such as:
Name.........................Attendance................Response
George Washington............Required Attendee.........Accepted
Benjamin Franklin............Required Attendee.........Tentative
John Adams...................Required Attendee.........Declined
In my calendar after the email arrives the only thing I ever see is 'None'
like this:
Name.........................Attendance................Response
George Washington............Required Attendee.........None
Benjamin Franklin............Required Attendee.........None
John Adams...................Required Attendee.........None
I have noticed that each of the attendees are recipients in the recipients
table of the calendar object and that if you change the Response status for a
user, then save the calendar item and read the properties of the IMessage
Object, the PR_RECIPIENT_TRACKSTATUS for the attendee changes to match the
value you specified when you saved the calendar item.
Presumably, the response email is the only communication between the
attendee and the originator of the meeting and there is no logical reason why
the attendee's outlook client should have any special access over the
originators. Indeed giving it such would be a dangerous hazard. Therefore we
can assume that these issues are caused by some malformation of my response
email. Either a property ( or properties ) not set, or not populated
correctly. Therefore I guess there is a property, that is associated with the
PR_RECIPIENT_TRACKSTATUS flag that appears in the attendee response email and
tells the originator's calendar the details needed to properly populate the
calendar item.
So that brings me to my questions:
Question 1: How do I appropriately populate the attendee response email so
that the Accepted:, Tentative: and Declined: fields on the email appear as
normal.
Question 2: How do I appropriately populate the attendee response email so
that the calendar items' PR_RECIPIENT_TRACKSTATUS property in for the
attendee in the recipient's table is properly populated.