Simple MAPI
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



Simple MAPI Expand / Collapse
Автор
Сообщение
31.10.2006 14:06
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 06.07.2008 10:37
Сообщ.: 236, Visits: 1 734
Добрый день.

Возникла необходимость отправлять e-mail в приложении, не нагружая пользователя запуском почтовика и необходимостью каждый раз заполнять адресные поля и т.д. Приложение пишется в VC++ (VS 2005) с использованием mfc. Пытаюсь использовать для этой цели библиотеку MAPI. Пишу следующий код:

LHANDLE pSession;

MapiRecipDesc *pRecipient;

//Структура получателей.

MapiMessage pMessage;

//Структура сообщения.

MAPILogon(0,_T("profile"), NULL, MAPI_NEW_SESSION, 0, &pSession);

//Установка новой сессии.

pMessage.lpszSubject = "Система регистрации";

pMessage.lpszNoteText = "ТЕСТ";

pMessage.nRecipCount = 1;

pMessage.lpRecips = pRecipient;

MAPISendMail(pSession, 0, &pMessage, 0, 0);

//Отправка сообщения

MAPILogoff(pSession, 0, 0, 0);

//Завершение сессии.

Пишет следующее - error LNK2019: unresolved external symbol на MAPILogon, MAPISendMail и MAPILogoff.

Библиотеку вроде подцепил - #include <mapi.h> #pragma comment ( lib, "mapi32.lib" )

В чем дело?

 

 

Сообщ. #906713
31.10.2006 15:24
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 06.07.2008 10:37
Сообщ.: 236, Visits: 1 734
Все, разобрался!

Оказывается просто так вызывать функции MAPI нельзя, нужно явно загрузить mapi32.dll и получить адрес с помощью GetProcAdress.

m_hMapi = LoadLibrary(_T("MAPI32.DLL"));

if (m_hMapi)

{

m_lpfnMAPILogon = (LPMAPILOGON) GetProcAddress(m_hMapi, "MAPILogon");

m_lpfnMAPILogoff = (LPMAPILOGOFF) GetProcAddress(m_hMapi, "MAPILogoff");

m_lpfnMAPISendMail = (LPMAPISENDMAIL) GetProcAddress(m_hMapi, "MAPISendMail");

}

Всем спасибо!

Сообщ. #906716
31.10.2006 15:55
Supreme Being

Supreme Being

модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240, Visits: 65 445
Странно. По идее надо было добавить mapi32.lib в настройки компоновщика.
Сообщ. #906719
31.10.2006 18:00
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 06.07.2008 10:37
Сообщ.: 236, Visits: 1 734
Я тоже так думал, добавлял, удалял, вобщем извращался с этой mapi32.lib по всякому :)). В итоге ничего не добился пока не сделал так, как описал выше.

Если у Вас получилось по другому пожалуйста поделитесь.

Сообщ. #906728
« пред. тема | след. тема »


Эту тему читают Expand / Collapse
Посетители: 0 (0 гостей, 0 участников, 0 скрыт.участников)
Сейчас нет участников, просматривающих тему.
Модераторы: Alexey, boombastik, bazile, pl

Время GMT +3:00, Сейчас 11:53