ms outlook 2013 addressentry ID不是唯一的

时间:2014-03-10 01:12:02

标签: vba outlook outlook-vba

我读到的关于MS Outlook的一切都说addressentry.id是独一无二的。但我的似乎不是。

以下是一些代码:

Dim anaddressentry As AddressEntry
Dim listuniqueid As String
Dim lastlistunique As String
Dim kount As Integer
lastlistunique = "none"
For kount = 1 To 20
    For Each anaddressentry In Session.AddressLists.Item(2).AddressEntries
        If anaddressentry.Name = "testcontactgroup" Then
            listuniqueid = anaddressentry.ID
            If lastlistunique <> "none" Then
                If lastlistunique <> listuniqueid Then
                    Stop
                End If
            End If
            lastlistunique = listuniqueid
        End If
    Next
Next

它运行相同的例程20次,它通过我的联系人,并寻找名为“testcontactgroup”的东西,然后它得到它的addressentry.id。如果这不是第一次,则将其与该联系人获得的最后一个addressentry.id进行比较。

如果它们不相同,它就会停止。据我了解,它们应该始终相同。

除最后几个字符外,它们接近相同。

这是我为同一地址条目的id获得的两个值

00000000FE42AA0A18C71A10E8850B651C2400000300000005000000FF000000180000000000000058D0304A0573A945BD70D6FBA5D114FAC416A000000090

00000000FE42AA0A18C71A10E8850B651C2400000300000005000000FF000000180000000000000058D0304A0573A945BD70D6FBA5D114FAC416A00060209B

有什么建议吗?

感谢

鲍勃

1 个答案:

答案 0 :(得分:1)

该条目ID指的是您的某个“联系人”文件夹中的联系人。它包括(除了几个标志)电子邮件类型(email1,email2,传真等)。和相应的IPM.Contact消息(ContactItem对象)的条目id。

您永远不应该直接比较条目ID - 这是Namespace.CompareEntryIDs的用途:多个条目ID可以引用同一个对象。