Outlook become non responsive if i write outlook item in bulk

  • Thread starter Thread starter Ashish
  • Start date Start date
A

Ashish

Hi
I write outlook item using the simple MAPI api .
Following is the code example.
Dim MyFolder As Microsoft.Office.Interop.Outlook.MAPIFolder
Dim MyFileName As String
Dim OlType As Microsoft.Office.Interop.Outlook.OlItemType
Dim TypeSuffix As String
Dim olitem as object
OlType = GetCorrespondingOlItemType(CalType)
TypeSuffix = GetCorrespondingSuffix(CalType)
MyFolder = IIf(OlType =
Microsoft.Office.Interop.Outlook.OlItemType.olTaskItem, mobjTaskMAPIFld,
IIf(OlType = Microsoft.Office.Interop.Outlook.OlItemType.olAppointmentItem,
mobjApptMAPIFld, mobjContactMAPIFld))

On Error GoTo OpenAsDefault
Err.Clear()
olitem= MyFolder.Items.Add(OlType)
olitem.save
System.Runtime.InteropServices.Marshal.FinalReleaseComObject(olitem)

if a write many items in bulk, the oulook behaves inconsistently,
Even if i create a new contact manually and update it, lastmodification time
property will not get updated.

Though this issue is not consistenly reporducible, can some help me finding
any reason why this is happening ?

Thanks in advance.

Best Regards
Ashish Rawat
 
Just a tip, with those nested IIF's that code will be a real mess to debug.
I'd unwrap it into a set of if blocks to make debugging easier. BTW, that is
Outlook object model code, not Simple MAPI API calls.

Define "many items in bulk" (how many, show the code to create them), define
"behaves inconsistently".

Always mention the Outlook and Window versions, and store type (PST files,
Exchange, etc.).

Do you get any exceptions? Set up try...catch blocks to trap any errors.

Don't use multiple dot operators, especially in loops. Declare your object
variables outside the loop avoid implicitly created objects that cannot be
released. For example:

Dim colItems As Outlook.Items = MyFolder.Items
olitem = colItems.Add(olType)

That way the Items collection can explicitly be released. That's especially
important in loops and hugely so with Exchange, where there's an RPC channel
limit. Exceeding that limit will cause exceptions, and implicitly created
objects all use up RPC channels and can't be released.
 
Hi ken,

Thanks for the prompt reply.
To my surprise now, i found out that write works fine.
We were looking for bug in wrong place, as after using MFCMapi tool, i found
out that PR_lastmodification_time is updated.
But while reading it do not read the updated time but the cached time.


I am using the standard code to read LastModification time, suggested by
microsoft in help document.
Following is the code sample.

,,Private mobjOutlook As Microsoft.Office.Interop.Outlook.Application
'outlook application
,,Private mobjOlNs As Microsoft.Office.Interop.Outlook.NameSpace '
current namespace to work with
,,Private mobjApptMAPIFld As
Microsoft.Office.Interop.Outlook.MAPIFolder ' current folder to work
with calendar

,,,, mobjOlNs = mobjOutlook.GetNamespace("MAPI")
,,,, mobjApptMAPIFld = mobjOlNs.GetDefaultFolder(Microsoft.Office.Intero
p.Outlook.OlDefaultFolders.olFolderCalendar)
,,,, mobjApptMAPIFld.Item.LastModificationTime// give the appointment


Even if i logoff and logon session through code and use getitembyid property
to retrived the idem detail, it gives me same unmodified date.
Is there any api, though undocumented, which can be used to get the uncached
last modification time ?

Best Regards
Ashish Rawat
 
You didn't answer my questions. What do you mean by "Outlook becomes
unresponsive"?

Even in Exchange cached mode you should be able to get the correct
LastModificationTime value. Did you save the item when you made any changes
to it before trying to read the changed LastModificationTime value?

I would change that code you're using because it's still using multiple dot
operators. I'd assign a specific Outlook item to mobjApptMAPIFld.Item and
then read LastModificationTime from that. I'd also set that object variable
to Nothing each pass through the loop.
 
Hi Ken,

Good point, when i said outlook is non responsive, i mean this issue itself,
there is no other syntoms to see outlook is not working properly. Rest
everything is outlook is going fine.

Ofcouse, i save outlook item and then check the last modification date.
I tried using tool like outlook spy tool, and something macro also. Also i
created a sample program as follows.


If InitOutlook() = True Then
objMapiFolder = objNamespace.PickFolder
objNamespace.Logoff()
'objNamespace.objNamespace.Logoff()
' objNamespace.Logon()
' objMapiFolder =
objNamespace.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderCalendar)

