📄 smtpmodel.h
字号:
// SmtpModel.h : Declaration of the CSmtpModel
//作者:高越 邮箱:darkprince@v.cn
//QQ:1738387 (本人只接受技术探讨以及软件项目合作事宜,其他误扰)
#ifndef __SMTPMODEL_H_
#define __SMTPMODEL_H_
#include "resource.h" // main symbols
#include "ProxyConnectSocket.h"
#include "DakComPtrList.h"
class CSmtpSocket;
/////////////////////////////////////////////////////////////////////////////
// CSmtpModel
class ATL_NO_VTABLE CSmtpModel :
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<CSmtpModel, &CLSID_SmtpModel>,
public ISupportErrorInfo,
public IDispatchImpl<ISmtpModel, &IID_ISmtpModel, &LIBID_DARKSMTPLib>
{
public:
STDMETHOD(SearchComUserByWordForWeb)(/*[in]*/ VARIANT bstMailPath,/*[in]*/ VARIANT bstWord,/*[out]*/ VARIANT* pMemberList);
STDMETHOD(SeaComNameForWeb)(/*[in]*/ VARIANT bstMailPath,/*[in]*/ VARIANT bstUserName,/*[out]*/ VARIANT* pMemberList);
STDMETHOD(AddComGroupUserForWeb)(/*[in]*/ VARIANT bstMailPath,/*[in]*/ VARIANT bstGroupName,/*[in]*/ VARIANT bstMemberName,/*[in]*/ VARIANT bstMemberNick);
STDMETHOD(DelComGroupUserForWeb)(/*[in]*/ VARIANT bstMailPath,/*[in]*/ VARIANT bstGroupUserId);
STDMETHOD(DelComGroupForWeb)(/*[in]*/ VARIANT bstMailPath,/*[in]*/ VARIANT bstGroupName);
STDMETHOD(AddComGroupForWeb)(/*[in]*/ VARIANT bstMailPath,/*[in]*/ VARIANT bstGroupName);
STDMETHOD(GetCompanyAddrTextForWeb)(VARIANT bstMailPath, VARIANT *pComAddrText);
STDMETHOD(GetCompanyGroupListForWeb)(VARIANT bstMailPath,VARIANT* pMemberList);
STDMETHOD(GetCompanyUserListForWeb)(/*[in]*/ VARIANT bstMailPath,/*[in]*/VARIANT bstGroupName,/*[out]*/ VARIANT* pMemberList);
STDMETHOD(GetLocalHostIp)(/*[out]*/ VARIANT* pLocalIp);
STDMETHOD(DelGroupUserForWeb)(/*[in]*/ VARIANT bstMailPath,/*[in]*/ VARIANT bstUserId,/*[in]*/ VARIANT bstGroupUserId);
STDMETHOD(GetGroupUserListForWeb)(/*[in]*/ VARIANT bstMailPath,/*[in]*/ VARIANT bstUserId,/*[in]*/ VARIANT bstGroupName,/*[out]*/ VARIANT* pMemberList);
STDMETHOD(AddGroupUserForWeb)(/*[in]*/ VARIANT bstMailPath,/*[in]*/ VARIANT bstUserId,/*[in]*/ VARIANT bstGroupName,/*[in]*/ VARIANT bstMemberName,/*[in]*/ VARIANT bstMemberNick,/*[in]*/ VARIANT bstMemberAddr,/*[in]*/ VARIANT bstMemberTel,/*[in]*/ VARIANT bstMemberRemark);
STDMETHOD(GetGroupListForWeb)(/*[in]*/ VARIANT bstMailPath,/*[in]*/ VARIANT bstUserId,/*[out]*/ VARIANT* pGroupList);
STDMETHOD(DelGroupNameForWeb)(/*[in]*/ VARIANT bstMailPath,/*[in]*/ VARIANT bstUserId,/*[in]*/ VARIANT bstGroupName);
STDMETHOD(AddGroupNameForWeb)(/*[in]*/ VARIANT bstMailPath,/*[in]*/ VARIANT bstUserId,/*[in]*/ VARIANT bstGroupName);
STDMETHOD(GetAssistInfoForWeb)(/*[in]*/ VARIANT bstMailPath,/*[in]*/ VARIANT bstUserId,/*[out]*/ VARIANT* pRejectMail,/*[out]*/ VARIANT* pEnableReply,/*[out]*/ VARIANT* pAutoReplyContent);
STDMETHOD(CreateAssistInfoForWeb)(/*[in]*/ VARIANT bstMailPath,/*[in]*/ VARIANT bstUserId,/*[in]*/ VARIANT bstRejectMail,/*[in]*/ VARIANT bstEnableReply,/*[in]*/ VARIANT bstAutoReplyContent);
STDMETHOD(GetSysInfoForWeb)(/*[in]*/ VARIANT bstMailPath,/*[in]*/ VARIANT bstUserId, /*[out]*/ VARIANT* pNickName,/*[out]*/ VARIANT* pNotWithOriMail,/*[out]*/ VARIANT* pMarkOriMsg,/*[out]*/ VARIANT* pSaveOutBox,/*[out]*/ VARIANT* pDelOption,/*[out]*/ VARIANT* pFullWarnRate,/*[out]*/ VARIANT* pRecvDelInServer);
STDMETHOD(CreateSysInfoForWeb)(/*[in]*/ VARIANT bstMailPath,/*[in]*/ VARIANT bstUserId,/*[in]*/ VARIANT bstNickName,/*[in]*/ VARIANT bstNotWithOriMail,/*[in]*/ VARIANT bstMarkOriMsg,/*[in]*/ VARIANT bstSaveOutBox,/*[in]*/ VARIANT bstDelOption,/*[in]*/ VARIANT bstFullWarnRate,/*[in]*/ VARIANT bstRecvDelInServer);
STDMETHOD(GetUserInfoForWeb)(/*[in]*/ VARIANT bstMailPath,/*[in]*/ VARIANT bstUserId,/*[out]*/ VARIANT* pTrueName,/*[out]*/ VARIANT* pGender,/*[out]*/ VARIANT* pBirth,/*[out]*/ VARIANT* pPersonalID,/*[out]*/ VARIANT* pMailBox,/*[out]*/ VARIANT* pCity,/*[out]*/ VARIANT* pEducation,/*[out]*/ VARIANT* pMaritalStatus,/*[out]*/ VARIANT* pJobType,/*[out]*/ VARIANT* pOccupation,/*[out]*/ VARIANT* pIncome,/*[out]*/ VARIANT* pNetCost,/*[out]*/ VARIANT* pEnquiry);
STDMETHOD(CreateUserInfoForWeb)(/*[in]*/ VARIANT bstMailPath,/*[in]*/ VARIANT bstUserId,/*[in]*/ VARIANT bstTrueName,/*[in]*/ VARIANT bstGender,/*[in]*/ VARIANT bstBirth,/*[in]*/ VARIANT bstPersonalID,/*[in]*/ VARIANT bstMailBox,/*[in]*/ VARIANT bstCity,/*[in]*/ VARIANT bstEducation,/*[in]*/ VARIANT bstMaritalStatus,/*[in]*/ VARIANT bstJobType,/*[in]*/ VARIANT bstOccupation,/*[in]*/ VARIANT bstIncome,/*[in]*/ VARIANT bstNetCost,/*[in]*/ VARIANT bstEnquiry);
STDMETHOD(GetLevelInfoForWeb)(/*[in]*/ VARIANT bstMailPath,/*[in]*/ VARIANT bstUserId,/*[out]*/ VARIANT* pMailBoxSize,/*[out]*/ VARIANT* pUserLevel);
STDMETHOD(CreateLevelInfoForWeb)(/*[in]*/ VARIANT bstMailPath,/*[in]*/ VARIANT bstUserId,/*[in]*/ VARIANT bstMailBoxSize,/*[in]*/ VARIANT bstUserLevel);
STDMETHOD(SaveMailToSaveBoxForWeb)(/*[in]*/ VARIANT bstMailPath,/*[in]*/ VARIANT bstUserId,/*[in]*/ VARIANT bstMsgId);
STDMETHOD(ClearMailBoxSpace)(/*[in]*/ VARIANT bstMailPath,/*[in]*/ VARIANT bstUserId);
STDMETHOD(DeleteAttachByNameForWeb)(VARIANT bstMailPath,VARIANT bstUserId,VARIANT bstMsgId,VARIANT bstAttachName);
STDMETHOD(CreateMailDirForWeb)(/*[in]*/ VARIANT bstMailPath,/*[in]*/ VARIANT bstUserId,/*[in]*/ VARIANT bstMailOldIndex,/*[out]*/ VARIANT* pMailNewIndex );
STDMETHOD(SendMailForWeb)(/*[in]*/ VARIANT bstMailPath,/*[in]*/ VARIANT bstUserId,/*[in]*/ VARIANT vbSave,/*[in]*/ VARIANT bstMsgId,/*[out]*/ VARIANT* pErrorString);
STDMETHOD(SendMail)();
STDMETHOD(Disconnect)();
STDMETHOD(Connect)(/*[out]*/ VARIANT* pErrorInfo, /*[out]*/VARIANT* pSuccess);
STDMETHOD(Reset)();
STDMETHOD(AddAttachment)(VARIANT bstrAttachPath);
STDMETHOD(AddReplyTo)(VARIANT bstrReplyTo,VARIANT bstrReplyToName);
STDMETHOD(AddCC)(VARIANT bstrCC,VARIANT bstrCCName);
STDMETHOD(AddBCC)(VARIANT bstrBCC,VARIANT bstrBCCName);
STDMETHOD(AddAddress)(VARIANT bstrAddress,VARIANT bstrToName);
STDMETHOD(get_ProxyHostName)(/*[out, retval]*/ VARIANT *pVal);
STDMETHOD(put_ProxyHostName)(/*[in]*/ VARIANT newVal);
STDMETHOD(get_ProxyPort)(/*[out, retval]*/ long *pVal);
STDMETHOD(put_ProxyPort)(/*[in]*/ long newVal);
STDMETHOD(get_ProxyPassWord)(/*[out, retval]*/ VARIANT *pVal);
STDMETHOD(put_ProxyPassWord)(/*[in]*/ VARIANT newVal);
STDMETHOD(get_ProxyUserName)(/*[out, retval]*/ VARIANT *pVal);
STDMETHOD(put_ProxyUserName)(/*[in]*/ VARIANT newVal);
STDMETHOD(get_ProxyType)(/*[out, retval]*/ long *pVal);
STDMETHOD(put_ProxyType)(/*[in]*/ long newVal);
STDMETHOD(get_Subject)(/*[out, retval]*/ VARIANT *pVal);
STDMETHOD(put_Subject)(/*[in]*/ VARIANT newVal);
STDMETHOD(get_Body)(/*[out, retval]*/ VARIANT *pVal);
STDMETHOD(put_Body)(/*[in]*/ VARIANT newVal);
STDMETHOD(get_FromName)(/*[out, retval]*/ VARIANT *pVal);
STDMETHOD(put_FromName)(/*[in]*/ VARIANT newVal);
STDMETHOD(get_From)(/*[out, retval]*/ VARIANT *pVal);
STDMETHOD(put_From)(/*[in]*/ VARIANT newVal);
STDMETHOD(get_PassWord)(/*[out, retval]*/ VARIANT *pVal);
STDMETHOD(put_PassWord)(/*[in]*/ VARIANT newVal);
STDMETHOD(get_UserName)(/*[out, retval]*/ VARIANT *pVal);
STDMETHOD(put_UserName)(/*[in]*/ VARIANT newVal);
STDMETHOD(get_HostName)(/*[out, retval]*/ VARIANT *pVal);
STDMETHOD(put_HostName)(/*[in]*/ VARIANT newVal);
STDMETHOD(get_Port)(/*[out, retval]*/ long *pVal);
STDMETHOD(put_Port)(/*[in]*/ long newVal);
STDMETHOD(get_IsHTML)(/*[out, retval]*/ VARIANT *pVal);
STDMETHOD(put_IsHTML)(/*[in]*/ VARIANT newVal);
CSmtpModel()
{
}
DECLARE_REGISTRY_RESOURCEID(IDR_SMTPMODEL)
//DECLARE_NOT_AGGREGATABLE(CSmtpModel)
DECLARE_PROTECT_FINAL_CONSTRUCT()
BEGIN_COM_MAP(CSmtpModel)
COM_INTERFACE_ENTRY(ISmtpModel)
COM_INTERFACE_ENTRY(IDispatch)
COM_INTERFACE_ENTRY(ISupportErrorInfo)
END_COM_MAP()
// ISupportsErrorInfo
STDMETHOD(InterfaceSupportsErrorInfo)(REFIID riid);
HRESULT FinalConstruct();
void FinalRelease();
// ISmtpModel
private:
CDakComPtrList m_arrTo; //目的地址
CDakComPtrList m_arrReplyTo; //回复地址
CDakComPtrList m_arrCC; //抄送地址
CDakComPtrList m_arrBCC; //密文抄送地址
CDakComPtrList m_arrAttachment; //附件数组
CSmtpSocket* m_pSmtpConnect;//connection socket class
BOOL m_bHTML; //附件是否为HTML文件
long m_nHostPort; //远程SMTP端口
CComBSTR m_bstrHostAddress; //远程SMTP地址
CComBSTR m_bstrUserName; //发送用户ID
CComBSTR m_bstrPassWord; //发送用户密码
CComBSTR m_bstrFrom; //发送用户MAIL地址
CComBSTR m_bstrFromName; //发送用户名称
CComBSTR m_bstrBody; //正文
CComBSTR m_bstrSubject; //标题
//About proxy information
ENUM_PROXYTYPE m_enumProxyType;//proxy type
CComBSTR m_bstrProxyUserName;//proxy user id;
CComBSTR m_bstrProxyPassWord;//proxy password;
long m_nProxyPort;//the proxy server port
CComBSTR m_bstrProxyHostName;//the proxy server host name or ip
private:
CString CreateMailDirForWeb(CString strMailPath,CString strUserId);
};
#endif //__SMTPMODEL_H_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -