如何解决在安装和未安装 Windows 10 SDK 的 C++Builder 10.4.1 中使用 SendMailMapi()
我有 2 台电脑,都安装了 C++Builder 10.4.1,只有 1 台安装了 Windows 10 SDK。
当我使用以下代码编译并运行我的程序时,SendMailMapi()
会引发访问冲突。
在没有 SDK 的系统上,代码编译并运行得很好。任何想法是什么问题?
#include <Winapi.Mapi.hpp>
#include <mapi.h>
...
lots of stuff here
...
SendMailMapi("email address","mail subject","Text",FileName(attachment));
...
bool __fastcall Tmyform::SendMailMapi(AnsiString ToAddr,AnsiString Subj,AnsiString Msg,AnsiString AttFile)
{
//
AnsiString fp,fn;
int dwResult;
fn = Application->ExeName;
if (fn.Pos(".\\")) {
fn = fn.Delete(fn.Pos(".\\"),2);
}
fn = ExtractFilePath(fn);
fp = ExtractFilePath(AttFile);
if (fp.Pos(".\\")) {
fp = fp.Delete(fp.Pos(".\\"),2);
}
fn = fn + fp + ExtractFileName(AttFile);
HINSTANCE hMAPI;
LPMAPISENDMAIL pSendMail;
TMapiMessage *message = new TMapiMessage;
message->flFlags = 0;
TMapiFileTagExt *filetag = new TMapiFileTagExt;
//dwResult = message->flFlags;
filetag->ulReserved = 0;
filetag->cbEncoding = 0;
filetag->cbTag = 0;
filetag->lpTag = NULL;
filetag->lpEncoding = NULL;
TMapiFileDesc *file = new TMapiFileDesc;
file->ulReserved = 0;
file->flFlags = 0;
file->nPosition = -1;
file->lpszPathName = fn.c_str();
file->lpszFileName = fn.c_str();
file->lpFileType = filetag;
TMapiRecipDesc *Recpt = new TMapiRecipDesc;
Recpt->ulReserved = 0;
Recpt->ulRecipClass = MAPI_TO;
Recpt->lpszName = ""; // (wchar_t *)
Recpt->lpszAddress = ToAddr.c_str(); // (wchar_t *)
Recpt->ulEIDSize = 0;
Recpt->lpEntryID = NULL;
hMAPI = LoadLibraryA( "MAPI32.DLL" );
pSendMail = (LPMAPISENDMAIL)GetProcAddress( hMAPI,"MAPISendMail" );
message->lpszSubject = Subj.c_str(); // (wchar_t *)
message->lpszNoteText = Msg.c_str(); // (wchar_t *)
message->lpszMessageType = ""; // (wchar_t *)
message->nRecipCount = 1;
message->lpRecips = Recpt;
message->nFileCount = 1;
message->lpFiles = file;
message->lpOriginator = NULL;
//dwResult = message->flFlags;
dwResult = pSendMail( lhSessionNull,(DWORD)0,message,MAPI_LOGON_UI | MAPI_DIALOG,0 );
if( dwResult == SUCCESS_SUCCESS )
{
// ...yay! :)
}
else
{
// ...we always fail here with: MAPI_E_FAILURE
}
}
找到了,抱歉耽误了 一些更多细节让这件事开心!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。