If Not objMapiFolder Is Nothing Then

oItems = objMapiFolder.Items
For Each ocontact In oItems
TextBox2.Text = TextBox2.Text +
Environment.NewLine + " Subject : " + ocontact.Subject
TextBox2.Text = TextBox2.Text + Environment.NewLine
+ " Last Modified time : " + ocontact.LastModificationTime

Next
End If

Still it gives the incorrect logs.


Best Regards
Ashish Rawat

Ken Slovak - said:
You didn't answer my questions. What do you mean by "Outlook becomes
unresponsive"?

Even in Exchange cached mode you should be able to get the correct
LastModificationTime value. Did you save the item when you made any changes
to it before trying to read the changed LastModificationTime value?

I would change that code you're using because it's still using multiple dot
operators. I'd assign a specific Outlook item to mobjApptMAPIFld.Item and
then read LastModificationTime from that. I'd also set that object variable
to Nothing each pass through the loop.




Ashish said:
Hi ken,

Thanks for the prompt reply.
To my surprise now, i found out that write works fine.
We were looking for bug in wrong place, as after using MFCMapi tool, i
found
out that PR_lastmodification_time is updated.
But while reading it do not read the updated time but the cached time.


I am using the standard code to read LastModification time, suggested by
microsoft in help document.
Following is the code sample.

,,Private mobjOutlook As Microsoft.Office.Interop.Outlook.Application
'outlook application
,,Private mobjOlNs As Microsoft.Office.Interop.Outlook.NameSpace '
current namespace to work with
,,Private mobjApptMAPIFld As
Microsoft.Office.Interop.Outlook.MAPIFolder ' current folder to work
with calendar

,,,, mobjOlNs = mobjOutlook.GetNamespace("MAPI")
,,,, mobjApptMAPIFld = mobjOlNs.GetDefaultFolder(Microsoft.Office.Intero
p.Outlook.OlDefaultFolders.olFolderCalendar)
,,,, mobjApptMAPIFld.Item.LastModificationTime// give the appointment


Even if i logoff and logon session through code and use getitembyid
property
to retrived the idem detail, it gives me same unmodified date.
Is there any api, though undocumented, which can be used to get the
uncached
last modification time ?

Best Regards
Ashish Rawat

 
I don't understand.

That sample code you show does nothing that would modify the items,
therefore LastModificationTime is not going to change on any of the items.

Also why are you using NameSpace.Logoff? There's no reason for that at all.

This test VBA code shows what I mean. I selected a contact item and ran the
macro. The modified times shown are 3/23/2009 at 8:50 AM before the subject
is changed and 5/28/2009 at 1:39 PM afterwards.

Sub ModifyItem()
Dim oc As Outlook.ContactItem
Set oc = Application.ActiveExplorer.Selection(1)
Debug.Print oc.LastModificationTime
oc.Subject = oc.Subject & " Test"
oc.Save
Debug.Print oc.LastModificationTime
End Sub

This code was run in an Outlook setup that uses cached mode, therefore
demonstrating that cached mode has nothing to do with anything here.
 
Hi ken,

Write code should be fine, as even i create the outlook item manually, the
last modification time is not update. I mean use File -> New->contact way to
creating contact.

While reading, namespace logoff/logon i tried so that session get refresh,
that was not the part of original code though.

Also if i close outlook and reopen i get the udpate last modification time
with the same read code.

It also look strange to me too and stranger is it happens only if outlook is
running for a long time, or as i mentioned a bulk write has been performed.


Best Regads
Ashish Rawat
 
" lastmodification time property will not get updated." - what exactly do
you mean by that?
If you are creating a brand new item, surely you would get some value in the
lastmodification time propety. What is it?


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

I didn't notices, am i taking to Dimitry , the father of redemption dll.I am
honoured :)
By the way, i have raised this issue as bug to microsoft also.

Best Regards
Ashish Rawat
 
I don't know. I can't reproduce what you say here at all. If I modify an
item in code it shows a changed date for LastModifiedTime.
 
So you see the chnage that your code makes but the last modified time stays
the same?
Doyou have a sampel script that exhibits this porblem?

--
Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool
-
 
Hi Dimitry ,
Steps to reproduce the issue.
1. Just manually create any appointment, contact or task.
2. Update that outlook entitty..
3. Run the following macro in outlook, you will see the last modification
time.
To read last modification time, you can use following vb macro
Sub TestAppointment()

Dim objMapiFolder As Folder
Dim i As Integer
Dim cnt As Integer
Dim oItems As Items
Dim oDate As Date
Dim oappt As AppointmentItem
Set objMapiFolder = Session.GetDefaultFolder(olFolderCalendar)

