Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

How does outlook generate 0x23 ID as soon an exception is created in a recurring meeting

22 views
Skip to first unread message

Deepak

unread,
Nov 15, 2006, 4:20:14 AM11/15/06
to
Hi All,

Does anyone have an idea how child ID (0x23) is generated by outlook
as soon as we create an exception to a recurring meeting?

before any exception is created 0x3 and 0x23 had the same values.

But after creating an excetion both of them had different values.

Any idea how we can determine which instance was changed using this
0x23?

Regards,
Deepak

Dmitry Streblechenko

unread,
Nov 15, 2006, 4:48:26 PM11/15/06
to
The exception will store the original time on which it used to occur if I
remember correctly.
But you still need to check first if there is already an exception with tehe
given id; and if not, look at the original time.

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

"Deepak" <deepaks...@gmail.com> wrote in message
news:1163582414....@k70g2000cwa.googlegroups.com...

Deepak

unread,
Nov 15, 2006, 11:57:13 PM11/15/06
to
I have a snapshot of data i am examining.
I created an exception in the meeting and when i saw the meeting
requested being sent
in outlook spy i see the change between rhese two properties:

0x23
****
040000008200E00074C5B7101A82E008
00000000 - these 4 bytes differ
70651EF46809C7010000000000000000100000004BA94C487128C94D858E82C3BAC35D8C

0x3
***
040000008200E00074C5B7101A82E008
07D60B11 - these 4 bytes differ from property 0x23
70651EF46809C7010000000000000000100000004BA94C487128C94D858E82C3BAC35D8C


How do i know this points to a particular occurence that has been
changed ?

Regards,
Deepak S

Dmitry Streblechenko

unread,
Nov 16, 2006, 11:49:52 AM11/16/06
to
When you look at the meeting update in the Sent Items folders, do you see
any PT_SYSTIME properties that store the original start time?
Why do you care what's inside the appointment id?

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

"Deepak" <deepaks...@gmail.com> wrote in message

news:1163653033.2...@h48g2000cwc.googlegroups.com...

Deepak

unread,
Nov 17, 2006, 12:38:15 AM11/17/06
to
I need this because , when i change an instance of a recurring meeting,
i need to send out meeting request for that particular occurence.

So i need to find out how outlook generates this id which causes the
recipients calendar
to update to that exception.

Regards,
Deepak

Dmitry Streblechenko

unread,
Nov 17, 2006, 12:56:57 AM11/17/06
to
I understand why you need the id, but I don't understand why you care about
what is inside that id.
If you look at the start/end/etc datetime properties for a request, Outlook
can deduce the date of the exception even if you modify the time.
Did you look at an update request in the Sent Items folder sent for an
exception by Outlook with MFCMAPI or OutlookSpy? All you need to do is
reproduce the same behavior.

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

"Deepak" <deepaks...@gmail.com> wrote in message

news:1163741895....@h54g2000cwb.googlegroups.com...

Deepak

unread,
Nov 17, 2006, 6:17:17 AM11/17/06
to
Oh .. i never noticed it ! :-)
Thanks Dmitry.

Will try this and let you know if it is working !

Thanks and Regards,
Deepak

Deepak

unread,
Nov 17, 2006, 7:36:08 AM11/17/06
to

Hi Dmitry,

Actually tried this.
To send update to the recurring meeting,
I set the start date, end date of the excpetion and the associated id.
The recurring meeting got converted into a single meeting with that
particular start and end date !


Regards,
Deepak

Dmitry Streblechenko

unread,
Nov 17, 2006, 1:39:34 PM11/17/06
to
Did you set the 0x3 uid to the uid of the parent appointment?

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

"Deepak" <deepaks...@gmail.com> wrote in message

news:1163766968....@h54g2000cwb.googlegroups.com...

Deepak

unread,
Nov 19, 2006, 11:35:25 PM11/19/06
to
Yes. I did set it.
After setting it, i could see that both 0x23 and 0x3 had the same
values.

This is what i exactly did.

1. Generated the recurrence pattern and saved the appointment.
2. Created a meeting request for this appointment and sent it.
3. Now created an exception in the recurrence pattern and updated the
appointment in my calender
4. To send out the meeting request for that updated occurence, i set
the Start and end time and the 0x3 id and sent out the meeting request.

But now, this recurring meeting became a single meeting in the
invitee's calendar after accepting the new meeting request!


Regards,
Deepak

Dmitry Streblechenko

unread,
Nov 20, 2006, 12:16:52 AM11/20/06
to
Did you try to compare the the good (sent by Outlook) and bad (send by your
code) exception updates?
0x23 and 0x3 shoudl *not* be the same. Did you just copy 0x23 from the
exception created by Outlook?

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

"Deepak" <deepaks...@gmail.com> wrote in message

news:1163997325.8...@h54g2000cwb.googlegroups.com...

Deepak

unread,
Nov 20, 2006, 7:09:23 AM11/20/06
to
Hi Dmitry,

I compared the properties of proper(from outlook) and my request(my
code)
I saw a property 0xA set to true in outlook.
Now i also set this property.

Now, i set the start date and end date and send the meeting request
for the exception.

I see that i canno't accept this new meeting request.
It says "The function cannot be performed because the message has been
changed".

Again i see that 0x3 and 0x23 are both same !

Regards,
Deepak

