以下简单介绍在本文使用的对象。
(1) outlook对象模型:
application对象。该对象是outlook的核心对象,即根对象,它提供了对其它所有对象的访问。
Namespace对象。该对象是outlook数据源的一个抽象根,虽然该对象不被使用,它还是提供了对在对象树底层上排在自己下面的对象的访问。
Item对象。Outlook中最基本的信息单元。本文将使用mailitem对象。
Explorer对象。文件夹中项目的可视化表示,outlook用explorer显示item对象。
Impector对象。用来显示项目的outlook窗体。Inspector之于项目,如同explorer之于文件夹。
(2) word对象模型
application对象。 Word的根对象。
Document对象。该对象为word中的文档对象,相对于word中的某一具体文档。
Range对象 document对象的某一特定区块,可以通过不同的参数指定,比如一个段落、一个表格等。
3. 使用outlook对象模型进行设计
使用outlook对象模型,需要在程序中包含对office对象的引用,获得命名空间,然后调用对象的属性和方法,以下列出了部分程序代码。
(1)在stdafx.h 文件,加入以下语句:
#import "c:\program files\Microsoft Office\Office\msoutl9.olb" /*outlook对象引用文件*/
#import "c:\program files\Microsoft Office\Office\msword9.OLB" \
rename_namespace("WD") /*word对象引用文件*/
#import <mshtml.tlb> rename_namespace("HTML") /*加入对html对象的引用*/
(2) 邮件发送函数
BOOL CProject::SendMail()
{
WD::_ApplicationPtr pWD;
WD::_DocumentPtr pWordDoc;
WD::RangePtr pMainStory;
WD::_DocumentPtr pWordEditor;
HTML::IHTMLDocument2Ptr pHtmlEditor; /* 定义word对象和html对象指针*
pOL;
pMail;
pInspector; /* 定义outlook对象指针*/
TESTHR(pOL.CreateInstance(L"Outlook.Application")); /*创建outlook对象*/
pMail = pOL->CreateItem(); /*创建邮件对象*/
pMail->Display();
pMail->To = m_SendPerson;
pMail->CC = m_CopyPerson;
pMail->Subject = m_bstrSubject;
pInspector = pMail->GetInspector; /*建立邮件对象的发送人和主题*/
//以下为将现存的word或html文件插入到邮件体里
if(m_lngBodyFileSize>0)
{
TESTHR(pWD.CreateInstance(L"Word.Application"));
_variant_t varBodyFileName=(pApp->m_BodyFilePathName).AllocSysString();
pWordDoc = (pWD->Documents)->Open(&varBodyFileName); /*变量m_BodyFilePathName为所需插入邮件体的word或者html文件所在的路径*/
pMainStory = pWordDoc->Content;
pMainStory->Copy();
pWordDoc->Close();
pWD->Quit();
pWordDoc = NULL;
pWD = NULL;
if((BOOL)(pInspector->IsWordMail())) /*检查是word格式还是html格式*/
{
pWordEditor = pInspector->WordEditor;
(pWordEditor->Content)->Paste();
}else
{
pHtmlEditor = pInspector->HTMLEditor;
pHtmlEditor->execCommand("Paste",VARIANT_FALSE);
}
pMail->Send();
}
以上简单的介绍了如何实现邮件体的发送,真正的邮件程序,还有许多其它的工作,在这不再详叙了,通过以上方法,可以实现多种格式邮件体的发送,本文给出了部分程序代码。