objMapiFolder.Items.Sort ("[Start]")
objMapiFolder.Items.IncludeRecurrences = True
Set oItems = objMapiFolder.Items


For i = 1 To oItems.Count
Set oappt = oItems.Item(i)
If (oappt.Subject = "testlmdate") Then
Debug.Print " Last Modified time : " +
CStr(oappt.LastModificationTime)
Debug.Print
"========================================================="
End If
Next

End Sub

4. Again change the outlook item and repeat the same process.

You will see that last modification time is same some times.
This issue is not consistently reporducible but its common with contact.
Thanks for your help.

Best Regards
Ashish Rawat
 
Is there any difference between recurring vs nonrecurring appointments?

--
Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool
-
Ashish said:
Hi Dimitry ,
Steps to reproduce the issue.
1. Just manually create any appointment, contact or task.
2. Update that outlook entitty..
3. Run the following macro in outlook, you will see the last modification
time.
To read last modification time, you can use following vb macro
Sub TestAppointment()

Dim objMapiFolder As Folder
Dim i As Integer
Dim cnt As Integer
Dim oItems As Items
Dim oDate As Date
Dim oappt As AppointmentItem
Set objMapiFolder = Session.GetDefaultFolder(olFolderCalendar)

objMapiFolder.Items.Sort ("[Start]")
objMapiFolder.Items.IncludeRecurrences = True
Set oItems = objMapiFolder.Items


For i = 1 To oItems.Count
Set oappt = oItems.Item(i)
If (oappt.Subject = "testlmdate") Then
Debug.Print " Last Modified time : " +
CStr(oappt.LastModificationTime)
Debug.Print
"========================================================="
End If
Next

End Sub

4. Again change the outlook item and repeat the same process.

You will see that last modification time is same some times.
This issue is not consistently reporducible but its common with contact.
Thanks for your help.

Best Regards
Ashish Rawat






Dmitry Streblechenko said:
So you see the chnage that your code makes but the last modified time
stays
the same?
Doyou have a sampel script that exhibits this porblem?

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

I didn't checked with the recurring appointments, as it was coming for
normal appointment itself. why did u asked, is there any difference between
the two ?

One more pointer, if i use outlook in non cache mode i get the correct last
modification time.

Best Regards
Ashish Rawat


Dmitry Streblechenko said:
Is there any difference between recurring vs nonrecurring appointments?

--
Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool
-
Ashish said:
Hi Dimitry ,
Steps to reproduce the issue.
1. Just manually create any appointment, contact or task.
2. Update that outlook entitty..
3. Run the following macro in outlook, you will see the last modification
time.
To read last modification time, you can use following vb macro
Sub TestAppointment()

Dim objMapiFolder As Folder
Dim i As Integer
Dim cnt As Integer
Dim oItems As Items
Dim oDate As Date
Dim oappt As AppointmentItem
Set objMapiFolder = Session.GetDefaultFolder(olFolderCalendar)

objMapiFolder.Items.Sort ("[Start]")
objMapiFolder.Items.IncludeRecurrences = True
Set oItems = objMapiFolder.Items


For i = 1 To oItems.Count
Set oappt = oItems.Item(i)
If (oappt.Subject = "testlmdate") Then
Debug.Print " Last Modified time : " +
CStr(oappt.LastModificationTime)
Debug.Print
"========================================================="
End If
Next

End Sub

4. Again change the outlook item and repeat the same process.

You will see that last modification time is same some times.
This issue is not consistently reporducible but its common with contact.
Thanks for your help.

Best Regards
Ashish Rawat






Dmitry Streblechenko said:
So you see the chnage that your code makes but the last modified time
stays
the same?
Doyou have a sampel script that exhibits this porblem?

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

I didn't notices, am i taking to Dimitry , the father of redemption
dll.I
am
honoured :)
By the way, i have raised this issue as bug to microsoft also.

Best Regards
Ashish Rawat


:


Hi Dimitry,

We are talking about update scenario here.

Best Regards
Ashish rawat

:

" lastmodification time property will not get updated." - what
exactly
do
you mean by that?
If you are creating a brand new item, surely you would get some
value
in the
lastmodification time propety. What is it?


