Quando o aniversário ou aniversário de um item de contato é definido, um item de compromisso é criado automaticamente. Se o contato for removido, esses compromissos não serão. Este artigo Find Outlook AppointmentItem for ContactItem me deu a solução para remover esses compromissos. Isso é ótimo, mas eu quero identificar os compromissos "órfãos" que estavam relacionados a um contato já removido. Olhando para as propriedades de um compromisso de aniversário, encontrei quatro propriedades que armazenam informações de contato.
- Entrada de link de contato PidLid
- PidLidContactLinkNome
- PidLidContactLinkSearchKey
- Contatos PidLid
Usando o appointment.PropertyAccessor, consigo obter um valor para PidLidContactLinkEntry ( http://schemas.microsoft.com/mapi/id/{00062008-0000-0000-C000-000000000046}/85850102 ) e PidLidContactLinkSearchKey.( http://schemas.microsoft.com/mapi/id/{00062008-0000-0000-C000-000000000046}/85840102 ), ambos valores PT_BINARY.
Os outros 2 não são expostos pelo Outlook, ao que parece. PidLidContactLinkEntry está documentado aqui: https://learn.microsoft.com/en-us/openspecs/exchange_server_protocols/ms-oxcmsg/305ad82d-f941-4c45-813c-99a8cb5403aa PidLidContactLinkSearchKey está documentado aqui: https://learn.microsoft.com/en-us/openspecs/exchange_server_protocols/ms-oxcmsg/85875108-dbb6-4ef7-a7c6-c89e914c1a47
Aqui está minha pergunta: Como obtenho o valor para o nome do contato ou EntryID. Usando os valores de propriedade acima?