У меня есть приложение, которое создает профиль MAPI для отправки писем / сообщений. Профиль создается должным образом в среде Outlook2007, но не создается должным образом в среде Outlook2007 с пакетом обновления 2 (SP2). И исходный код, и «среда обмена, в которой используется профиль MAPI / outlook» одинаковы. Профиль создается с использованием подсистемы MAPI.
Описание приложения: Приложение представляет собой приложение на основе службы Windows. Служба выполняет приложение COM. Приложение COM порождает новый поток для создания нового профиля и отправляет образец сообщения.
Актуальная проблема: во время создания профиля вызов функции ConfigureMsgService (которая принадлежит IMsgServiceAdmin) не работает должным образом, даже если он возвращает S_OK. Значение 5-го параметра «lpProps» функции ConfigureMsgService приведено ниже.
// First, the mailbox name.
ZeroMemory(&rgval[0], sizeof(SPropValue) );
rgval[0].ulPropTag = PR_PROFILE_UNRESOLVED_NAME;
rgval[0].Value.lpszA = szMailbox;
// Next, the server name.
ZeroMemory(&rgval[1], sizeof(SPropValue) );
rgval[1].ulPropTag = PR_PROFILE_UNRESOLVED_SERVER;
rgval[1].Value.lpszA = szServer;
// For NT Services, need to do this to keep MAPI from
// displaying dialog boxes.
ZeroMemory(&rgval[2], sizeof(SPropValue) );
rgval[2].ulPropTag = PR_CONVERSION_PROHIBITED; //As the com application is executed by the NT service, this parameter is specified.
rgval[2].Value.b = TRUE;
Также обратите внимание, что до вызова функции ConfigureMsgService все остальные вызовы MAPI, такие как MAPIInitialize, MAPIAdminProfiles, CreateProfile, AdminServices, CreateMsgService, GetMsgServiceTable и т. Д., Были успешно завершены.
Мой вопрос: тот же код работал правильно в среде Outlook 2007, но в среде Outlook 2007 с пакетом обновления 2 (SP2) произошел сбой.
Обратите внимание,
1. когда тот же код выполняется из автономного приложения, он работал нормально.
2. Код не работал должным образом, если служба выполняется как учетная запись локальной системы или как учетная запись сетевой службы.
- В чем может быть проблема? Я что-то упустил?
- Есть ли обходной путь?
Заранее спасибо
Saravanan