--
Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool
-
Hi
I write outlook item using the simple MAPI api .
Following is the code example.
Dim MyFolder As Microsoft.Office.Interop.Outlook.MAPIFolder
Dim MyFileName As String
Dim OlType As Microsoft.Office.Interop.Outlook.OlItemType
Dim TypeSuffix As String
Dim olitem as object
OlType = GetCorrespondingOlItemType(CalType)
TypeSuffix = GetCorrespondingSuffix(CalType)
MyFolder = IIf(OlType =
Microsoft.Office.Interop.Outlook.OlItemType.olTaskItem,
mobjTaskMAPIFld,
IIf(OlType =
Microsoft.Office.Interop.Outlook.OlItemType.olAppointmentItem,
mobjApptMAPIFld, mobjContactMAPIFld))

On Error GoTo OpenAsDefault
Err.Clear()
olitem= MyFolder.Items.Add(OlType)
olitem.save
System.Runtime.InteropServices.Marshal.FinalReleaseComObject(olitem)

if a write many items in bulk, the oulook behaves inconsistently,
Even if i create a new contact manually and update it,
lastmodification
time
property will not get updated.

Though this issue is not consistenly reporducible, can some help
me
finding
any reason why this is happening ?

Thanks in advance.

Best Regards
Ashish Rawat
 
I just thought that you might be reading last modification time from a
recurrence after modifying the master appointment.
If you switch the calendar folder to the "By Category" view, add laast
modified tiem to the view, and modify an appointment, do you see the change
immediately in the folder view?

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

I didn't checked with the recurring appointments, as it was coming for
normal appointment itself. why did u asked, is there any difference
between
the two ?

One more pointer, if i use outlook in non cache mode i get the correct
last
modification time.

Best Regards
Ashish Rawat


Dmitry Streblechenko said:
Is there any difference between recurring vs nonrecurring appointments?

--
Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool
-
Ashish said:
Hi Dimitry ,
Steps to reproduce the issue.
1. Just manually create any appointment, contact or task.
2. Update that outlook entitty..
3. Run the following macro in outlook, you will see the last
modification
time.
To read last modification time, you can use following vb macro
Sub TestAppointment()

Dim objMapiFolder As Folder
Dim i As Integer
Dim cnt As Integer
Dim oItems As Items
Dim oDate As Date
Dim oappt As AppointmentItem
Set objMapiFolder = Session.GetDefaultFolder(olFolderCalendar)

objMapiFolder.Items.Sort ("[Start]")
objMapiFolder.Items.IncludeRecurrences = True
Set oItems = objMapiFolder.Items


For i = 1 To oItems.Count
Set oappt = oItems.Item(i)
If (oappt.Subject = "testlmdate") Then
Debug.Print " Last Modified time : " +
CStr(oappt.LastModificationTime)
Debug.Print
"========================================================="
End If
Next

End Sub

4. Again change the outlook item and repeat the same process.

You will see that last modification time is same some times.
This issue is not consistently reporducible but its common with
contact.
Thanks for your help.

Best Regards
Ashish Rawat






:

So you see the chnage that your code makes but the last modified time
stays
the same?
Doyou have a sampel script that exhibits this porblem?

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

I didn't notices, am i taking to Dimitry , the father of redemption
dll.I
am
honoured :)
By the way, i have raised this issue as bug to microsoft also.

Best Regards
Ashish Rawat


:


Hi Dimitry,

We are talking about update scenario here.

Best Regards
Ashish rawat

:

" lastmodification time property will not get updated." - what
exactly
do
you mean by that?
If you are creating a brand new item, surely you would get some
value
in the
lastmodification time propety. What is it?


--
Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool
-
Hi
I write outlook item using the simple MAPI api .
Following is the code example.
Dim MyFolder As Microsoft.Office.Interop.Outlook.MAPIFolder
Dim MyFileName As String
Dim OlType As
Microsoft.Office.Interop.Outlook.OlItemType
Dim TypeSuffix As String
Dim olitem as object
OlType = GetCorrespondingOlItemType(CalType)
TypeSuffix = GetCorrespondingSuffix(CalType)
MyFolder = IIf(OlType =
Microsoft.Office.Interop.Outlook.OlItemType.olTaskItem,
mobjTaskMAPIFld,
IIf(OlType =
Microsoft.Office.Interop.Outlook.OlItemType.olAppointmentItem,
mobjApptMAPIFld, mobjContactMAPIFld))

On Error GoTo OpenAsDefault
Err.Clear()
olitem= MyFolder.Items.Add(OlType)
olitem.save
System.Runtime.InteropServices.Marshal.FinalReleaseComObject(olitem)

if a write many items in bulk, the oulook behaves
inconsistently,
Even if i create a new contact manually and update it,
lastmodification
time
property will not get updated.

Though this issue is not consistenly reporducible, can some
help
me
finding
any reason why this is happening ?

Thanks in advance.

