?? mapicfg.cpp
字號(hào):
// MAPICfg.cpp: Implementierungsdatei
//
#include "stdafx.h"
#include "InetServer.h"
#include "MAPICfg.h"
#include "wrap2cmc.h" // new
#include "tools.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
extern Wrap2CMC CMCObject; // new
// Modified on 23.11.98 by yasin to accept only pop3 user name & MAPI user name
// MAPI user address will be picked up via lookup on MSMAIL address list.
// It would be better to logon to MSMAIL during startup/initialisation instead
// of doing at each process level.
/////////////////////////////////////////////////////////////////////////////
// Dialogfeld CMAPICfg
CMAPICfg::CMAPICfg(CWnd* pParent /*=NULL*/)
: CDialog(CMAPICfg::IDD, pParent)
{
//{{AFX_DATA_INIT(CMAPICfg)
m_e1 = _T("");
m_e2 = _T("");
// m_e3 = _T("");
m_passwd = _T("");
m_profile = _T("");
//}}AFX_DATA_INIT
}
void CMAPICfg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CMAPICfg)
DDX_Control(pDX, IDC_LIST1, mc_list1);
DDX_Control(pDX, IDC_CHECK1, m_menabled);
DDX_Text(pDX, IDC_EDIT1, m_e1);
DDX_Text(pDX, IDC_EDIT2, m_e2);
// DDX_Text(pDX, IDC_EDIT3, m_e3);
DDX_Text(pDX, IDC_PASSWD, m_passwd);
DDX_Text(pDX, IDC_PROFILE, m_profile);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CMAPICfg, CDialog)
//{{AFX_MSG_MAP(CMAPICfg)
ON_BN_CLICKED(IDC_ADD, OnAdd)
ON_BN_CLICKED(IDC_CHANGE, OnChange)
ON_BN_CLICKED(IDC_DELETE, OnDelete)
ON_BN_CLICKED(IDOK, OnOk)
ON_NOTIFY(NM_CLICK, IDC_LIST1, OnClickList1)
ON_NOTIFY(LVN_ITEMCHANGED, IDC_LIST1, OnItemchangedList1)
ON_NOTIFY(LVN_ITEMCHANGING, IDC_LIST1, OnItemchangingList1)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// Behandlungsroutinen f黵 Nachrichten CMAPICfg
void CMAPICfg::OnAdd()
{
char tempstr[255];
char mprofile[128];
char mpasswd[128];
CMC_recipient *pRecipient = NULL ;
CMC_recipient Recip;
CMC_uint32 cCount;
long err ;
LV_ITEM lvitem;
int iActualItem,iIcon;
iIcon = 0;
UpdateData(TRUE);
if (m_e1 == "")
{
MessageBox("You must enter a pop3user!");
return;
}
if (m_e2 == "")
{
MessageBox("You must enter a MAPI-name!");
return;
}
//if (m_e3 == "")
// {
// MessageBox("You must enter a MAPI-address!");
// return;
// }
sprintf(mprofile,"%s",m_profile);
sprintf(mpasswd,"%s",m_passwd);
err = CMCObject.CMCLogon(mprofile,mpasswd); //<mapi_profile>,<password>
if ( err != CMC_SUCCESS )
{
sprintf(tempstr,"Unable to logon to MSMail %d!",err);
MessageBox(tempstr);
return ;
}
sprintf(tempstr,"%s",m_e2);
cCount = 1 ;
Recip.name = tempstr; /* Send to Bob Weaver. */
Recip.name_type = CMC_TYPE_INDIVIDUAL; /* Bob's a person. */
Recip.address = NULL; /* Look_up Bob's address. */
Recip.role = 0; /* Role not used */
Recip.recip_flags = 0; /* No flag values */
Recip.recip_extensions = NULL; /* No recipient extensions */
if ( (CMCObject.CMCLookUp(
&Recip,
&cCount,
&pRecipient)) != CMC_SUCCESS )
{
MessageBox("Unable to resolve Name & Address!");
UpdateData(FALSE);
return ;
}
lvitem.mask = LVIF_TEXT | LVIF_IMAGE;
lvitem.iItem = 0;
lvitem.iSubItem = 0;
lvitem.iImage = iIcon;
sprintf(tempstr,"%s",m_e1);
lvitem.pszText = tempstr;
iActualItem = mc_list1.InsertItem(&lvitem);
lvitem.mask = LVIF_TEXT;
lvitem.iItem = iActualItem;
lvitem.iSubItem = 1;
//sprintf(tempstr,"%s",m_e2);
sprintf(tempstr,"%s",pRecipient->name);
lvitem.pszText = tempstr;
mc_list1.SetItem(&lvitem);
lvitem.iSubItem = 2;
// sprintf(tempstr,"%s",m_e3);
sprintf(tempstr,"%s",pRecipient->address);
lvitem.pszText = tempstr;
mc_list1.SetItem(&lvitem);
UpdateData(FALSE);
CMCObject.CMCFree(pRecipient);
CMCObject.CMCLogoff();
}
void CMAPICfg::OnChange()
{
char tempstr[255];
char mprofile[128];
char mpasswd[128];
CMC_recipient *pRecipient = NULL ;
CMC_recipient Recip;
CMC_uint32 cCount;
long err ;
if (mc_list1.GetNextItem(-1,LVNI_SELECTED) == -1) return;
LV_ITEM lvitem;
UpdateData(TRUE);
if (m_e1== "")
{
MessageBox("You must enter a pop3-name!");
return;
}
if (m_e2== "")
{
MessageBox("You must enter a MAPI username!");
return;
}
sprintf(mprofile,"%s",m_profile);
sprintf(mpasswd,"%s",m_passwd);
err = CMCObject.CMCLogon(mprofile,mpasswd); //<mapi_profile>,<password>
if ( err != CMC_SUCCESS )
{
sprintf(tempstr,"Unable to logon to MSMail %d!",err);
MessageBox(tempstr);
return ;
}
sprintf(tempstr,"%s",m_e2);
cCount = 1 ;
Recip.name = tempstr; /* Send to Bob Weaver. */
Recip.name_type = CMC_TYPE_INDIVIDUAL; /* Bob's a person. */
Recip.address = NULL; /* Look_up Bob's address. */
Recip.role = 0; /* Role not used */
Recip.recip_flags = 0; /* No flag values */
Recip.recip_extensions = NULL; /* No recipient extensions */
if ( (CMCObject.CMCLookUp(
&Recip,
&cCount,
&pRecipient)) != CMC_SUCCESS )
{
MessageBox("Unable to resolve Name & Address!");
UpdateData(FALSE);
return ;
}
//if (m_e3 == "")
//{
// MessageBox("You must enter a MAPI-address!");
// return;
//}
char t1[255];
char t2[255];
char t3[255];
sprintf(t1,"%s",m_e1);
sprintf(t2,"%s",pRecipient->name);
sprintf(t3,"%s",pRecipient->address);
lvitem.mask = LVIF_TEXT;
lvitem.iItem = mc_list1.GetNextItem(-1,LVNI_SELECTED);
lvitem.iSubItem = 0;
lvitem.iImage = 0;
lvitem.pszText = t1;
mc_list1.SetItem(&lvitem);
lvitem.iSubItem = 1;
lvitem.pszText = t2;
mc_list1.SetItem(&lvitem);
lvitem.iSubItem = 2;
lvitem.pszText = t3;
mc_list1.SetItem(&lvitem);
m_e1 = t1;
m_e2 = t2;
// m_e3 = t3;
UpdateData(FALSE);
CMCObject.CMCFree(pRecipient);
CMCObject.CMCLogoff();
}
void CMAPICfg::OnDelete()
{
if (mc_list1.GetNextItem(-1,LVNI_SELECTED) == -1) return;
UpdateData(TRUE);
mc_list1.DeleteItem(mc_list1.GetNextItem(-1,LVNI_SELECTED));
}
BOOL CMAPICfg::OnInitDialog()
{
CDialog::OnInitDialog();
CDialog::OnInitDialog();
CImageList *m_pimagelistSmall;
m_pimagelistSmall = new CImageList();
m_pimagelistSmall->Create(16, 16, TRUE/*bMask*/, 1, 4);
m_pimagelistSmall->Add(AfxGetApp()->LoadIcon(IDI_MAPI));
CRect rect;
LV_COLUMN lvcolumn;
TCHAR rgtsz[3][20] = {_T("From"),_T("To User"),_T("MAPI Address")};
mc_list1.SetImageList(m_pimagelistSmall, LVSIL_SMALL);
mc_list1.GetWindowRect(&rect);
lvcolumn.mask = LVCF_FMT | LVCF_SUBITEM | LVCF_TEXT | LVCF_WIDTH;
lvcolumn.fmt = LVCFMT_LEFT;
lvcolumn.pszText = rgtsz[0];
lvcolumn.iSubItem = 0;
lvcolumn.cx = 100;
mc_list1.InsertColumn(0, &lvcolumn);
lvcolumn.pszText = rgtsz[1];
lvcolumn.iSubItem = 1;
lvcolumn.cx = 70;
mc_list1.InsertColumn(1, &lvcolumn);
lvcolumn.pszText = rgtsz[2];
lvcolumn.iSubItem = 2;
lvcolumn.cx = 80;
mc_list1.InsertColumn(2, &lvcolumn);
LV_ITEM lvitem;
int iActualItem,iIcon;
iIcon = 0;
//////////////////////////////////////////////////////////
FILE *stream;
char tempstr[255];
if( (stream = fopen("mapifwd.ctl", "rt" )) != NULL )
{
while (!feof(stream))
{
fgets(tempstr,255,stream);
if (!feof(stream))
{
UpdateData(TRUE);
lvitem.mask = LVIF_TEXT | LVIF_IMAGE;
lvitem.iItem = 0;
lvitem.iSubItem = 0;
lvitem.iImage = iIcon;
tempstr[strlen(tempstr)-1] = '\0';
lvitem.pszText = tempstr;
iActualItem = mc_list1.InsertItem(&lvitem);
lvitem.mask = LVIF_TEXT;
lvitem.iItem = iActualItem;
lvitem.iSubItem = 1;
fgets(tempstr,255,stream);
tempstr[strlen(tempstr)-1] = '\0';
lvitem.pszText = tempstr;
mc_list1.SetItem(&lvitem);
lvitem.iSubItem = 2;
fgets(tempstr,255,stream);
tempstr[strlen(tempstr)-1] = '\0';
lvitem.pszText = tempstr;
mc_list1.SetItem(&lvitem);
UpdateData(FALSE);
}
}
fclose(stream);
}
else
{
MessageBox("Could not open mapifwd.ctl!");
}
char tempstr1[255];
UpdateData(TRUE);
sprintf(tempstr1,"%s",GetReg("Software\\InetServ","MapiPassword"));
m_passwd = tempstr1;
sprintf(tempstr1,"%s",GetReg("Software\\InetServ","MapiProfile"));
m_profile = tempstr1;
sprintf(tempstr1,"%s",GetReg("Software\\InetServ","MapiEnabled"));
if (strcmp(tempstr1,"TRUE") == 0) m_menabled.SetCheck(1);
if (strcmp(tempstr1,"FALSE") == 0) m_menabled.SetCheck(0);
UpdateData(FALSE);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX-Eigenschaftenseiten sollten FALSE zur點(diǎn)kgeben
}
void CMAPICfg::OnOk()
{
char tempstr[255];
UpdateData(TRUE);
sprintf(tempstr,"%s",m_profile);
SetReg("Software\\InetServ","MapiProfile" ,tempstr);
sprintf(tempstr,"%s",m_passwd);
SetReg("Software\\InetServ","MapiPassword" ,tempstr);
if (m_menabled.GetCheck() == 0) SetReg("Software\\InetServ","MapiEnabled" ,"FALSE");
if (m_menabled.GetCheck() == 1) SetReg("Software\\InetServ","MapiEnabled" ,"TRUE");
UpdateData(FALSE);
FILE *stream;
if( (stream = fopen("mapifwd.ctl", "wt" )) != NULL )
{
CString pop3user;
CString username;
CString passw;
for (int i = 0;i<=mc_list1.GetItemCount()-1;i++)
{
pop3user = mc_list1.GetItemText( i, 0 );
username= mc_list1.GetItemText( i, 1);
passw = mc_list1.GetItemText( i, 2);
fprintf(stream,pop3user);
fprintf(stream,"\n");
fprintf(stream,username);
fprintf(stream,"\n");
fprintf(stream,passw);
fprintf(stream,"\n");
}
fclose(stream);
}
else
{
MessageBox("Could not save mapifwd.ctl!");
}
CDialog::OnOK();
}
void CMAPICfg::OnClickList1(NMHDR* pNMHDR, LRESULT* pResult)
{
UpdateData(TRUE);
m_e1 = mc_list1.GetItemText(mc_list1.GetNextItem(-1,LVNI_SELECTED),0);
m_e2 = mc_list1.GetItemText(mc_list1.GetNextItem(-1,LVNI_SELECTED),1);
// m_e3 = mc_list1.GetItemText(mc_list1.GetNextItem(-1,LVNI_SELECTED),2);
UpdateData(FALSE);
*pResult = 0;
}
void CMAPICfg::OnItemchangedList1(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
UpdateData(TRUE);
m_e1 = mc_list1.GetItemText(mc_list1.GetNextItem(-1,LVNI_SELECTED),0);
m_e2 = mc_list1.GetItemText(mc_list1.GetNextItem(-1,LVNI_SELECTED),1);
// m_e3 = mc_list1.GetItemText(mc_list1.GetNextItem(-1,LVNI_SELECTED),2);
UpdateData(FALSE);
*pResult = 0;
}
void CMAPICfg::OnItemchangingList1(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
UpdateData(TRUE);
m_e1 = mc_list1.GetItemText(mc_list1.GetNextItem(-1,LVNI_SELECTED),0);
m_e2 = mc_list1.GetItemText(mc_list1.GetNextItem(-1,LVNI_SELECTED),1);
// m_e3 = mc_list1.GetItemText(mc_list1.GetNextItem(-1,LVNI_SELECTED),2);
UpdateData(FALSE);
*pResult = 0;
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -