Пользователь (PR_DISPLAT_TYPE) DisplayType с использованием погашения MAPITable - PullRequest
0 голосов
/ 17 января 2020

Я хочу получить пользователям Office365 DisplayType с помощью Redemption MAPITable. но погашение MAPITable не дает правильных результатов для пользователей Office365 DisplayType.

Без MAPITable я могу найти его, но это очень медленный процесс.

Когда я использую Redemption MAPITable, результат отличается и возвращает одинаковый результат для всех пользователей.

где проблема? или есть другое свойство MAPI, чтобы найти его?

Оба процесса, которые я использую:

set Session = CreateObject("Redemption.RDOSession");
         set AddrList = Session.Addressbook.Gal;
         set AddrEntries = AddrList.AddressEntries;
         set AddrEntry  = AddrEntries.GetFirst;
         int k =0;
         while (AddrEntry!= NULL)
         { k= AddrEntry.DisplayType;//Result is DT_MAILUSER(0) and DT_REMOTE_MAILUSER(6)
           AddrEntry = AddrEntries.GetNext();} 

         Above method give the correct result verify by outlookspy.            

        _IMAPITable        table;
         table = AddrEntries.GetMAPITable();
         _RecordsetPtr pRstAuthors("ADODB.Recordset");
         pRstAuthors = table.ExecSQL(_T("SELECT \"http://schemas.microsoft.com/mapi/proptag/0x39000003\" from list"));
         int k=0;
         while (!pRstAuthors->EndOfFile)
         { k = pRstAuthors->GetFields()->Item[0]->GetValue();//Result DT_MAILUSER(0)for All User
           k = pRstAuthors->GetFields()->Item[0]->Value.intVal;//Result DT_MAILUSER(0) for All User
           pRstAuthors->MoveNext();}

Все пользователи имеют одинаковый результат. что неправильно.

Спасибо

...