Best Regards
Ashish Rawat
 
Hi Dimitry,

sorry for such a delayed response but there was lots going on in this end.
To answer your question, I do not see the change in date even if i update
the Outlook item.
I reported this issue to Microsoft, and they have come up blaming an
add-in.How can possibliy an add-in impact the new Outlook item created and
block its last modification time from update ?

Best Regards
Ashish Rawat


Dmitry Streblechenko said:
I just thought that you might be reading last modification time from a
recurrence after modifying the master appointment.
If you switch the calendar folder to the "By Category" view, add laast
modified tiem to the view, and modify an appointment, do you see the change
immediately in the folder view?

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

I didn't checked with the recurring appointments, as it was coming for
normal appointment itself. why did u asked, is there any difference
between
the two ?

One more pointer, if i use outlook in non cache mode i get the correct
last
modification time.

Best Regards
Ashish Rawat


Dmitry Streblechenko said:
Is there any difference between recurring vs nonrecurring appointments?

--
Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool
-
Hi Dimitry ,
Steps to reproduce the issue.
1. Just manually create any appointment, contact or task.
2. Update that outlook entitty..
3. Run the following macro in outlook, you will see the last
modification
time.
To read last modification time, you can use following vb macro
Sub TestAppointment()

Dim objMapiFolder As Folder
Dim i As Integer
Dim cnt As Integer
Dim oItems As Items
Dim oDate As Date
Dim oappt As AppointmentItem
Set objMapiFolder = Session.GetDefaultFolder(olFolderCalendar)

objMapiFolder.Items.Sort ("[Start]")
objMapiFolder.Items.IncludeRecurrences = True
Set oItems = objMapiFolder.Items


For i = 1 To oItems.Count
Set oappt = oItems.Item(i)
If (oappt.Subject = "testlmdate") Then
Debug.Print " Last Modified time : " +
CStr(oappt.LastModificationTime)
Debug.Print
"========================================================="
End If
Next

End Sub

4. Again change the outlook item and repeat the same process.

You will see that last modification time is same some times.
This issue is not consistently reporducible but its common with
contact.
Thanks for your help.

Best Regards
Ashish Rawat






:

So you see the chnage that your code makes but the last modified time
stays
the same?
Doyou have a sampel script that exhibits this porblem?

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

I didn't notices, am i taking to Dimitry , the father of redemption
dll.I
am
honoured :)
By the way, i have raised this issue as bug to microsoft also.

Best Regards
Ashish Rawat


:


Hi Dimitry,

We are talking about update scenario here.

Best Regards
Ashish rawat

:

" lastmodification time property will not get updated." - what
exactly
do
you mean by that?
If you are creating a brand new item, surely you would get some
value
in the
lastmodification time propety. What is it?


--
Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool
-
Hi
I write outlook item using the simple MAPI api .
Following is the code example.
Dim MyFolder As Microsoft.Office.Interop.Outlook.MAPIFolder
Dim MyFileName As String
Dim OlType As
Microsoft.Office.Interop.Outlook.OlItemType
Dim TypeSuffix As String
Dim olitem as object
OlType = GetCorrespondingOlItemType(CalType)
TypeSuffix = GetCorrespondingSuffix(CalType)
MyFolder = IIf(OlType =
Microsoft.Office.Interop.Outlook.OlItemType.olTaskItem,
mobjTaskMAPIFld,
IIf(OlType =
Microsoft.Office.Interop.Outlook.OlItemType.olAppointmentItem,
mobjApptMAPIFld, mobjContactMAPIFld))

On Error GoTo OpenAsDefault
Err.Clear()
olitem= MyFolder.Items.Add(OlType)
olitem.save
System.Runtime.InteropServices.Marshal.FinalReleaseComObject(olitem)

if a write many items in bulk, the oulook behaves
inconsistently,
Even if i create a new contact manually and update it,
lastmodification
time
property will not get updated.

Though this issue is not consistenly reporducible, can some
help
me
finding
any reason why this is happening ?

Thanks in advance.

Best Regards
Ashish Rawat
 
It can't. But if you have a reproducible scenario, I'd encourage you to open
a support case with MS.
They will waive the fee if the cause will turn out to be a bug in Outlook.

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

sorry for such a delayed response but there was lots going on in this end.
To answer your question, I do not see the change in date even if i update
the Outlook item.
I reported this issue to Microsoft, and they have come up blaming an
add-in.How can possibliy an add-in impact the new Outlook item created and
block its last modification time from update ?

Best Regards
Ashish Rawat