Dmitry Streblechenko

unread,
Nov 20, 2006, 12:45:25 PM11/20/06
to
Are 0x3 and 023 teh same in the inbox or the Sent Items folder?

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

"Deepak" <deepaks...@gmail.com> wrote in message

news:1164024563....@m73g2000cwd.googlegroups.com...

Deepak

unread,
Nov 20, 2006, 11:13:57 PM11/20/06
to
It is in the sent items folder.
The same is also there in the inbox of the 'invitee'.

Regards,
Deepak

Dmitry Streblechenko

unread,
Nov 21, 2006, 12:42:20 PM11/21/06
to
Are they the same on *your* meeting update (?!) or the one created by
Outlook?

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

"Deepak" <deepaks...@gmail.com> wrote in message

news:1164082436.9...@f16g2000cwb.googlegroups.com...

Deepak

unread,
Nov 21, 2006, 11:15:39 PM11/21/06
to
They are same on the meeting created by me.

Let me take you throug the steps what i am exactly doing.

-> Create an exception in the recurrence pattern and set this property
to 0x8216 of the "appointment"

-> Create a message and set the message class to
"IPM.Schedule.Meeting.Request"
-> Set the start and end dates of the occurence which was changed
-> Set the associated id i.e 0x3 from the "Appointment" onto the
"Meeting Request"
-> Set participants and send the meeting request.

That particular occurence of the meeting in the invitee's calendar
should be updated,
but what is happening is that, the recurring meeting gets converted
into Single meeting.

Dmitry Streblechenko

unread,
Nov 22, 2006, 12:01:33 AM11/22/06
to
Why don't you set the 0x23 property to a value different from 0x3?

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

"Deepak" <deepaks...@gmail.com> wrote in message

news:1164168939.1...@h54g2000cwb.googlegroups.com...

Deepak

unread,
Nov 22, 2006, 1:23:09 AM11/22/06
to
Then how do we indicate that a particular child appointment (occurence)
needs to be updated?

Dmitry Streblechenko

unread,
Nov 22, 2006, 11:32:48 AM11/22/06
to
By having different 0x3 and 0x23 blobs and the appropriate values in the
start/end time named properties.
Did you look at a recurrence update created by Outlook?

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

"Deepak" <deepaks...@gmail.com> wrote in message

news:1164176589....@j44g2000cwa.googlegroups.com...

Deepak

unread,
Nov 22, 2006, 11:42:52 PM11/22/06
to
Yes Dimtry.
I did look at them.
I see for requests sent out from outlook 0x3 and 0x23 are different.

Another strange thing i noticed is that, the "cb" values for the
PT_BINARY properties 0x3 and 0x23 are 56 for appoinntment created in
outlook whereas its value is 117 for meeting created by my code.

I compared both the good(sent by outlook) and the bad(my code) meeting
requests.
I saw a couple of properties which were not set in my code.

The meeting request for the exception had following props
------------------------------------------------------------------------------------
In outlook request -> 0x822B and 0x8206 were set to FALSE which was
absent in my code
-> 0xA was set to TRUE which again was
absent in my code

I set these two properties now, but still no luck.

I am wondering how outlook generates this 0x3 ID for childs.

I think i am going wrong at setting 0x3 ID. I think for that we need to
know how outlook generates this ID.

All other properties are set correctly as outlook sets it.

Regards,
Deepak

Deepak

unread,
Nov 23, 2006, 9:33:50 AM11/23/06
to
Yesss Dimtry ! :)
I finalllly did it :)

Actually this is how it works.

Outlook generates an ID for the 0x3 and 0x23 properties.
This ID will be 56 in length

The ID is generated in the fashion as described below:

04 00 00 00 82 00 E0 00 74 C5 B7 10 1A 82 E0 08 - Constant

00 00 00 00 - Exception date (0 for new meeting created)

A0 2D FF F3 9A 0D C7 01 - Creation time (in filetime)

00 00 00 00 00 00 00 00 10 00 00 00 - Constant

B5 EC 94 9E 18 65 57 48 B8 A3 A0 3D 4D 67 D7 EC - Random number.

Append all these and you ll get the id stored in 0x23 and 0x3.

Now to send an updated meeting request after creation all you need to
do is change the "Exception date" in the above mentioned structure
which is done in this fashion

First two bytes indicate year of the exception say 07 D6 (2007)
Next byte indicates month of the exception say 0B (11 i.e November)
Next byte indicates date of the exception say 17(23)

Now the id you need to set in 0x3 is

04 00 00 00 82 00 E0 00 74 C5 B7 10 1A 82 E0 08 - Constant

07 D6 0B 17 - Exception date (0 for new meeting created)

A0 2D FF F3 9A 0D C7 01 - Creation time (in filetime)

00 00 00 00 00 00 00 00 10 00 00 00 - Constant

B5 EC 94 9E 18 65 57 48 B8 A3 A0 3D 4D 67 D7 EC -the same Random
number.

And it works :)

Thanks a lot for your support Dimtry.

Regards,
Deepak S

Dmitry Streblechenko

unread,
Nov 26, 2006, 12:32:01 AM11/26/06
to
Cool! That's great to know!

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

"Deepak" <deepaks...@gmail.com> wrote in message

news:1164292429....@m7g2000cwm.googlegroups.com...

0 new messages