It's by design. The Outlook object model doesn't expose who last modified a
calendar item. If you are using an alternate API such as CDO 1.21 or
Extended MAPI or Redemption (www.dimastr.com/redemption) you can use the
PR_LAST_MODIFIER_NAME property (0x3FFA001E) to get who last modified the
item.

Signature
Ken Slovak
[MVP - Outlook]
http://www.slovaktech.com
Author: Professional Programming Outlook 2007
Reminder Manager, Extended Reminders, Attachment Options
http://www.slovaktech.com/products.htm
Ken,
My users are creating items using Outlook 2007 UI on the Shared Calendar
View. So, I'm not sure if that uses Extended MAPI or some other internal
API.
I'm using OutlookSpy to investigate the object model. I think I may have
found what I'm looking for in the PR_SENDER_NAME and PR_SENDER_EMAIL_ADDRESS
properties. Can you please confirm that these are equivelent to what I'm
considering the "creator" of the item?
<off-topic>
Also, any chance you could explain the following to me:
I've been using OutlookSpy to investigate the object model and lookup these
properties. When I have an Appointment Item open in Outlook, I use the
"CurrentItem" button on the OutlookSpy toolbar to pull up the
_AppointmentItem interface inspector. Since I didn't see the
PR_LAST_MODIFIER_NAME property that you mentioned in your last response (or
a similarly named property of the interface that looked like it represented
the PR_LAST_MODIFIER_NAME property), I started looking around in OutlookSpy.
My first thought was that perhaps this property was part of a different
interface, but when I tried to QueryInterface for IID_IMessage I got
MAPI_E_INTERFACE_NOT_SUPPORTED. I then tried IID_IDispatch and got the
_AppointmentItem interface instead. It wasn't until I found the IMessage
button on the OutlookSpy toolbar that I was able to find the
PR_LAST_MODIFIER_NAME property and then also found the PR_SENDER_XXX
properties.
Q1: Why couldn't I QueryInterface for IID_IMessage directly from the
_AppointmentItem interface? Isn't that a COM rule that all Interfaces
should allow QI to other interfaces supported by the coclass?
Q2: Why does IID_IDipsatch result in the _AppointmentItem interface?
</off-topic>
Thanks,
Ryan
> It's by design. The Outlook object model doesn't expose who last modified
> a calendar item. If you are using an alternate API such as CDO 1.21 or
[quoted text clipped - 15 lines]
>> Thanks,
>> Ryan
Ken Slovak - [MVP - Outlook] - 04 Feb 2008 18:10 GMT
For Outlook 2007 you can directly access the PR_LAST_MODIFIER_NAME property
using the PropertyAccessor for the appointment item, using this DASL syntax
for the property: "http://schemas.microsoft.com/mapi/proptag/0x3FFA001E"
You can also use the other properties you mention, using their DASL syntax
property tags.
You'd have to ask Dmitry why he implemented the OutlookSpy user interface
that way and how that works with QueryInterface or IDispatch, I just always
use the IMessage button when I want to look at the MAPI properties on an
item or where specific properties aren't exposed by the Outlook object
model.

Signature
Ken Slovak
[MVP - Outlook]
http://www.slovaktech.com
Author: Professional Programming Outlook 2007
Reminder Manager, Extended Reminders, Attachment Options
http://www.slovaktech.com/products.htm
> Ken,
>
[quoted text clipped - 35 lines]
> Thanks,
> Ryan
Ryan Parlee - 05 Feb 2008 05:59 GMT
Thanks for the tip on DASL; I wasn't familar with that.
> For Outlook 2007 you can directly access the PR_LAST_MODIFIER_NAME
> property using the PropertyAccessor for the appointment item, using this
[quoted text clipped - 49 lines]
>> Thanks,
>> Ryan