Dmitry Streblechenko said:
I just thought that you might be reading last modification time from a
recurrence after modifying the master appointment.
If you switch the calendar folder to the "By Category" view, add laast
modified tiem to the view, and modify an appointment, do you see the
change
immediately in the folder view?

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

I didn't checked with the recurring appointments, as it was coming for
normal appointment itself. why did u asked, is there any difference
between
the two ?

One more pointer, if i use outlook in non cache mode i get the correct
last
modification time.

Best Regards
Ashish Rawat


:

Is there any difference between recurring vs nonrecurring
appointments?

--
Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool
-
Hi Dimitry ,
Steps to reproduce the issue.
1. Just manually create any appointment, contact or task.
2. Update that outlook entitty..
3. Run the following macro in outlook, you will see the last
modification
time.
To read last modification time, you can use following vb macro
Sub TestAppointment()

Dim objMapiFolder As Folder
Dim i As Integer
Dim cnt As Integer
Dim oItems As Items
Dim oDate As Date
Dim oappt As AppointmentItem
Set objMapiFolder = Session.GetDefaultFolder(olFolderCalendar)

objMapiFolder.Items.Sort ("[Start]")
objMapiFolder.Items.IncludeRecurrences = True
Set oItems = objMapiFolder.Items


For i = 1 To oItems.Count
Set oappt = oItems.Item(i)
If (oappt.Subject = "testlmdate") Then
Debug.Print " Last Modified time : " +
CStr(oappt.LastModificationTime)
Debug.Print
"========================================================="
End If
Next

End Sub

4. Again change the outlook item and repeat the same process.

You will see that last modification time is same some times.
This issue is not consistently reporducible but its common with
contact.
Thanks for your help.

Best Regards
Ashish Rawat






:

So you see the chnage that your code makes but the last modified
time
stays
the same?
Doyou have a sampel script that exhibits this porblem?

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

I didn't notices, am i taking to Dimitry , the father of
redemption
dll.I
am
honoured :)
By the way, i have raised this issue as bug to microsoft also.

Best Regards
Ashish Rawat


:


Hi Dimitry,

We are talking about update scenario here.

Best Regards
Ashish rawat

:

" lastmodification time property will not get updated." - what
exactly
do
you mean by that?
If you are creating a brand new item, surely you would get
some
value
in the
lastmodification time propety. What is it?


--
Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool
-
Hi
I write outlook item using the simple MAPI api .
Following is the code example.
Dim MyFolder As Microsoft.Office.Interop.Outlook.MAPIFolder
Dim MyFileName As String
Dim OlType As
Microsoft.Office.Interop.Outlook.OlItemType
Dim TypeSuffix As String
Dim olitem as object
OlType = GetCorrespondingOlItemType(CalType)
TypeSuffix = GetCorrespondingSuffix(CalType)
MyFolder = IIf(OlType =
Microsoft.Office.Interop.Outlook.OlItemType.olTaskItem,
mobjTaskMAPIFld,
IIf(OlType =
Microsoft.Office.Interop.Outlook.OlItemType.olAppointmentItem,
mobjApptMAPIFld, mobjContactMAPIFld))

On Error GoTo OpenAsDefault
Err.Clear()
olitem= MyFolder.Items.Add(OlType)
olitem.save
System.Runtime.InteropServices.Marshal.FinalReleaseComObject(olitem)

if a write many items in bulk, the oulook behaves
inconsistently,
Even if i create a new contact manually and update it,
lastmodification
time
property will not get updated.

Though this issue is not consistenly reporducible, can some
help
me
finding
any reason why this is happening ?

Thanks in advance.

Best Regards
Ashish Rawat
 
Hi Dimitry,

There is already a ticket created, but microsoft feels that it is only
because of add-in as they say that it is not reproducible in a clean machine
in there test environment.

Also today i am able to reproduce a scenario in which the modiifed time
apprear update in outlook item while the same is not being reflected when we
use the simple read macro
Sub TestContact()
Dim ocnt As ContactItem
Set ocnt =
Session.GetFolderFromID("00000000FA5D5A5CC0767341AE4B04252BC4FC9E01006D56A02FB0E2AB4780517B5306F7DE5000016DDA00340000").Items("Kapil Goel")
Debug.Print " Last Modified time : " +
CStr(ocnt.LastModificationTime)
Debug.Print " Last Modified Body : " + CStr(ocnt.Body)
Debug.Print "========================================================="
End Sub


Also , if possible can i give you call sometime, though our time lines are
different but i can call you at 9.30 EST.

Best Regards
Ashish Rawat

Dmitry Streblechenko said:
It can't. But if you have a reproducible scenario, I'd encourage you to open
a support case with MS.
They will waive the fee if the cause will turn out to be a bug in Outlook.

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

