电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

vc编写电子邮件程序VIP免费

vc编写电子邮件程序_第1页
1/13
vc编写电子邮件程序_第2页
2/13
vc编写电子邮件程序_第3页
3/13
第1页共13页编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第1页共13页VC++编写电子邮件程序www.diybl.com时间:2008-08-27作者:佚名编辑:本站点击:635[评论]VC++编写电子邮件程序一、概述----本文主要讲述如何使用VisualC++用MAPI编写E-mail程序。MAPI是包含在Windows之中的,因此不需要安装其他额外的部件。MAPI有以下三种形式:SMAPI,SimpleMAPI,简单的MAPICMC,CommonMessagingCalls,一般通讯调用完整的MAPI----SMAPI和CMC都包含在完整的MAPI中,当用户想执行一些高级操作,比如编写自己的E-mail服务器的时候,必须使用完整的MAPI。本文主要阐述如何编写能够收发电子邮件的程序,因此使用SMAPI就足够了。二、编写电子邮件程序3-1初始化MAPI----要使用MAPI,必须首先对它进行初始化。初始化包括以下三个步骤:装载MAPI32.DLL动态链接库找到想要调用的MAPI函数地址登录到电子邮件对象3-1-1装载MAPI32.DLL----要装载MAPI,用户必须程序运行时动态的装载一个动态链接库。LoadLibrary函数提供了此功能,它定位一个动态链接库,并返回HINSTANCE局柄(需要保存该句柄)。LoadLibrary的语法如下:LoadLibrary(lpLibFileName);其中lpLibFileName为LPCTSTR结构变量,是所要调用的库的路径和名称。程序示例://调用MAPI32.DLL并计算函数地址HINSTANCEhInstMail;hInstMail=::LoadLibrary(“MAPI32.DLL”);if(hInstMail==NULL){//错误处理//受篇幅限制,下面的错误处理部分省略}3-1-2确定函数地址----由于MAPI32.DLL是被动态装载的,因此不知道所要调用的函数地址,也就不能一开第2页共13页第1页共13页编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第2页共13页始就调用它们,而要通过函数名获得函数的地址,并在动态链接库中查找每一个函数并核实。因此首先必须为这些函数声明指针程序示例://为MAPI32.DLL中的函数声明函数指针ULONG(PASCAL*lpfnMAPISendMail)(LHANDLElhSession,ULONGulUIParam,lpMapiMessagelpMessage,FLAGSflFlags,ULONGulReserved);ULONG(PASCAL*lpfnMAPIResolveName)(LHANDLElhSession,ULONGulUIParam,LPTSTRlpszName,FLAGSulFlags,ULONGulReserved,lpMapiRecipDescFAR*lppRecip);ULONG(FARPASCAL*lpfnMAPILogon)(ULONGulUIParam,LPSTRlpszProfileName,LPSTRlpszPassword,FLAGSflFlags,ULONGulReserved,LPLHANDLElplhSession);ULONG(FARPASCAL*lpfnMAPILogoff)(LHANDLElhSession,ULONGulUIParam,FLAGSflFlags,ULONGulReserved);ULONG(FARPASCAL*lpfnMAPIFreeBuffer)(LPVOIDlpBuffer);ULONG(FARPASCAL*lpfnMAPIAddress)(LHANDLElhSession,ULONGulUIParam,LPSTRlpszCaption,ULONGnEditFields,LPSTRlpszLabels,ULONGnRecips,lpMapiRecipDesclpRecips,FLAGSflFlags,ULONGulReserved,LPULONGlpnNewRecips,lpMapiRecipDescFAR*lppNewRecips);ULONG(FARPASCAL*lpfnMAPIFindNext)(LHANDLElhSession,ULONGulUIParam,LPSTRlpszMessageType,LPSTRlpszSeedMessageID,FLAGSflFlags,ULONGulReserved,LPSTRlpszMessageID);ULONG(FARPASCAL*lpfnMAPIReadMail)(LHANDLElhSession,ULONGulUIParam,LPSTRlpszMessageID,FLAGSflFlags,ULONGulReserved,lpMapiMessageFAR*lppMessage);----为了决定每一个函数的地址,必须为每一个函数调用GetProcAddress。GetProcAddress的语法为:GetProcAddress(hModule,lpProcName);其中,hModule为HMODULE结构,是所调用DLL模块的句柄;lpProcName为LPCSTR结构,是函数名称。程序示例://找到MAPI32.DLL函数的地址,并将它们保存在函数指针变量里第3页共13页第2页共13页编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第3页共13页(FARPROC&)lpfnMAPISendMail=GetProcAddress(hInstMail,“MAPISendMail”);(FARPROC&)lpfnMAPIResolveName=GetProcAddress(hInstMail,“MAPIResolveName”);(FARPROC&)lpfnMAPILogon=GetProcAddress(hInstMail,“MAPILogon”);(FARPROC&)lpfnMAPILogoff=GetProcAddress(hInstMail,“MAPILogoff”);(FARPROC&)lpfnMAPIFreeBuffer=GetProcAddress(hInstMail,“MAPIFreeBuffer...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

vc编写电子邮件程序

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部