读书人

高分寻求OutlookOutlook Express的通

发布时间: 2012-02-22 19:36:55 作者: rapoo

高分寻求Outlook,Outlook Express的通讯录的提取和写入代码。 (100分)
网上有很多关于wab的文章,但是wab好像有限制,只能读取,请高手帮帮忙,给点代码看看,谢谢!

[解决办法]
这里是读取的东西:
http://www.vckbase.com/document/viewdoc/?id=660

我记得有个WABTOOL的示例可以写入,你去找找MSDN。

这里有WAB的文档去读读看
http://support.microsoft.com/default.aspx?scid=kb;en-us;266347
[解决办法]

the fellowing code can get the contact from outlook 2k ,
/*
if the flag=1,we get the contact from outlook 2000 and feed in window lister.
if the flag=0,we just buid the chain of contact.
*/


#import "c:\Program Files\Microsoft Office\office\mso9.dll" named_guids
#import "c:\Program Files\Microsoft Office\OFFICE11\MSOUTL.olb" \
no_namespace exclude("_IRecipientControl", "_DRecipientControl")

int CRightView::outLookList(int flag)
{
//MAPIFolderPtr pFolder;
_ApplicationPtr pApp;
_ItemsPtr pItems;
_ContactItemPtr pContact;
HRESULT hr;
LV_ITEMlvi;

m_ListCtrl->DeleteAllItems();
//ASSERT(m_ListCtrl->DeleteAllItems() != 0);
try
{
hr=pApp.CreateInstance(__uuidof(Application));
if (FAILED(hr))
{
MessageBox("Outlook实例创建失败","错误",MB_OK);
return FALSE;
}
_pApp = pApp;

pFolder=pApp->GetNamespace(_bstr_t("MAPI"))->GetDefaultFolder(olFolderContacts);

if (pFolder==NULL)
{
MessageBox("没有发现默认的Outlook联系人文件夹","错误!");
return FALSE;
}
}catch(_com_error &e)
{
CString err = "对 Microsoft OutLook 2003 联系人操作时发生以下错误:\n" ;
MessageBox(err+(char *)e.Description()+"\n请关闭所有窗口后重试!","错误",MB_ICONERROR|MB_OK);
return FALSE;
}

pItems=pFolder->GetItems();
if (pItems==NULL)
{
MessageBox("不能得到联系人条目","错误");
return FALSE;
}

pContact=pItems->GetFirst();

if (flag == 1)
{
while(1)
{
if (pContact==NULL)
{
break;
}
listCount ++;

int nI = m_ListCtrl->GetItemCount();
lvi.mask = LVIF_TEXT|LVIF_IMAGE|LVIF_STATE;
lvi.iItem = nI;
lvi.iSubItem = 0;
lvi.iImage = 3;
lvi.stateMask = LVIS_STATEIMAGEMASK;
lvi.state = INDEXTOSTATEIMAGEMASK(1);

if (m_ListCtrl->InsertItem(&lvi) != -1)
{
m_ListCtrl->SetItemText(nI, 0, (char *)pContact->GetFullName());
m_ListCtrl->SetItemText(nI, 1, (char *)pContact->GetMobileTelephoneNumber());

try//handle the email deny access exception
{
m_ListCtrl->SetItemText(nI, 2, (char *)pContact->GetEmail1Address());

}catch (_com_error &e)
{
m_ListCtrl->SetItemText(nI, 2, e.Description()+"访问拒绝");
}

m_ListCtrl->SetItemText(nI, 3, (char *)pContact->GetHomeTelephoneNumber());
m_ListCtrl->SetItemText(nI, 4, (char *)pContact->GetBusinessTelephoneNumber());
m_ListCtrl->SetItemText(nI, 5, (char *)pContact->GetBusinessFaxNumber());
m_ListCtrl->SetItemText(nI, 6, (char *)pContact->GetHomeAddress());
}

pContact=pItems->GetNext();
}
}
}
[解决办法]
使用方法.
CWAB wab;// WAB文件操作对象
ADDRESS_BOOK Person;// 联系人资料
// 创建或打开wab文件
if (!wab.OpenWabFile("文件名"))
return;

// 在此填充 Person 结构.然后调用下面语句.
wab.AddEntry(&Person);// 添加一个联系人

读书人网 >VC/MFC

热点推荐