sorry for such a delayed response but there was lots going on in this end.
To answer your question, I do not see the change in date even if i update
the Outlook item.
I reported this issue to Microsoft, and they have come up blaming an
add-in.How can possibliy an add-in impact the new Outlook item created and
block its last modification time from update ?

Best Regards
Ashish Rawat


Dmitry Streblechenko said:
I just thought that you might be reading last modification time from a
recurrence after modifying the master appointment.
If you switch the calendar folder to the "By Category" view, add laast
modified tiem to the view, and modify an appointment, do you see the
change
immediately in the folder view?

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

I didn't checked with the recurring appointments, as it was coming for
normal appointment itself. why did u asked, is there any difference
between
the two ?

One more pointer, if i use outlook in non cache mode i get the correct
last
modification time.

Best Regards
Ashish Rawat


:

Is there any difference between recurring vs nonrecurring
appointments?

--
Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool
-
Hi Dimitry ,
Steps to reproduce the issue.
1. Just manually create any appointment, contact or task.
2. Update that outlook entitty..
3. Run the following macro in outlook, you will see the last
modification
time.
To read last modification time, you can use following vb macro
Sub TestAppointment()

Dim objMapiFolder As Folder
Dim i As Integer
Dim cnt As Integer
Dim oItems As Items
Dim oDate As Date
Dim oappt As AppointmentItem
Set objMapiFolder = Session.GetDefaultFolder(olFolderCalendar)

objMapiFolder.Items.Sort ("[Start]")
objMapiFolder.Items.IncludeRecurrences = True
Set oItems = objMapiFolder.Items


For i = 1 To oItems.Count
Set oappt = oItems.Item(i)
If (oappt.Subject = "testlmdate") Then
Debug.Print " Last Modified time : " +
CStr(oappt.LastModificationTime)
Debug.Print
"========================================================="
End If
Next

End Sub

4. Again change the outlook item and repeat the same process.

You will see that last modification time is same some times.
This issue is not consistently reporducible but its common with
contact.
Thanks for your help.

Best Regards
Ashish Rawat






:

So you see the chnage that your code makes but the last modified
time
stays
the same?
Doyou have a sampel script that exhibits this porblem?

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

I didn't notices, am i taking to Dimitry , the father of
redemption
dll.I
am
honoured :)
By the way, i have raised this issue as bug to microsoft also.

Best Regards
Ashish Rawat


:


Hi Dimitry,

We are talking about update scenario here.

Best Regards
Ashish rawat

:

" lastmodification time property will not get updated." - what
exactly
do
you mean by that?
If you are creating a brand new item, surely you would get
some
value
in the
lastmodification time propety. What is it?


--
Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool
-
Hi
I write outlook item using the simple MAPI api .
Following is the code example.
Dim MyFolder As Microsoft.Office.Interop.Outlook.MAPIFolder
Dim MyFileName As String
Dim OlType As
Microsoft.Office.Interop.Outlook.OlItemType
Dim TypeSuffix As String
Dim olitem as object
OlType = GetCorrespondingOlItemType(CalType)
TypeSuffix = GetCorrespondingSuffix(CalType)
MyFolder = IIf(OlType =
Microsoft.Office.Interop.Outlook.OlItemType.olTaskItem,
mobjTaskMAPIFld,
IIf(OlType =
Microsoft.Office.Interop.Outlook.OlItemType.olAppointmentItem,
mobjApptMAPIFld, mobjContactMAPIFld))

On Error GoTo OpenAsDefault
Err.Clear()
olitem= MyFolder.Items.Add(OlType)
olitem.save
System.Runtime.InteropServices.Marshal.FinalReleaseComObject(olitem)

if a write many items in bulk, the oulook behaves
inconsistently,
Even if i create a new contact manually and update it,
lastmodification
time
property will not get updated.

Though this issue is not consistenly reporducible, can some
help
me
finding
any reason why this is happening ?

Thanks in advance.

Best Regards
Ashish Rawat
 
So can *you* reproduce this issue on a clean machine?

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

There is already a ticket created, but microsoft feels that it is only
because of add-in as they say that it is not reproducible in a clean
machine
in there test environment.

