十:使用其他对象开启CDO对象
可以使用datasource.openobject方法由其他记忆体中的对象打开CDO对象,而记忆体中的对象可以是其他CDO对象或是其他函数库的对象,比如ADO2.5
openobject方法的语法如下:
openobject(soure as Unknown, InterfaceName as String)
Source:被要打开的对象所参照的已打开对象,例如一个ado record或一个已开启的电子邮件,通常是一个对象变量
InterfaceName:source所公开的介面名称字串,例如,假使source是电子邮件的bodypart对象,则InterfaceName就是BodyPart,这个参数区分大小写。
为什么会使用该方法:
当我们已经使用recordset对象来浏览WEB存储系统的时候,可能使用Connection对象执行SQL查询来筛选所需要的项目,有或是批次的建立新项目,但是可能需要使用CDO来设定对象指定的属性,如果要修改使用openobject方法开启的CDO对象,需要使用DataSource.savetoobject方法将变更储存回parent对象,储存时传递openobject方法相同的参数给savetoobject方法。
检查文件夹或项目是否存在:
使用ADO record的open方法,打开欲检查的URL,若成功打开,说明此URL已经有相同的资源,若不能打开,则说明资源或项目不存在
十一:使用CDO建立文件夹
使用CDO建立新的文件夹的时候,要建立新的CDO Folder物件,然后设定您希望其运作方式的相关属性,假如知道你要设定文件夹保存特定形态的项目,便要设定ContentClass属性为其中一个事先定义的内容类别,若要文件夹也可以被MAPI的用户端所使用,则要设定http://schemas.microsoft.com/exchange/outlookfolderclass属性,假如有调用fields集合对象来设定属性,要先调用update方法,再使用saveto方法保存。
如果要删除一个文件夹或项目需要调用record的deletereocrd方法。
十二:使用文件夹接收电子邮件
当一个文件夹被建立时,预设并不能通过SMTP接受邮件,必须要明确地开启文件夹来接受电子邮件,CDO的IMailRecipient介面的MailEnable方法可以达到这个目的,exchange会自动指定一个电子邮件地址给文件夹.
如果在建立文件夹的同时就要开启文件夹接收电子邮件的功能的话,要先储存刚刚创建的文件夹,然后再调用MailEnable方法,如果使用已存在的文件夹,则不需要再将其存储一遍。
例程:
set fl=createobject(“cdo.folder”)
url=file://./backofficestorage/oaserver.exchange/
set rcp=fl.getinterface(“IMailRecipient”)
fl.datasource.save
set fl=nothing set rcp=nothing
计算文件夹中的内容:
使用ADO计算文件夹中的资源的时候,必须要浏览整个文件夹,这种方式忽视资源的内容是项目还是文件夹,而且当资源数量庞大时,会给服务器带来相当大的负荷
使用CDO可以避免程序中有不明确的状况发生,以及造成服务器负载过重,Folder对象提供三种计算文件夹内容的属性:
ItemCount:该属性计算文件夹中所有不包含子文件夹的项目的数量。
Unread ItemCount:该属性只计算未被标记为已读取的项目数量。
VisableCount:该属性只计算那些使用者可见并可存取的项目,忽略可能存储于文件夹中的系统隐藏项目。