Session.Logon() против Session.Logon(,,True,True)

Я тестирую почтовый ящик, подключенный к обмену, режим кэширования версии 2010 Outlook версии 2010. В этом сценарии биржа отключена или есть проблемы с подключением.

Если я использую следующий метод

RDOSession.Logon 'Blank parameters

Я получу ошибку MAPE_E_FAILONEPROVIDER при извлечении папок. Однако, если я использую

RDOSession.Logon ,,True,True 'Prompt to choose the profile

Все проходит нормально. Поведение, которое я хочу, выглядит следующим образом:

Если пользователь выбирает «Всегда запрашивать» для выбора профиля, я хочу, чтобы код запрашивал. Если пользователь выбирает профиль по умолчанию, я хочу, чтобы код работал без звука и выбирал профиль по умолчанию. Я также хочу, чтобы оба варианта работали безупречно, когда включен режим кэширования и есть проблемы с подключением.

Как я могу это решить?

Спасибо!


person Machinegon    schedule 01.10.2013    source источник


Ответы (1)


Хорошо, я решил часть вопроса сам. Я проверяю этот ключ:

HKCU\Microsoft\Software\Exchange\Client\Options\PickForProfile

и используйте другой метод входа в систему в зависимости от того, является ли он истинным или ложным. Но это не устраняет ошибку, с которой я сталкиваюсь, когда пользователь не выбирает профиль.

person Machinegon    schedule 01.10.2013
comment
Если вам нужно отобразить диалоговое окно выбора профиля, вам нужно передать дескриптор окна, который будет использоваться в качестве родителя диалогового окна, в параметре ParentWindowHandle. - person Dmitry Streblechenko; 02.10.2013