Also today i am able to reproduce a scenario in which the modiifed time
apprear update in outlook item while the same is not being reflected when
we
use the simple read macro
Sub TestContact()
Dim ocnt As ContactItem
Set ocnt =
Session.GetFolderFromID("00000000FA5D5A5CC0767341AE4B04252BC4FC9E01006D56A02FB0E2AB4780517B5306F7DE5000016DDA00340000").Items("Kapil
Goel")
Debug.Print " Last Modified time : " +
CStr(ocnt.LastModificationTime)
Debug.Print " Last Modified Body : " + CStr(ocnt.Body)
Debug.Print "========================================================="
End Sub


Also , if possible can i give you call sometime, though our time lines are
different but i can call you at 9.30 EST.

Best Regards
Ashish Rawat

Dmitry Streblechenko said:
It can't. But if you have a reproducible scenario, I'd encourage you to
open
a support case with MS.
They will waive the fee if the cause will turn out to be a bug in
Outlook.

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

sorry for such a delayed response but there was lots going on in this
end.
To answer your question, I do not see the change in date even if i
update
the Outlook item.
I reported this issue to Microsoft, and they have come up blaming an
add-in.How can possibliy an add-in impact the new Outlook item created
and
block its last modification time from update ?

Best Regards
Ashish Rawat


:

I just thought that you might be reading last modification time from a
recurrence after modifying the master appointment.
If you switch the calendar folder to the "By Category" view, add laast
modified tiem to the view, and modify an appointment, do you see the
change
immediately in the folder view?

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

I didn't checked with the recurring appointments, as it was coming
for
normal appointment itself. why did u asked, is there any difference
between
the two ?

One more pointer, if i use outlook in non cache mode i get the
correct
last
modification time.

Best Regards
Ashish Rawat


:

Is there any difference between recurring vs nonrecurring
appointments?

--
Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool
-
Hi Dimitry ,
Steps to reproduce the issue.
1. Just manually create any appointment, contact or task.
2. Update that outlook entitty..
3. Run the following macro in outlook, you will see the last
modification
time.
To read last modification time, you can use following vb macro
Sub TestAppointment()

Dim objMapiFolder As Folder
Dim i As Integer
Dim cnt As Integer
Dim oItems As Items
Dim oDate As Date
Dim oappt As AppointmentItem
Set objMapiFolder = Session.GetDefaultFolder(olFolderCalendar)

objMapiFolder.Items.Sort ("[Start]")
objMapiFolder.Items.IncludeRecurrences = True
Set oItems = objMapiFolder.Items


For i = 1 To oItems.Count
Set oappt = oItems.Item(i)
If (oappt.Subject = "testlmdate") Then
Debug.Print " Last Modified time : " +
CStr(oappt.LastModificationTime)
Debug.Print
"========================================================="
End If
Next

End Sub

4. Again change the outlook item and repeat the same process.

You will see that last modification time is same some times.
This issue is not consistently reporducible but its common with
contact.
Thanks for your help.

Best Regards
Ashish Rawat






:

So you see the chnage that your code makes but the last modified
time
stays
the same?
Doyou have a sampel script that exhibits this porblem?

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

I didn't notices, am i taking to Dimitry , the father of
redemption
dll.I
am
honoured :)
By the way, i have raised this issue as bug to microsoft also.

Best Regards
Ashish Rawat


:


Hi Dimitry,

We are talking about update scenario here.

Best Regards
Ashish rawat

:

" lastmodification time property will not get updated." -
what
exactly
do
you mean by that?
If you are creating a brand new item, surely you would get
some
value
in the
lastmodification time propety. What is it?


--
Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool
-
message
Hi
I write outlook item using the simple MAPI api .
Following is the code example.
Dim MyFolder As
Microsoft.Office.Interop.Outlook.MAPIFolder
Dim MyFileName As String
Dim OlType As
Microsoft.Office.Interop.Outlook.OlItemType
Dim TypeSuffix As String
Dim olitem as object
OlType = GetCorrespondingOlItemType(CalType)
TypeSuffix = GetCorrespondingSuffix(CalType)
MyFolder = IIf(OlType =
Microsoft.Office.Interop.Outlook.OlItemType.olTaskItem,
mobjTaskMAPIFld,
IIf(OlType =
Microsoft.Office.Interop.Outlook.OlItemType.olAppointmentItem,
mobjApptMAPIFld, mobjContactMAPIFld))

On Error GoTo OpenAsDefault
Err.Clear()
olitem= MyFolder.Items.Add(OlType)
olitem.save
System.Runtime.InteropServices.Marshal.FinalReleaseComObject(olitem)

if a write many items in bulk, the oulook behaves
inconsistently,
Even if i create a new contact manually and update it,
lastmodification
time
property will not get updated.

Though this issue is not consistenly reporducible, can
some
help
me
finding
any reason why this is happening ?

Thanks in advance.

Best Regards
Ashish Rawat
 
Back
Top