Использование свойства PR_DISPLAY_NAME для хранилищ именных сообщений "SMS" и "ActiveSync" - PullRequest
0 голосов
/ 19 января 2011

Я пытаюсь выяснить тип хранилища сообщений на устройствах Windows Mobile (версии 6.1 и 6.5).

Более конкретно, я пытаюсь выяснить, относится ли хранилище сообщений к типу «Exchange».(ActiveSync) ", а не SMS или другой тип учетной записи электронной почты (POP3, IMAP и т. Д.).

Я полагаюсь на тот факт, что значение, возвращаемое для свойства PR_DISPLAY_NAME для хранилища SMS, равно "SMS"и для Exchange Store это "ActiveSync".

Мой вопрос , могу ли я полагаться на эти значения для определения типа хранилища сообщений?Есть ли лучший способ добиться этого?

Ниже приведен псевдокод, изображающий мою логику:

 bool isActiveSyncSet = areAnySyncAccountSet(); // I use Sync configuration service
                                                // provider to check if any ActiveSync accounts are set.

// Initialize MAPI and fetch all stores
while(we_have_stores) {

    // Open Current Store
    openCurrentStore(&currentStore);

    string storeName = fetchStoreName(currentStore); // using GetProps method fetch PR_DISPLAY_NAME

    if(storeName == "SMS" ) continue;
    if(isActiveSyncSet && storeName == "ActiveSync") {
          // We got the Exchange Message Store
          break;
    } else {
          // We have an E-Mail store but not an ActiveSync one
    }
}

Ответы [ 2 ]

0 голосов
/ 10 сентября 2011

У меня нет большого опыта работы с Windows Mobile, но почему вы не можете проверить свойство PR_MDB_PROVIDER?

0 голосов
/ 27 января 2011

После долгих офлайн исследований и тестирования строки, возвращенной на разных устройствах [1], я пришел к выводу, что:

На строку можно положиться "ActiveSync" возвращается для PR_DISPLAY_NAME свойства хранилища сообщений, чтобы идентифицировать его как хранилище сообщений ActiveSync Exchange.Это хранилище сообщений отображается как Outlook E-Mail в интерфейсе устройства.Это верно как минимум для устройств 6,1 и 6,5 не тестировал на телефоне с Windows 7 , поскольку это не целевая аудитория для моего приложения [2].

Надеюсь, это поможет любому, кто делает подобные вещи.

[1] Устройства, которые я тестировал, были от разных поставщиков (HTC, LG, Samsung), так что я довольноуверен, что это справедливо для неясных устройств под управлением Windows Mobile 6.1 или 6.5.
[2] Пожалуйста, не стесняйтесь добавлять информацию о телефонах с Windows 7, если у вас есть один или у вас есть доступ к нему.(Я не уверен, что на этих телефонах еще есть MAPI).

...