Appointments and Fields

  • Thread starter Thread starter Ian Mackenzie
  • Start date Start date
I

Ian Mackenzie

Hi guys

I am trying to create a new appointment, but it seems I am creatinh a new
mailitem each time because I can't assign things like location, startand end
to the appointment. My code is below. Does anyone have an idea about how to
go about it.

I have the same problem with the same fields when I try to fetch
appointments too...

const
olAppointmentItem = $00000001;
var
AppItem : OLEVariant;
begin

AppItem := CurrentFolder.Items.Add(olAppointmentItem);

---------------------------------------------------------
**CurrentFolder = NameSpace.GetDefaultFolder(9)
**Whats the difference between using NameSpace and RDOSession with
Redemption?
**Do you still get the same folder?
---------------------------------------------------------

AppItem .AllDayEvent := AllDayEvent; *ERROR*
AppItem .Body := Body;
AppItem .Categories := Categories;
AppItem .Duration := Duration; *ERROR*
AppItem .Start := Now() + 0.05; *ERROR*
AppItem .End := Now() + 10; *ERROR*
AppItem .Location := Location; *ERROR*
AppItem .ReminderTime := ReminderTime;
AppItem .ReminderSet := ReminderSet;
AppItem .Subject := Subject;

AppItem .Display;

AppItem := Unassigned;
end;
 
Using the Outlook object model you get Outlook items. Using RDOSession you
get an RDOMail object. It represents the same object but with different
properties, methods and events. Many things are exposed in an RDOMail object
that you can't get to in an Outlook item.

You don't really have spaces between the object and its properties in your
code do you?

Have you run in debug mode and verified the .Class of the item you created?
 
Also note that you can get the appointment specific properties from RDOMail
using RDOMail.Fields. Look at the appointmenbts with OutlookSpy (click
IMessage) to figure out the prop tags.
E.g to access the duration property, try something like

RDOMail.Fields("urn:schemas:calendar:duration") := Duration;

or
const PT_LONG = 3;
....
PR_DURATION =
RDOMail.GetIDsFromNames('{00062002-0000-0000-C000-000000000046}', $8213) or
PT_LONG;
RDOMail.Fields(PR_DURATION):= Duration;

See http://www.dimastr.com/redemption/utils.htm#xmapi and
http://www.dimastr.com/redemption/rdo/MAPIProp.htm#properties

Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool
 
Back
Top