CN1292358C - 含有用于识别mime类型及显示不同图标的方法和装置的增强电子邮件系统 - Google Patents

含有用于识别mime类型及显示不同图标的方法和装置的增强电子邮件系统 Download PDF

Info

Publication number
CN1292358C
CN1292358C CNB01814750XA CN01814750A CN1292358C CN 1292358 C CN1292358 C CN 1292358C CN B01814750X A CNB01814750X A CN B01814750XA CN 01814750 A CN01814750 A CN 01814750A CN 1292358 C CN1292358 C CN 1292358C
Authority
CN
China
Prior art keywords
icon
mentioned
message
type
typetable
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CNB01814750XA
Other languages
English (en)
Other versions
CN1449525A (zh
Inventor
M·巴克尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intellinet Inc
Original Assignee
Intellinet Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intellinet Inc filed Critical Intellinet Inc
Publication of CN1449525A publication Critical patent/CN1449525A/zh
Application granted granted Critical
Publication of CN1292358C publication Critical patent/CN1292358C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/107Computer-aided management of electronic mailing [e-mailing]

Abstract

电子邮件客户软件(16)具有邮箱显示窗口(14),该邮箱显示窗口列出消息连同每一个消息的图标,在此图标与消息的MIME类型相关联。在收件箱中列出含有文件附件(18)的邮件,且带有表明附加到邮件上的文件类型的图标。邮箱显示窗口对MIME类型进行解析,并且从OS的图标注册表中或从由电子邮件客户软件所维护的图标目录中选择合适的图标。如果在图标目录中没有合适的图标,那么如果MIME消息的子部分当中所包含的图标图像是可利用的话,则该邮箱显示窗口就使用它。否则,不使用图标或使用普通图标。根据目前优选的实施例,类型表(20)由类型更新器(12)组件来维护。该类型包括一列消息类型,以及连同由邮箱显示窗口使用的可缩放的图标文件名的子类型。

Description

含有用于识别MIME类型及显示不同图标 的方法和装置的增强电子邮件系统
本申请是序号为09/209162,申请日为1998年12月10日的申请的部分继续申请,其所公开的全部内容在通过引用结合在此。本申请同时与同共未决的序号为[BAK-007]的申请相关,其所公开的全部内容通过引用结合在此。
技术领域
本发明涉及电子邮件程序。本发明尤其涉及具有为邮件项目MIME类型(MIME types)的不同类型显示不同图标的邮箱浏览器显示区域的电子邮件程序。
背景技术
近年来,电子邮件(“email”)已经在商务、教育以及个人通信领域中广泛应用。特别是在商务和教育领域中,最为便利的电子邮件的特性之一就是,具备将二进制计算机文件附加到电子邮件消息上的能力。这种特性使电子邮件通信者能够快速地共享文字处理文档、数据库文档、电子表格文档、多媒体文档、或实际上由计算机生成的任何类型的二进制文件。然而,还存在某些与附加二进制文件到电子邮件消息上相关的严重限制和不便利之处。
原始的互联网邮件系统,以RFC(Request for Comments)821和822定义于1982年,其具有许多重要的限制。尤其是,系统未被设计用来在电子邮件消息中承载大量随机数据。实际上,1982年的SMTP(Simple Mail TransportProtocol)标准,要求电子邮件由单一消息组成,该单一消息仅包含1000个字符(32K的块)或更少字符的行的ASCII字符。
用于互联网消息的MIME(Multipurpose Intemet MailExtensions)标准,使通过互联网电子由附系统发送二进制数据的能力成为可能。原始的MIME标准作为一篇互联网Request For Comments公文(RFC 1341)被发表,并且于1992年6月批准通过。(参看最近的MIME标准公文的互联网RFCs 2045、2046和2047。)该MIME标准描述了电子邮件消息应该如何格式化以便于成为MIME所允许的。MIME定义了一套消息标题字段和一套消息编码标准,其被设计用来克服RFC822消息格式中的限制,以及被设计成可经由任何众多的在互联网上使用的传统邮件传输系统传输。(尤其参看,N.Freed和N.Borenstein, Multipurpose Intemet Mail Extensions(MIME)的第一部分:Format of Message Bodies,NetworkWorking Group,Request For Comments(RFC 2045)1996年11月。)MIME消息标题字段在RFC 822中扩展了那些定义,并且描述了电子邮件消息的内容及编码类型。在该MIME标准当中允许的编码方案包括“quoted-printable”,和“base64”。另外,还允许三种非编码数据类型。这些被标为“8bit”(8位)、“7bit”(7位)或“binary”(二进制)。应当注意到,传统的网关仍然无法处理二进制数据,并且几乎所有的MIME允许的消息将二进制数据编码为“7bit”,即MIME的默认编码。
而今,在所有主要的电子邮件客户或“User Agents”(用户代理商),例如Microsoft Outlook and Outlook Express、Netscape Communicator和Qualcomm Eudora上执行MIME。然而,只有少部分MIME类型包括有“text/plain”、“text/html”、“multipart/alternative”和“multipart/mixed”能够由这些程序来处理。或许该MIME标准的最重要特性就是,它允许适当地编码任何二进制数据,以及经由邮件网关及交换机的旧式SMTP系统来发送任何二进制数据。诸如那些上文所列出的邮件客户程序被作了修改,从而允许用户将任何文件类型附加到邮件消息上。这已通过以下方法完成(a)包括适当的编码模块用来将任意文件的二进制数据翻译成如“7bit”或“base64”的可接受MIME编码,(b)扩展邮件客户的能力以处理带有设为“multipart”的MIME类型的消息,以及(c)包括由用户指定的文件以作为“multipart”消息的一部分。很多年,邮件客户程序仅仅给用户提供两个选择;他们能够发送简单的文本消息(以“content-type=text/plain”发送)或者他们能够将任何文件附加到简单的文本消息上(以“content-type=multipart/mixed”发送)。
近些年来,上文所列出的程序已经被扩展到允许程序设计者,通过在邮件客户文本编辑器中包括这些特性以及通过发送被设为“text/html”的MIME类型消息,来使用诸如可选择字体和样式等文本格式的基本类型。现如今,Microsoft’s Outlook甚至在将Word文件人工的插入到预发送的邮件消息主体之前,通过将Word文件格式转换成HTML语言,从而允许用户使用全特性文本编辑器Word撰写电子邮件消息。然而,邮件客户程序仍然完全依赖于带有为任何其他文件格式类型而被设为“multipart”的消息MIME类型的文件附件。
如果带有附加的二进制文件的电子邮件的发送人和接收人正在使用相同类型或版本的电子邮件程序,且两种程序均以相同方式完全配置,那么该接收人的电子邮件程序应会自动将适当的解码过程应用到附加的二进制文件,并且应会产生与由发送人附加到电子邮件上的文件相等同的文件。然而,如果发送人和接收人正在使用不同的电子邮件程序,那么接收方可以接收必须由接收方使用独立的解码程序进行解码的文件。
甚至在文件被完全接收和解码之后,对于收件人而言打开文件通常也是困难的。收件人可能希望通过在文件图标上的“clicking”(点击)就可以打开该文件。然而,在文件图标上的点击经常无法打开文件。这会导致类似于“application not found”(应用程序未找到)等错误消息,更糟糕的情况下,会导致此文件被不适当的应用程序打开从而显示“gibberish”(乱码)。收件人必须具备能够读取(打开)此文件的程序。例如,如果某个人将电子表格附加到电子邮件消息上,则收件人必须具备电子表格程序以便于打开该文件。从技术上讲,收件人并非必须具备与创建该文件的程序一样的类型程序。然而,使用那些不是用来创建该文件的程序来打开该文件,虽然是可能,但会非常困难。收件人必须要知道附加到电子邮件消息上的文件是什么类型的文件,必须要知道他们计算机上的什么程序能够读取那种类型的文件,必须要运行该程序,必须要在该程序当中打开此文件,以及当程序翻译此文件时进行等待。
如果发送人和接收方没有使用相同的操作系统(OS),则互联网电子邮件的限制甚至可能变得更有阻碍。某些邮件附件的编码方案(以及文件压缩方案)是依赖操作系统的(OS-dependent),并且电子邮件接收方接收到不可能被解码(或解压缩)的文件是可能的。
电子邮件当中的这些限制使许多人特别是不具备专业技能的计算机用户,在将文件附加到电子邮件消息上时而气馁。实际上对于某些初学者用户来说,运行某一应用程序来创建文档、保存文档的任务,和运行独立的电子邮件应用程序以创建电子邮件消息的任务,以及接着将用作附件的已保存的文档定位到电子邮件消息的任务,都十分令人畏惧而令他们气馁。另外,初学者用户时常抱怨,在“downloading”(下载)附加到电子邮件消息上的文件之后,他们在其硬盘上找不到该文件。
大部分电子邮件客户软件允许用户在收件箱中按发送人、主题或日期将邮件项目排序,以便于更加容易地定位特定的邮件项目。此外,大部分电子邮件客户软件表明该特定消息是否包含有附加文件。例如,其可由诸如回形针图标、普通文档图标或软盘图标来表示。然而,不管附件的性质而使用相同的图标,且直到消息被打开时才能知道该附件的性质。现有技术图1示出一典型的电子邮件收件箱的实例,该收件箱中的某些邮件项目具有由位于主题名称左侧的回形针图标表明的附加文件。尽管没有在图1当中特别示出,但是本领域的技术人员会意识到,诸如!、a、 4等的普通图标也可以被显示于消息主题旁边以表明该消息的不同“properties”(属性),诸如是否其为高优先级的消息、是否你已回复了该消息等等。这些普通图标通常是从“dingbats”字体或其他类似字体中取出的单色字体字符。
在最近版本的主要电子邮件客户程序当中,代表所附加文件的文件类型的图标,在该消息被用户打开之后,被显示于邮件消息的主体部分。这很可能是由于诸如Microsoft Windows或Macintosh OS的计算机操作系统维护将信息与系统公知的每个文件类型相关联的数据。此信息包括图形图标,以及可用于在文件上“open”(打开)、“edit”(编辑)或执行其它少量动作的程序的位置。例如,在Microsoft Windows中系统注册表包括系统公知的每个文件类型的表项目,并且上文所描述的至少某些信息与该文件类型相关联。当用户以“content-type=multipart/mixed”打开电子邮件消息时,为MicrosoftWindows建立的邮件客户程序(例如,Microsoft Outlook)就确定该消息的第二部分为附加文件,识别该消息内文本的位置例如Attachment Converted:“c:\attach\aFile.doc”,为与该文件类型“.doc”相关联的图标查看系统注册表,并且在该消息主体内显示图形图标。
在目前的系统中,没有使用MIME类型来将图标关联到文件,而宁可使用文件类型的扩展名。这样,对于将不同软件版本或由不同软件版本创建的文档关联到不同图标上的能力,产生了重大限制。例如,由MS Word创建的所有文档,不管使用的是哪一个Word版本,都具有相同的文件类型(文件扩展名),且结果都与相同的图标相关联。即便是在许多更新版本的文件不能被旧版本的软件来读取的情况下也是成立的。
本申请人之前所结合的母案公开了电子邮件软件,其包括一主电子邮件组件以及许多可安装组件。该可安装组件包括用来创建/读取不同类型文档的认可/读组件,以及用来列出不同类型消息或用来在不同风格中列出消息的邮箱组件。该主电子邮件组件为直接与存储器相关联的函数以及电子邮件消息的传递提供基础的图形用户接口,并且还处理所有的捆绑或非捆绑数据,其中需要上述数据以将由认可/读组件创建的消息转换成MIME允许的消息。该认可/读组件像嵌入于电子邮件程序内的应用程序那样工作,并且允许从电子邮件程序内创建诸如电子表格、图形、数据库等特定类型的文档并直接以电子邮件发送。该认可/读组件也允许在没有传统上与附加二进制文件到电子邮件信函上相关的难点的情况下,读取所接收的文档。本发明的写组件把数据传递给将数据打包成MIME允许的消息的主电子邮件组件。当消息被接收时,主电子邮件组件将MIME消息连接在一起(如需要的话)且进行解码,并且将数据发送到与MIME类型相关联的认可/读组件当中。
本申请人之前所结合的母案概括地公开并要求保护了邮箱处理软件,由此在模块化组件电子邮件软件的上下文范围内,在邮箱列表中以不同方式显示不同类型的消息。
有理由相信在本申请人的母案中所公开的某些特性,可应用于任何电子邮件客户软件,并且可以用于提高将文件附加到电子邮件上以及使用附加于电子邮件的文件的处理能力。
发明内容
因此本发明的目的就是给电子邮件程序提供不同类型的图标,其中该电子邮件程序包括收件箱列表,借以显示不同类型的消息和附加文档。
将于下文详细讨论的合乎此目的的根据本发明的电子邮件客户软件,具有一邮箱显示窗口,它列出消息连同用于每一个消息的图标,在此图标关联于此消息的MIME类型。含有文件附件的邮件被列于该收件箱中,且带有表明附加到电子邮件上的文件类型的图标。邮箱显示窗口对MIME类型进行解析,并且或者从操作系统的图标注册表中、或者从由电子邮件客户软件维护的图标目录中选择适当的图标。例如,如果接收到带有ADOBE ACROBAT文件附件的电子邮件,则ADOBE ACROBAT图标将会出现在邮箱列表中的邮件项目列表旁边。另外,如果用如在本申请人的母案中描述的特定的认可/读组件创建消息,则与该认可/读组件相关联的图标将会显示于邮箱列表当中作为显示邮件项目的行的一部分。
根据本发明的电子邮件客户装置,包括:
a)显示设备;
b)邮箱显示窗口,用于在该显示设备上以可滚动列表的方式显示邮箱的内容,其中每个邮件项目被列表且带有多个属性,上述属性从包括主题、发送人姓名和发送日期的组中选出;以及
c)关联器,用于将多个mime类型与多个图标图像相关联,其特征在于:
上述邮箱显示窗口包括用于确定邮箱中邮件的至少某些项目的mime类型的装置,用于读上述关联器的装置,以及用于在可滚动的列表中显示图标图像的装置,所述图标图像作为与上述邮件的至少某些项目中每一个项目相关联的属性,上述邮件的至少某些项目中每一个项目的上述图标图像是根据上述邮件的至少某些项目中每一个项目的mime类型从上述关联器中选出的。
根据本发明的在显示设备上显示电子邮件箱中内容列表的方法,包括:
a)用以在显示设备上以可滚动列表的方式显示邮箱的内容的显示步骤,其中每个邮件项目被列出且带有多个属性,上述属性从包括主题、发送人姓名和发送日期的组中选出;
b)用以确定邮箱当中邮件的至少某些项目的mime类型的步骤;
c)其特征在于,所述显示步骤包括这样的步骤:在可滚动列表中显示图标图像,所述图标图像作为与上述邮件的至少某些项目中每一个项目相关联的属性,上述邮件的至少某些项目中每一个项目的上述图标图像是根据上述邮件的至少某些项目中每一个项目的mime类型选出的。
本发明的电子邮件软件已通过参考在本申请人的母案中的电子邮件软件的例子作出了描述,其中该电子邮件软件包括一主电子邮件组件,以及许多个经由应用程序设计接口(API)与电子邮件组件进行双向通信的可安装组件。该可安装组件包括认可/读组件以及邮箱显示窗口组件。根据目前优选实施例,还包括一用于维护图标数据库的组件。
当邮箱被打开、邮件的列表被滚动等时侯,该邮箱显示窗口组件的功能被用户调用。邮箱显示窗口组件最好包括现有技术中邮箱显示窗口的所有功能,以及包括为了基于消息的MIME类型显示消息相关信息而查看图标目录的功能。在Lingo实施例当中,为每个带有以消息的MIME类型和子类型为基础的附加TYPE字段的消息创建数据结构。内部TYPE字段用于将MIME类型关联到图标。另一个实施例,直接使用消息的“content-type”(MIME类型)标题的内容来与图标图像相关联。如果在图标目录中没有合适的图标,那么如果包含于MIME消息当中子部分的图标图像数据是可利用的话,则邮箱显示窗口就使用它。否则,不使用图标或使用普通图标。根据目前优选实施例,类型表由类型更新器组件来维护。该类型表包括一列消息类型和子类型,连同将由邮箱显示窗口使用的可缩放的图标的文件名。本发明优选可缩放的图标,以便于该图标能随着用以显示邮箱内容的所选字体的大小来进行调整。
提供了类型更新器组件的几个实施例。根据第一实施例,图标由用户人工地进行安装/移除。根据第二实施例,当模块化的认可/读组件被安装/移除时,图标被自动地安装/移除。根据第三实施例,只要邮箱显示窗口遇到新的消息类型,就会自动添加新图标。新图标或者从操作系统注册表中检索,或者从消息中嵌入的图标图像数据中检索。根据第四实施例,类型更新器为新图标信息自动查询网络服务器,并且如需要的话下载图标图像数据。
对于本领域的技术人员来说,参照详细的说明书述并结合提供的附图,将更加清楚本发明的其他目的和有益效果。
附图说明
图1是现有技术的电子邮箱显示窗口屏幕;
图2是根据本发明的电子邮箱显示窗口屏幕;
图2a是根据本发明可选实施例的电子邮箱显示窗口屏幕;
图3是根据本发明的电子邮件客户的组成结构方块图;
图4是举例说明根据本发明的邮箱显示窗口的基本操作的简化流程图;
图5是举例说明根据本发明可选实施例的邮箱显示窗口的基本操作的简化流程图;
图6是举例说明用于不同邮件项目特性的图标查找的简化流程图;
图6a是举例说明用于MIME类型的图标查找的简化流程图;
图6b是举例说明用于附件filetype(文件类型)的图标查找的简化流程图;
图7是举例说明类型更新器组件的一个实施例的initialize_TypeTable函数的简化流程图;
图8是举例说明类型更新器组件的一个实施例的read_TypeTable_file函数的简化流程图;
图9是举例说明类型更新器组件的一个实施例的write_TypeTable_file函数的简化流程图;
图10是举例说明类型更新器组件的一个实施例的read_icon_files_to_RAM函数的简化流程图;以及
图11是举例说明类型更新器组件的一个实施例的install_Type函数的简化流程图;
附录简要说明
附录A是根据本发明的邮箱显示窗口的MACROMFDIA DIRECTOR程序清单;以及
附录B是根据本发明的类型更新器的MACROMEDIA DIRECTOR程序清单。
具体实施方式
现参照图2,根据本发明的电子邮件客户软件具有邮箱显示窗口,其列出消息连同每一个消息的图标,其中图标与该消息的MIME类型相关联。包含文件附件的邮件,和表示附加到该电子邮件上的文件类型的图标一起在收件箱当中列出。例如,如图2所示,标题为“Minutes of Meeting”的邮件消息被列出且带有一MICROSOFT WORD图标,其表示该电子邮件消息具有附加于其上的WORD文件。标题为“NewRadio Ad”的消息被列出且带有一QUICKTIME WAV图标,其表示在该电子邮件上附加了一音频文件。标题为“New Ad Brochure”的消息具有由ACROBAT图标表示的附加ADOBE ACROBAT文件。同样地,消息“Sales Forecast”被显示且带有一EXCEL电子表格图标;“CustomerDatabase”消息被显示且带有一FILEMAKER PRO数据库图标;以及消息“YearEnd Accounting”被显示且带有一QUICKEN图标。根据本发明,该邮箱显示窗口解释消息的MIME类型和/或附件的MIME类型或文件类型,若有的话,从OS(操作系统)的图标注册表中选择适当图标,或者从由电子邮件客户软件所维护的图标目录中进行选择。
通过之前结合的本申请人的母案中关于该电子邮件软件的举例来描述本发明的电子邮件软件,其包括一主电子邮件组件以及许多可安装组件,经由应用程序设计接口(API)与该电子邮件组件进行双向通信。可安装组件既包括认可/读组件还包括至少一个邮箱显示窗口组件。图2a举例说明了之前结合的本申请人的母案中的电子邮件软件的一个实施例,其中对表示与邮件消息相关联的认可/读组件的图标进行显示。该实施例还可以从现有技术的电子邮件客户那里接收电子邮件(或发送电子邮件到其上)。图2a举例说明了一邮箱列表,其中的两个邮件项目被示为带有两个图标,也就是回形针和ACROBAT图标以及回形针和PHOTOSHOP图标。该双图标的显示表明该邮件被创建且不带有任何特定的认可/读组件,并且具有由某些其它程序创建的附件,在此例中为ACROBAT和PHOTOSHOP。
如上面所提到的,通过之前结合的本申请人的母案中关于该电子邮件软件的举例来描述本发明的电子邮件软件,其包括主电子邮件组件以及许多可安装组件。根据目前优选的施例,还包括用于维护图标数据库的组件。图3举例说明了这些组件之间的连接关系。
如图3所示,被称为TYPETABLE的数据结构10由被称为TYPE_UPDATER的组件12创建并进行维护。在附录B中举例说明了根据本发明的TYPE_UPDATER的工作实例,此附录B在下文被更加详细地描述。该TYPETABLE的主要目的就是将由MBOX_DISPLAYER组件14来读取。该TYPE_UPDATER 12和MBOX_DISPLAYER14利用函数调用及共享数据结构TYPETABLE在相互之间进行通信。例如,该MBOX_DISPLAYER包括对TYPE_UPDATER组件内部的函数“initialize TYPETABLE”(306,图6a)的调用。该MBOX_DISPLAYER利用在本申请人的母案以及或利用之前结合的序号为[BAK-007]的申请中所描述的API,与电子邮件客户软件进行通信。如图3所示,MBOX_DISPLAYER组件14和电子邮件客户软件16还具有双向访问用户邮件箱中电子邮件消息存储库的功能。根据目前优选的实施例,如果消息是由本申请人的母案中描述的那种可安装的应用程序组件创建的话,那么该电子邮件消息就以一可选TYPE字段的方式被存储,其中可选TYPE字段包括从MIME类型中以及消息的子类型标题字段中提取的信息。
当邮箱被打开、邮件列表被滚动等时侯,该MBOX_DISPLAYER组件的功能被用户调用。本领域的技术人员将意识到,大多数电子邮件客户软件会提供许多不同的邮箱,诸如收件箱、发件箱、读邮件、发邮件等。MBOX_DISPIAYER组件14最好包括现有技术中邮箱显示窗口的所有功能,并且还包括查看TYPETABLE的功能(以及如下文更详细解释的那样,以浏览MIME消息的主体)从而为邮箱显示区域中消息标题旁边的显示区域查找适当的图标。根目前优选的实施例,图标作为小型图像文件来存储,例如EPS文件或GIF文件,并且通过TYPETABLE数据结构被指向。为了调节邮箱显示区域当中不同大小的字体的使用,还提供了用于缩放图标图形大小的装置。可以使用三种方法。第一,可以利用标准内插算法来缩放该图像。第二,可以存储及检索带有不同分辨率的图标图像的多重拷贝,从而匹配字体磅值大小的限定值。第三,且目前所优选的方法,借以使用该第一、二两种方法的结合,为每个图标至少存储一幅图像,选择与该字体磅值大小最相匹配的图标,并作为需要来接着缩放以更加匹配的字体磅值大小。
表1举例说明如何将TYPETABLE数据存储于永久性存储器(例如,硬盘)当中。
  mime类型   图标文件名   Msg处理程序文件名
  text/plain   c:kidcodetext.gif   c:kidcodetxt.dxr
  x-apphcation/rebus   c:kidcoderebus.gif   c:kidcoderebus.dxr
  x-application/grid   c:kidcodegrid.gif   c:kidcodegrid.dxr
  x-application/graph   c:kidcodegraph.gif   c:kidcodegrph.dxr
  …   …   …
  multipart/mixed   c:kidcodepaperclip.gif
表1
表1举例说明了至少五种mime类型。前四个是用于认可/读的可安装组件的mime类型。该可安装组件由“.dxr”文件扩展名表示。在表1当中举例说明的multipart/mixed(第五种)mime类型表明与其利用可安装组件,倒不如利用外部应用程序来创建附件。如上文参考图2a所指出的,普通回形针图标用于将附件与利用可安装组件创建的邮件消息相区分。
表2举例说明当载入RAM中时的类型表(typetable)数据结构。
  mime类型  ptr   图标文件名   msg处理程序文件名
  text/plain  20   c:kidcodetext.gif   c:kidcodetxt.dxr
  x-application/rebus  21   c:kidcoderebus.gif   c:kidcoderebus.dxr
  x-application/grid   22   c:kidcodegrid.gif   c:kidcodegrid.dxr
  x-application/graph   23   c:kidcodegraph.gif   c:kidcodegrph.dxr
  …   …   …
  multipart/mixed   19   c:kidcodepaperclip.gif
表2
当数据结构TYPETABLE被载入到RAM当中,其被称为SG_TYPETABLE,并且具有如表2所示的结构。这种结构包括指向图标的指针。该指针在示范性实施例中是一LINGO指定成员(castmember)指针。
如上文指出的,根据该示范性实施例,当电子邮件消息具有附加文件时,会显示一普通附件图标以及显示一该附件所特带的图标。由RAM中创建于程序分支(fly)(例如,如图6b所示)上的称为SG_ATTACH_TYPETABLE的数据结构来指向这第二个图标。该SG_ATTACH_TYPETABLE的基本结构在表3当中举例说明。
  文件扩展名   图标指针   程序文件名
  .doc   30   c:programswinword.exe
  .pdf   31   c:programsacrobat.exe
  .html   32   c:programsnetscape.exe
  .htm   32   c:programsnetscape.exe
  .xml   32   c:programsnetscape.exe
  …   …   …
表3
如表3所示,文件扩展名与图标指针及程序路径名相关联,其中该程序用于读取附件。参照图6b在下文将更加详细的讨论,该SG_ATTACH_TYPETABLE利用来自于系统注册表内的图标构造于程序分支上。
MBOX_DISPLAYER组件的目前优选的实施例,将在附录A中详细的介绍,附录A类似于之前结合的本申请人的母案当中的附录B。示于此附录A中的代码清单,与本申请人的母案中起始于第287行的代码清单不同,该起始于第287行的代码是主邮箱显示函数的开始。该主邮箱显示函数也由图4中流程图解释说明,现参照图4和附录A,该函数起始于附录A当中第287行且在图4的流程图中从START101开始。在显示邮箱内容之前,建立指向该TYPETABLE的指针以及相关联的系统特征,如附录A中第293-300行和图4中的103、105所示。不同的邮箱字段,例如消息号码、标题、日期、消息读取指示器,在附录A中第302-307行和图4中107被清除。将用于显示图标图形的“Sprite channels”(子图形通路)(MACROMEDIA图形保持器),在附录A中第309-311行和图4中107被清除。起始于附录A中第313行和在图4中109,下一个消息列表被显示。组成邮箱显示区域的每一行的单元(例如,消息标题、日期、发送人姓名,以及图形单元)被称作为“属性”。在附录A中第320326行和图4中111、113,这些属性可以从消息中读取。除邮箱、mime类型及状态之外,如图4中111和附录A中第320-323行所描述的那样当读取时,所有属性会自动被显示。在图4中的113和附录A中第324-326行,读取该邮箱、mime类型及状态属性。根据目前优选的实施例,mime类型的图标还用于显示消息状态。如果消息已经被读取,则图标以灰度来显示。如果消息未被读取,则图标以彩色来显示。查找图标以及将其设置成灰度或彩色的步骤,在附录A中第328-355行进行举例说明。在附录A中第332-334行和图4中115,设定子图形通路计数器。在附录A中第340-343行和图4中117,解析该TYPETABLE数据结构。如果该TYPETABLE没有包括用于这条消息的由mime类型表示的图标,那么就在附录A中第344-346行和图4中119选择一默认图标。如果消息的状态表明它(它的附件)已被读取,那么就在附录A中第348-349行和图4中121将图标设定成灰色色度样式。在滚动邮箱内容列表期间,为快速访问而将被选定的图标添加到图标列表当中。此内容在附录A中第351-352行和图4中123描述了。在附录A中第354-374行和图4中125的主邮箱显示区域函数之其余部分,涉及将文本及图标定位在适当的屏幕位置。如图4中127的判断结果所说明的那样,第315-374行所示的代码根据邮箱内消息的数量进行重复。当没有更多的消息将要列出时,如附录A中第376行和图4中129所示,该主邮件显示区域函数结束。
虽然在代码及流程图中目前没有描述,但是如上文所述,如果在图标目录当中没有合适的图标,那么若可能的话该邮箱显示窗口可以使用包含于MIME消息的子部分当中的图标图像数据。本领域技术人员将会意识到,通过从MIME文件中的位置读取图标图像数据很容易实现这种功能,其中该MIME文件由上文中参照的标准被定义。可以将执行此功能的代码插入到附录A中第325行或附录A中第345行。
如上文所述,附录A的剩余部分实质上与本申请人的母案中附录B的邮箱组件相同,并且其说明书已经在之前所结合的本申请人的母案当中作了充分阐述。本领域的技术人员将会意识到,附录中的代码清单为MACROMEDIADIRECTOR开发程序所特有,并且还会意识到可以利用不同的开发环境来实现相同的功能。图5举例说明了在更为一般的方式下邮箱显示窗口函数的功能,其能够应用于不同程序设计语言中。
现在参照图5,该邮箱显示区域起始于201以读取消息列表。在202进行检查以确定TYPETABLE是否已被初始化。如果尚未初始化,则在204初始化该TypeTable,其中204将参照图7在下文中更详细地描述。在203邮箱显示区域获取下一个消息列表。对于在203获得的消息列表,在205邮箱继续以获取此列表的属性,并且在207获取属性值。如果在209确定该属性使用图标来显示,则在211调用“get icon”程序(此程序已在图6中举例说明)。涉及本申请的消息属性是(a)消息的MIME类型和(b)是否消息带有文件附件。在图5的流程图中(209),该系统检查被作为诸如#type、#date、#mailbox、#status等LINGO符号来执行的当前消息属性是否由图标来代表。尽管在当前执行方式中,每个属性被分开编码,但是在图5的流程图当中描述的更为一般的实施方式,能够通过检查目标符号诸如#type是否为一列表数据结构中的某个单元,例如在图5中步骤209的Properties_with_Icons=(#type,#has_attachment)而实现。在213该图标被显示。在209如果确定属性不使用图标,那么在215显示该属性值。在217确定是否有此消息列表的附加属性。如果有,则程序返回到205。如果没有,则在219确定是否有更多消息列表将要列出。如果有,则程序返回到203。如果没有,则程序在221结束。
图6举例说明包含在附录A第328350行中的一般化功能。在图5中211是一般的“get Icon(获取图标)”程序调用。程序起始于301,通过调用程序被提供属性名和属性值。如果在303确定该属性为“mimetype(mime类型)”或遵照LINGO执行方式“#type”,那么在305获得该mime类型的图标,并且在307将该图标的指针返回给调用程序。为mime类型获取图标的实际步骤在图6a中描述。如果在309确定该属性为“has attachment”(带附件),则在311就会为“hasattachment”获得图标,并且在307将该图标的指针返回给调用程序。用于MicrosoftWindows平台的获取文件附件图标的程序流程已在图6b中描述。作为可选择的,该TYPETABLE数据结构可以包括用于从文件扩展名映射到MIMEtype及MIMEtype图标的filetype字段。如果以这种方法修改TYPEDATA,那么消息类型和文件类型的图标查找将都要使用该TYPETABLE。当遇到经由先前未知的消息类型或经由先前未知的文件类型时,需要在TYPE UPDATER中进行相关修改以用于安装filetype/MIMEtype组合。由于文件类型扩展名不像Minetype那么丰富,因此相同文件类型扩展名可能映射到许多不同MIME类型。例如,如果软件制造商为他们软件的不同版本分配不同的MIME子类型,那么上述情况可能会由于相同软件的不同版本问题而产生。
如果在313确定属性为“message read”(读消息),则在315获得“message read”的图标,并且在307将该图标的指针返回给调用程序。如果在317确定属性为“priority(优先级)”,则在319获得“priority”(优先级)的图标,并且在307将该图标的指针返回给调用程序。通过前述内容,本领域技术人员将会意识到,可以为不同属性显示多种不同图标。
图6a举例说明了包含在附录A第328-346行中的一般化执行方式。在图6中305是“get icon for mimetype”(为mime类型获取图标)函数调用。此程序起始于302,通过调用程序提供minetype。在304确定该TYPETABLE是否已被初始化。如果尚未初始化,则在306实现初始化。初始化程序可以驻留在TYPE_UPDATER组件当中,或者可以调用驻留于TYPE_UPDATER组件中的函数。例如,在LINGO执行方式中,函数Read_TypeTable_File(图8),其为该TYPE_UPDATER组件的一部分,被用于初始化TYPETABLE数据结构。在初始化之后,或者如果在306已确定该TYPETABLE已经被初始化,则在308使用mime类型从该TYPETABLE检索图标指针。参看附录A,第328-342行。在310确定图标指针是否为空(null)。如果是,在312调用“Install message type”(安装消息类型)程序。该“Install message type”程序,其包含于TYPE_UPDATER组件当中,在下文参照图11作了详细解释,该图11举例说明了新的消息处理器以及mimetypes图标的安装。如果该图标指针不为空,则在314确定该图标指针是否指向“Icon not Installed”(图标未安装)。如果属于这种情况,则在316将该图标指针设定为默认指针。在任何一种情况下,都在318将非空(non-null)指针返回给调用程序。
图6b举例说明为电子邮件消息的附件获取图标的示例性流程。起始于320,读取附件的文件扩展名。(注意在Windows平台上,文件名中“.”后面的三个字母确定了该“filetype”。对于其它平台,诸如Macintosh平台,该filetype和“creatorcode”(生成器代码)被罗列于文件的“resource fork”(资源派生指令)当中。因而,对于那些平台而言,第一步将是从文件的资源派生指令中读filetype(和creator code))。一旦filetype(或filetype和creator code)已被确定,在322程序就试图在SG_TYPETABLE中找到合适的图标。如果在324确定未找到合适的图标,那么在326程序就试图在SG_ATTACH_TYPETABLE中找到合适的图标。如果在328确定未找到合适的图标,那么在330和332程序就试图在系统注册表中找到合适的图标。(注意对于其他操作系统,图标资源可以被存储在不同的地方,例如,在Macintosh OS中图标可存储在不可见的“desktop”(桌面)文件当中。)如果在334找到了合适的图标,则在336设定指向该图标的指针,并且在338将此指针写入到SG_ATTACH_TYPETABLE中。在340将该图标的指针返回给邮箱显示窗口。参看图6中311和图5中211。如果在342没有找到合适的图标,则不提供图标指针。
现在返回到附录B,第1--26行提供了Type Updater(类型更新器)的全面概述和介绍。该Type Updater包括十一个函数。其中的三个是由该邮箱显示窗口调用的公共函数。这些函数包括:Initalize_TypeTable,Install_Type,以及Uninstall_Type。其余的八个函数是Type Updater中使用的专用函数。这些函数包括:Write_Typetable-file,Read_Typetable_File,Read_Icon_Files_To_RAM,read_iconFile,delete_mimetype,insert_mimetype,delete_filetype,insert_filetype。此Initialize_TypeTable函数已在图7中和附录B中第29-60行举例说明。在图7中函数起始于360,在362(附录B中第39行)将SG_TYPETABLE设定为零。在364将SG_ATTACH_TYPETABLE设定为零(附录B中第43行)。在366(附录B中第44行)将存储于磁盘上的Typetable(类型表)文件读入到该SG_TYPETABLE当中。此read_typetable_file内部函数已在图8中和附录B中第207-252行举例说明。在368(附录B中第46行)执行错误检验,以确定是否任何数据已被载入到RAM当中。如果没有数据被读取,在370(附录B中第47行)将对用户发出警告,并在372(附录B中第48行)返回失败。否则,在374(附录B中第51行)将图标文件读入到RAM当中。在376(附录B中第47行)执行错误检验。如果数据已被成功读取,则在378(附录B中第60行)函数结束。
现在回到图8及附录B中第207-252行,此read_typetable_file函数起始于380(附录B中第218行)。在382(附录B中第222行)将该SG_TYPETABLE设定为零。在384(附录B第224-227行)将typetable.txt文件打开,并在386(附录B中第229行)执行文件打开错误检验。如果检测到打开文件过程中的错误,则在388(和附录B中第230行)产生错误警告,在390(附录B中第231行)将文件关闭,并且在392(附录B中第232行)返回SG_TYPETABLE。如果打开文件未带错误,那么在391读取第一行,并在此开始一循环(步骤394-408),当到达文件末尾处时此循环最终在394结束,在此之后在390(附录B中第231行)关闭文件并在392(附录B中第232行)返回SG_TYPETABLE。如附录B中第235-239行所示,由于LINGO不能逐行读取,因而该LINGO执行方式将整个文件读入一字符串并模拟逐行读取。当需对行进行读取时,该行的第一个单词是mimetype(附录B中第243行)。在396(附录B中第244行)将该mimetype插入到SG_TYPETABLE当中。在398如果被发现没有定义该mimetype,则在400警告用户并且在391读取下一行。如果该mimetype已被定义,则读取该行中的下一个单词(filetype),并且在402(附录B中第245行)将其插入到SG_TYPETABLE当中。读取该行中的下一个单词(iconFileName),并且在404(附录B中第246行)将其插入到SG_TYPETABLE当中。读取该行的下一个单词(msgHandler),并且在406(附录B中第247行)将其插入到SG_TYPETABLE当中。在400报告于408中检测到的任何错误。如上文指出的,该步骤会继续直到该typetable.txt文件被完全读取。
在图9和附录B中第159-206行描述了函数Write_TypeTable_File。这个函数通过Install_Type函数在将新mimetype和图标添加到该SG_TYPETABLE之后,将SG_TYPETABLE的内容写回到typetable.txt中,其中该Install_Type函数在下文参照图11进行描述。该Write_TypeTable_File函数起始于410(附录B中第163行),并且在412(附录B第168行)第一次检验该SG_TYPETABLE结构是否为空。如果是空的,则在414(附录B中第169行)返回错误消息,且在416(附录B中第170行)返回失败消息。如果该SG_TYPETABLE结构不是空的,则在418(附录B中第173行)创建该typetable.txt文件的备份拷贝,并在420(附录B中第176-180行)创建新的空文件。在422(附录B中第181行)执行错误检验,并且如果在创建新文件的过程中检测到错误,则在424(附录B中第182行)返回错误消息。在426(附录B中第183行)恢复该备份文件,并在428(附录B中第184行)将返回码设定为“fail”(失败)。在430(附录B中第203行)关闭typetable.txt文件。在432(附录B中第204行)删除该备份,并且在434(附录B中第205-206行)返回此返回码。如果创建新文件时无错误,则在附录B中第187-188行将其打开用于写访问,并且在第191行设定一起始行计数器。在436(附录B中第192行)读取SG_TYPETABLE中的第一个(下一个)表项目。如果在438(附录B中第193行)确定已经达到SG_TYPETABLE的末尾,则在440(附录B中第201行)将该返回码设定为“success”(成功),在430关闭该文件,在432删除该备份并且在434返回此返回码。
直到到达SG_TYPETABLE的末尾,才在442将数据设定为写,以及才在446(附录B中第194行)将该mimetype写入字符串。在446、448、以及450(附录B中第195-197行)分别将filetype、iconfilename、以及messagehandlerfilename添加到该字符串当中。在452(附录B中第198行)将该字符串写入到新typetable.txt文件当中,并且在454(附录B中第199-200行)写入行分隔符。该函数循环到436并且继续执行,直到将SG_TYPETABLE中所有表项目都读取完并将其写入到新typetable.txt文件当中。
图10举例说明目前在附录B第255-290行中的函数Read_Icon_Files_To_RAM。在图10起始于456(附录B中第255行),该函数首先在458(附录B中第259行)确定是否任何一种mimetype都在结构SG_TYPETABLE当中被定义。如果一个都没有,未定义图标,则在460(附录B中第260行)返回错误消息,在462(附录B中第261行)将返回码设定为“fail”,并且在464(附录B中第261-262行)返回此返回码。如果该结构SG_TYPETABLE不为空,则在466(附录B中第265行)该函数将默认图标载入到RAM中并且设定指向该图标的指针。在附录B中第268行将图标指针数与LINGO castNumbers关联起来,并且在第270行为增加castNumbers设定计数器。在468(附录B中第271行)读取该结构SG_TYPETABLE中的第一个(下一个)表项目。如果在470(附录B中第272行)确定没有更多的表项目要读取,则在472设定返回码为“success”,并且在464(附录B中第288行)返回此返回码。只要还剩余表项目,就在474读取mimetype以及在476(附录B中第273行)为该mimetype读取iconfilename(图标文件名)。如果在478(附录B中第274行)确定没有与这种mimetype相关联的图标,那么在480(附录B中第275行)向该mimetype分配默认图标指针。否则,在482(附录B中第277行)利用函数read_iconfile(附录B中第295-298行)读取下一个图标位图和指针。如果在484(附录B中第278行)确定该图标指针不为零,则在第279行增加此castNum。否则不增加此castNum并且在480(附录B中第280行)使用该默认图标指针。在任意一种情况下,在486(附录B中第283行),与mimetype相关联的图标指针被插入。在第284行该计数器被增加,并且在E468(附录B中第285行)从SG_TYPETABLE当中读取下一个表项目。
图11举例说明了函数install_type,其用于为特定mimetype或filetype安装新图标和/或消息处理器。该函数起始于600且需要进行输入,其中输入包括图标文件名、消息处理器程序名,以及包括mimetype或包括filetype(附录B中第71-75行)。此输入可以由用户或如下文所述的自动装置来提供。在602(附录B中第78行)将此typetable文件读入RAM,从而创建SG_TYPETABLE。如果在604(附录B中第80行)确定SG_TYPETABLE为空,则在606(附录B中第81-82行)返回一错误。否则,若SG_TYPETABLE存在,则在608(附录B中第87行)从SG_TYPETABLE检索。在600中指定的mimetype(或filetype)如果该mimetype(或filetype)存在于SG_TYPETABLE中,并且如果已经将其与图标及消息处理器相关联,那么在612(附录B中第90行)提示用户是否此mimetype(或filetype)需要被重新定义。如果用户选择NO(否),则在614(附录B中第94行)返回—错误。如果此mimetype之前未被定义或者如果用户选择重新定义它,则在616(附录B中第102行)检测于600中指定的消息处理器程序的有效性(例如,是否其目前位于硬盘或网络上)。如果其无效,则在614(附录B中第104-105行)返回一错误。如果该消息处理器和此mimetype(filetype)是有效的,则在618(附录B中第108行)将他们在SG_TYPETABLE中互相之间建立相互关联。接下来,在620(附录B第110行)检测于600中指定的图标文件名的有效性。如果其无效,则在622(附录B中第112行)指定默认图标,并且在624(附录B中第111行)返回错误警告。在任意一种情况下,如果需要,则在626(附录B中第114行)将指定的图标文件名或默认图标关联于SG_TYPETABLE中的消息处理器和mimetype(filetype)。在628(附录B中第122-125行)将Typetable.txt文件从SG_TYPETABLE中写回,并且除非遇到错误,否则在630(附录B中第126行)返回success。
本领域的技术人员将会意识到,该install_type函数可以被其它程序所调用,以至于当安装/移除模块化认可/读(modular authoring/reading)组件时,图标可以自动被安装/移除。虽然此处并没有以代码或附图特别示出,但是本领域的技术人将会意识到,如何通过参照此处的附录B以及本申请人的母案的组件安装代码来执行此第二实施例。
根据第三实施例,该邮箱显示窗口只要遇到新的消息类型,就会自动添加新的图标。该新图标可从操作系统注册表检索,或者从嵌入于此消息中的图标图像数据检索。通过参照此处的附录B以及上文所涉及的MIME标准,本领域的技术人员将知道这个实施例的执行方式。
根据第四实施例,类型更新器为新的图标消息自动查询网络服务器,并且当需要时或有计划时下载图标图像数据。本领域的技术人员将会意识到,从文件服务器上下载数据的自动更新器是众所周知的,并且会意识到可以通过参考公知的自动更新器连同这里的附录B一起来执行此实施例。
在这里已经描述和举例说明了增强的电子邮件系统的几个实施例,其中该电子邮件系统包括了用于识别mime类型及显示不同图标的方法和装置。虽然已经描述了本发明的特定实施例,但是这并不意指本发明仅限于此,而是意指与该领域同样宽范围的以及与说明书中内容相类似的发明将会被允许。因此,虽然公开了特定的代码清单,但是可以认识到能够使用其他代码。例如,虽然附录举例说明了本发明利用MACROMEDIA DIRECTOR LINGO代码的情况,但此发明也能够用基于“MOZILLA”引擎,利用C++来实施,或通过其他许多流行的开发工具来实现。同时,虽然参考本申请人的母案来公开本发明,其中所述母案包含具有可安装的认可/读组件的电子邮件客户,但是将会认识到,此处所公开的用于显示在邮箱列表中代表mimetypes的图标之规则可以应用于其他类型的电子邮件客户。此外,虽然了参考存储图标图像的方法(即,缩放图像)公开特定配置,但是将会认识到,也能够使用其他配置。进一步而言,虽然本发明已经示出了涉及在计算机屏幕上进行显示,但是将会认识到,此显示也可以在电视上、在个人数字助理上、在蜂窝电话上、在腕式手表上等等。本领域的技术人员因此将会意识到,在不偏离本发明的实质和权利要求所限范围的情况下,仍然能够对所提供的发明作出其他的修改。
附录A-邮箱显示窗口代码-Page 1
1-MBOX_DISPLAYER IMPLEMENTATION

2--Code for a mailbox handler for the KidCode electronic mail client.

3-This Director MIAW displays a mailbox in a window as a list

4-of messages with one line for each message.Each message has the following fields displayed:

5-1.message number

6-2.Message sender

7-3.Message mimetype & status(single icon used to indicate both properties)

8-4.Message subject header

9-5.Message date

10

11

12 on startMovie

13        global SG_lastActiveWindow-super global that keeps track of KC last active window

14        global mbxG_username-cuttent user name

15        global mbxG_messags-list of messages

16        global mbxG_nMsgs-number of messages in mailbox

17        global mbxG_boxName-current mailbox name

18        global mbxG_whichLine-current hilite line=msgNumber

19        global mbxG_subtracyLine

20        global mbxG_lips

21

22        set mbxG_lips=0

23

24        -calledby API to Main Movie

25        tell the stage to emh_continue(#mailbox)

26 end

27

28

29 on activate Window

30        global SG_lastActiveWindow

31        global mbxG_my Window

32        set SG_lastActive Window=mbxG_my Window

33 end activate Window

34

35

36-Stop movie handlers

37-----------------------------------------------------------

38 StopMovie handler in a MLAW is called only when the movie

39-plays throug to the end or jumps to another movie.

40-It isn’t called when the window is closed or the window

41-is deleted by the forget window command.

42

43on stopMovie

44        cleanUpMovie()

45end

46--------------------------------------------------------

47called to close a MIAW or automatically whenever

48-forgetWindow is called

49

50on closeWindow

51        cleanUpMovie()
附录A-邮箱显示窗口代码-Page 2
53-------------------------------------------------------------------------------------------------------------

54

55-cleanUpMovie can be called by both stopMovie and

56-close Window.

57

58on clean UpMovie

59         global mbxG_whichLine

60         global mbxG_subtrachLine

61         global mbxG_nMsgs

62         global mbxG_username

63         global mbxG_lips

64

65         -CLEAR FIELDS AND GLDBAL VARIABLES

66

67         put“”into field“MailboxTitie”

68         put“”into field“prepositionTitle”

69         put“”into field“MessageNumber”

70         put“”into field“MailboxTo”

71         put“”into field“MailboxSubject”

72         put“”into field“MailboxDate”

73         put“”into field“Messagread”

74

75         set mbxG_nMsgs=()

76         set mbxG_lips=()

77         resetHilite()

78

79         if findEmpty(member50)>50then.

80                 set the script Text of member 50=“”

81         end if

82

83         set the memberNum of sprite 6=the memberNum of member“lips up”

84         set the loc of sprite 4 to point(800,4)

85         set the loc of sprite 5=point(800,19)

86end clean UpMovie

87

88

89-API Public Handlers-----------------------------------------------------------

90-

91-Ugly hack to work around problem with Director startup

92-of MIAWs.The problem is that,after calling a handler in the

93-MIAW,the StartMovie handler for the MIAW does not run until

94--the calling movie advances to its next frame.

95-Therefore,the calling sequence in the calling movie

96-has to be engineered so that the real hanlers in the MIAW do not

97-run until after control has been transfered back to the calling

98-movie However at least one handler in the MIAW must be called

99-by the calling movie before the StartMovie handler will run.

100

101-startMeUp is the fake handler thay,when called by the

102-main movie,will upon return to the main movie
附录A-邮箱显示窗口代码-Page 3
103-cause this movie’s startMovie handler to run.

104

105-The second part of this wormy hack is contained in the MIAW’s

106-startMovie handler...It is a call to a workAround handler in

107-the calling movie called continueComponent

108-The calling movie’s continueRebus handler calls the real handlers

109-in the MIAW.

110

111on emc startMeUp

112         -put“Macromedia sucks!”

113         return(TRUE)

114end emc_starMeUp

115

116--------------------------------------------------------------------------------------------------------------------------

117initWindow is called by email main when a message handler

118-is opened

119

120on emc_initWindow userName,windowName

121         global mbxG_myWindow

122         global mbxG_username

123         global mbxG_platformType

124

125-put“ENTER emc_initWindow mailbox”

126         set mbxG_username=userName

127         set mbxG_myWindow=windowName

128

129         -puppet the hilite(MB4-17-99)removed this

130         resetHilite()

131         tell the stage to emh_getColor Depth()

132         set colorDepth=the result

133         mapColors(colorDepth)

134         tell the stage to emh_getPlatform Type()

135         set mbxG_platformType=the result

136

137-put“EXTT emc_initWindow mailbox”

138

139         return(TRUE)

140

141end emc initWindow

142

143---------------------------------------------------------------------------------------------------------------

144-close Window is not called unless Rebus plays as

145-a MIAW.

146

147on emc_closeWindow

148-put“ENTER emc_closeWindow Mailbox”

149         closeWindow()

150         -step frame

151-put“EXTT emc_close Window Mailbox”

152     return(TRUE)

153
附录A-邮箱显示窗口代码-Page 4
154end emc_closeWindow

155

156-------------------------------------------------------------------------------

157

158 on emc_getComponentInfo

159       retum(list(“SimpleMail”,l,#mailbox,“text”))

160end emc_getComponentInfo

161

162--------------------------------------------------------------------

163

164on mbx_getMessage

165-

166--“open”button and doubleClick of highlighted message

167--calls to email main to hand the message

168--selected to a message handling movie

169--This script was previously the“open”cast memeber script:

170-

171-global mbxG_whichLine

172-globl mbxG_messages

173-

174-set maiIData=getAt(mbxG_messages,mbxG_whichLine)

175-

176-return(maiIData)

177-

178-

179-

180--end mbx_getMessage

181

182----------------------------------------------------------------------------------

183

184on mbx_getMessageNumber

185       global mbxG_whichLine

186       return(mbxG_whichLine)

187end mbx_getMessageNumber

188

189---------------------------------------------------------------------------

190-mbx_trashMessages returns a list of messages that are to

191-be trashed in the mailfile.Email main will rewrite the mail file

192-When implemented correctly,it will determine which message numbers

193-are associated with the currently selected lines in the mailbox

194-display,update the display to remove these messages from the

195-list,and return the list of deleted message numbers.

196

197on mbx_trashMessages

198

199       global mbxG_messages-list of messages

200       global mbxG_nMsgs-number of messages in mailbox

201       global mbxG_whichLine-current hilite line=msgNumber

202

203       -set mailData=getAt(mbxG_messages,mbxG_whichLine)

204       -
附录A-邮箱显示窗口代码-Page 5
205       --tell the stage

206       -return(mailData)

207       --end tell

208

209       -needs implementation that can handle multiple messages

210       -also need to rewrite trashIt which does not conform to

211       -API rule that only API handlers can be called in other movies

212       -

213       -set message=mbxG_messages

214       if mbxG_whichLine>0AND mbxG whichLine<=mbxG_nMsgs then

215              tell the stage to emh_alentUserToTrash()

216              set yes=the result

217              if not yes then retum []--user canceled

218

219              set rashList=list(getAt(mbxG_messages,mbxG_whichLine))

220              deleteAt(mbxG_messages,mbxG_whichLine)

221              setmbxG_nMsgs=mbxG_nMsgs-1

222              displayMailbox(mbxG_messages)

223              resetHilite()

224       else

225              alert(“Please click on the message you wish to delete.”)

226              set trashList=[]

227       end if

228

229       return(trashlist)

230

231end mbx_trashMessages

232

233---------------------------------------------------------------------------------------------------------------------------

234-accepts a mailbox datastructure that consists of a boxname and

235-a list of meessages

236

237on mbx_openMailbox mailbox

238       global mbxG username

239       global mbxG_messages

240       global mbxG_boxName

241       global mbxG_nMsgs

242

243-put“ENTER mbx_openMailbox”

244       set mbxG_boxName=getAt(mailbox,1)

245       put mbxG_userName&s“&mbxG_boxName into field“mailboxTitle”

246

247       set mbxG_messages=getAt(mailbox,2)

248       set mbxG_nMsgs=count(mbxG_messages)

249

250       displayMailbox(mbxG_messages)

251

252-put“EXIT mbx_openMailbox”

253       return(TRUE)

254

255end mbx_openMailbox
附录A-邮箱显示窗口代码-Page 6
256

257-----------------------------------------------------------------------------------------------------------------

258

259Utilities-

260-----------------------------------------------------------

261Initialize formatting of text fields

262-Thanks to Frank Leahy for this one

263

264on SetTextInfo fldName,fldValue,fldAlign,fldFont,fldSize,fldStyle

265       if fldValue◇EMPTY then

266              put fldValue into field fldName

267       end if

268       set the textAlign of field fldName =fldAlign

269       set the textFont of field fldName=fldFont

270       set the textSize of field fldName=fldSize

271       se the textStyle of field fldName=fldStyle

272end

273

274-----------------------------------------------------------------------------------------

275on formatFields

276

277       -FORMAT THE TEXT FIELDS

278

279       setTextInfo“MessageNumber”,““,“left”,“arial”,14,“bold”

280       setTextInfo“MailboxTo”,““,“left”,“arial”,14,“bold”

281       setTextInfo“MailboxSubject”,““,“left”,“arial”,14,“bold”

282       setTextInfo“MailboxDate”,““,“letf”,“arial”,14,“bold”

283       setTextInfo“Messageread”,““,“left”,“arial”,14,“bold”

284

285end formatFields

286

287-MAIN MAILBOX DISPLAY FUNCTION

288-displays a Mailbox style listing of messages

289-places the appropriate components from each messagc

290-into field members with lines aligned for display

291

292on displayMailBox msgList

293       global SG_T YPETABLE-super global variable shared across different MIAWS

294       global mbxG_red

295       global mbxG_platformType

296       global mbxG_iconList

297

298       -mbxG_iconList for future use in up/down scroll scripts

299       set mbxG_iconList=[:]

300       set count=0

301

302       -first clear all the fields and the sprites

303       put“”into field“MessageNumber”

304       put“”into field“MailboxTo”

305       put“”into field“mailboxSubject”

306       put“”into field“mailboxDate”
附录A-邮箱显示窗口代码-Page 7
307       pul“”into field“Mcssageread”

308

309       repeat with i=40 to 70

310              set the member of sprite i=member“blank”

311       end repeat

312

313       -Fill the text fields with info from all of the messages so that it is available

314       -when the window scrolls

315       repeat with msg in msgList

316

317       -with the exception of mailbox,mimetype and status,

318       -the fields will automatically be displayed when filled

319

320       put the lineCount of member“MailboxTo”+I & RETURN after field“MessageNumber”

321       put getProp(msg,#from)&RETURN after field“MailboxTo”

322       put getProp(msg,#subject)&RETURN after field“mailboxSubject”

323       put getProp(msg,#date)&RETURN after field“mailboxDate”

324       put getProp(msg,#mailbox)into mailbox

325       put getProp(msg,#mimetype)into mime

326       put getProp(msg,#status)into status

327

328       -Display the mimetype icon

329       -We use the mimetype icon to also indicate message status.A greyscale version of the

33O       -icon is displayed if a message has been read.Otherwise a color icon is displayed.

331

332              -lcons will be ptaced in sprite channel 40 and beyond

333              seti=40+count

334              set count=count+1

335

336       -find the icon for the message mimetype

337       -this code should be rewritten using a data access function.For now we need to

338       --know the format of the TYPETABLE data structure

339

340              set mimeProperties=getProp(SG_TYPETABLE,mime)

341              set iconCastMember=getAt(mimeProperties,2)-second item is the cast member

342              number

343

344       -if thistype is unknown then use the default icon

345              ificonCastMember =0then seticonCastMember=the number of member

346              “DefaultIcon”

347

348       -get the greyscale version of the icon if the message has been read.

349              if status=“R”then set iconCastMember=iconCastMember+1

350

351       -add the icon to the list oficons used for scrolling the window

352              append(mbx_iconList,iconCastMember)

353

354       --placetheicon at the proper location for display

355              set the memberNum of sorite i to iconCastMember

356

357       -display the icon in the correct grid cell in the mallbox message list.
附录A-邮箱显示窗口代码-Page 8
358       -set the locH of all icons to 50

359       set wherc GoesIcon =the lineCountof member“MailboxTo”

360       puppetSprite i,TRUE

361       set the visible of sprite i=TRUE

362       set the locH of spnte i to 50

363

364       -precise placement of the icon next to it’s message...

365       set positonVar=105+linePosToLocV(member“Mailbox To,whereGoeslcon)

366       set the locV of sprite i to positon Var

367       -but don’t let icons fall go beyond window if there are many messages

368       if positon Var>550 or positon Var<105 then

369              set the visible of spritei=FALSE

370       clse

371              set the visible of sprite i=TRUE

372       end if

373       addProp mbxG_iconList,(the locV ofsprite i),mime

374       end repeat

375

376end displayMailbox

377

378-FUNCTIONS USED TO RESPOND TO USER INTER ACTION WTTH MAILBOX

379-HILITE MESSAGE is called when a user clicks a mouse on a message line

380

381on hiliteMessage whichLine

382       global mbxG_nMsgs,mbxG_whichLine,mbxG_subtractLine,mbxG_messages

383

384-KEEP TRACK OF SELECTED LLNE

385

386set mbxG whichLine=whichLine

387

388-MAKE SURE LINE IS VALID

389

390if mbxG whichLine<=0 then

391       retum(0)-do nothing,errors are caught elsewhere

392else if mbxG_whichLine>mbxG_nMsgs then

393       -user clicked somewhere else in field

394       set mbxG_whichLine=0-reset to 0

395       return(0)

396end if

397

398-HIGHLIGHT SELECTED LINE

399

400set whichHighlight=mbxG_whichLine+mbxG_subtractLine

401

402-since all field members in display are kept synchronized

403-any one will do for linePosToLocV

404-use“MailboxTo”,it’s small

405

406set the locV of Sprite 11 to

407       (99+linePosToLocV(member“MailboxTo”,whichHighlight)

408
附录A-邮箱显示窗口代码-Page 9
409-when the user double clicks on a hilited message,go get it from mailFile

410

411if the doubleClick then

412       set maildata=getAt(mbxG_mcssages,mbxG_whichLine)

413       tell the stage

414              emh_openMessage(maildata)

415       end tell

416       -mbx_geuMessagc()

417end if

418

419end hiliteMessage

420

421

422------------------------------------------------------------------------------------------------------------------

423on resetHilite

424       global mbxG_whichLine,mbx_subtractLine

425

426       set mbxG_whichLine=0

427       set mbxG_subtractLine=0

428

429       -SET HIGHLIGHT OFF STAGE

430       set the loc of sprite 11 to point(11,-20)

431

432end resetHilite

433-----------------------------------------------------------

434-this is a lookup table for color

435-only really necessary for Mac platform

436-use on any color that you wan to

437-set the forecolor of field

438

439on mapColor scolorDepth

440       global mbxG_red

441       global mbxG_blue

442       global mbxG_white

443       global mbxG_black

444

445       case colorDepth of

446

447              8:

448                     set mbxG_red=6

449                     set mbxG_blue=4

450                     srt mbxG_white=0

451              16:

452                     set mbxG_red=31744

453                     set mbxG_blue=31

454                     set mbxG_white=32767

455              32:

456                     set mbxG_red=16711680

457                     set mbxG_blue=255

458                     set mbxG_white=16777215

459
附录A-邮箱显示窗口代码-Page 10
460       end case

461

462       set mbxG_black=the forecolor of line 1 of member the member of spritc 4

463

464end mapColors

465

466---------------------------------------------------------------------------------------

467scripts run when the mouse is clicked on a mailoox message line.

468A scrip!is needed for each field in the message line.

469

470on mouse Up

471       hiliteMcssage(the clickon-40)

472end

473

474

475on mouseDown    

476

477       global mbxG_lips

478       set whichLine=the mouseLine

479       if mbxG_lips then

480              set astr =line whichline of field“MailboxTo”

481              speak(astr)

482       else

483              hiliteMessage(whichLine)

484       end if

485end

486

487on mouseDown

488

489       global mbxG_lips

490       set whichLine=the mouseLine

491       ifmbxG_lips then

492              set astr=line whichline of field“MailboxSubject”

493              speak(astr)

494       else

495              hillteMessage(whichLine)

496       end if

497end

498

499---------------------------------------------------------------------------------------------------------

500more scripts run when the mouse is clicked on a mailbox messageline

501

502on mouseDown

503       global mbxG_lips

504       setwhichLine=the mouseLine

505       if mbxG_lips then

506

507              set astr=line whichline of field“MallboxDate”

508              set aday=word 1 of astr

509              case aday of

510                     “Mon,”:put“Monday”into word I of astr
附录A-邮箱显示窗口代码-Page 11
511                     “Tue,”:put“Tuesday”into word 1 of astr

512                     “Wed”:put“Wednesday”into word 1 of astr

513                     “Thu”:put“Thursday”into word 1 of astr

514                     “Fri”:put“Friday”in toword 1 of astr

515                     “Sat”:put“Saturday”into word 1 of astr

516                     “Sun”:put“Sunday  into word 1 of astr

517                     otherwise

518              end case

519

520              speak(astr)

521       else

522              hiliteMessage(whichLine)

523       end if

524end

525

526on mouseDown

527       global mbxG_lips

528

529       set whichLine=the mouseLine

530       if mbxG_lips then

531              set astr=line whichline of field“MessageNumber”

532              speak(astr)

533       else

534              hiliteMessage(whichLine)

535       end if

536end

537

538

539-this script is attached to the message type icon which is displayed in the message line

540

541on mouseUp

542       set whichLine=the mouseLine

543       hiliteMessage(mouseLine)

544end

545

546-code for scroll buttons

547

548on mouseDown

549       global mbxG_whichLine

550       global mbxG_subtractLine

551       global mbxG_iconList

552

553       -SCROLL UP WITH HIGHLIGHT

554       -ICONS NOW SCROLL...HOWEVER,ICON SPRITE POSITION IS BASED ON

555       -MBXG_SUBTRACTUNE,NOT ON THE THE ACTUAL CORRESPONDINGLINE

556       NUMBER

557       -OF THE MESSAGE IN THE MAIL BOX WINDOW.

558

559       set numberOflconsVar =count(mbxG_iconList)

560       set lastIconPos=getPropAt(mbxG_iconList,count(mbxG_iconList))

561       if lasticonPos>=550 then
附录A-邮箱显示窗口代码-Page 12
562-              there are enough messages to make scroling nessisary

563              repeat while the mouseDown=TRUE

564

565              -oldSubtractLine gets set to mbxG subtractLine before mbxG_sub.gets

566              -incremented,This keeps the icons from falling one position behind

567              -it’s prospective message

568

569              set oldSubtractLine=mbxG_subtractLine

570              set mbxG_subtractLine=mbxG_subtractLinc+1

571

572              if mbxG_subtractLine>0then

573                     set mbxG_subtractLine=0

574              end if

575

576       -SCROLL ALL FIELDS TOGETHER

577

578       scrollByLine member“MessageNumber”,-1

579       scrollByLine member“MailboxTo”,-1

580       scrollByLine member“MailboxSubject”,-1

581       scrollByLine member“MailboxDat”,-1

582       scrollByLine member“mime”,-1

583       scrollByLine member“Messageread”,-1

584

585       set numberOflcons=the lineCount of member“MailboxTo”+40

586       setamountOfMail=the lineCount of member“MailboxTo”

587

588       -for debugging

589       -put“linecount:”& the lineCount of member“MailboxTo”

590       -put“subtractline:”& mbxG_subtractLine

591

592       repeat with i=40 to numberOflcons

593

594

595              -if the following 2 conditions are true,then scroll the icons

596              -i.e.if messages scroll,icons do too,if not then neither do icons.

597

598              if mbxG_subtractLine>=-amountOfMail+1 and oldSubtractLine<0then

599                     set the locV of sprite i=the locV of sprite i+15

600                     if the locV of spite i<105 then

601                            set the visible of sprite i=FALSE

602                     eise

603                            set the visible of sprite i=TRUE

604                     end if

605              else

606                     nothing

607              end if

608       end repeat

609

610       -MOVE HIGHLIGHT WTTH LINE,MOVING HIGHLIGHT

611       -OFF SCREEN WHEN LINE MOVES OFF SCREEN

612       set whichHighlight=mbxG_whichLine+mbxG_subtractLine
附录A-邮箱显示窗口代码-Page 13
613       if whichHighlight<=0 or whichHighlight>=22 then

614       set the loc of sprite 11 to point(11,-20)

615       else-set the locV of highlight to scroled message

616       set the locV of Sprite 11 to (99+linePosToLocV(member Mailbox T o,whichHighlight))

617       end if

618       updateStage

619       end repeat

620       end if

621end

622

623op mouseUp

624       set numberOflcons=the lineCount of member“MailboxTo”+40

625       repeat with i=40 to numberOflcons

626              if the locV of spritei>550or the locV of sprite i<105 then

627                     sethe visible of sprite i=FALSE

628              else

629                     set the visible of sprite i=TRUE

630              end if

631       end repeat

632end

633

634on mouseDown

635       global mbxG_whichLine

636       global mbxG_subtractLine

637       global mbxG_iconList

638

639

640       -AS MESSAGES ARE SCROLLED,ICONS NEED TO MOVE WTTH THE

641       MESSAGE,AND

642       THE MEMBERNUM

643       -OF ICON SPRITES BE ASSIGNED TO THE NEW MESSAGE THAT IS VISIBLE

644       AFTER

645       -BEING SCROLLED.

646       -CONS NOW SCROLL...HOWEVER,ICON SPRITE POSITION IS BASED ON

647       -MBXG_SUBTRACTLINE,NOT ON THE THE ACTUAL CORRESPONDING LINE

648       NUMBER

649       -OF THE MESSAGE IN THE MAILBOX WINDOW.

650       set numberOflconsVar=count(mbxG_iconList)

651       set lastIconPos=getPropAt(mbxG_iconList,count(mbxG_iconList))

652       if lastIconPos>=550 then

653              -there are enough messages to make scrolling nessisary

654              repeat while the mouseDown=TRUE

655                     scrollByLine member“MessageNumber”,1

656                     scrollByLine member“MailboxTo”,1

657                     scrollByLine member“MailboxSubject”,1

658                     scrollByLine member“MailboxDate”,1

659                     scrollByLine member“mime”,1

660                     scrollByLine member“Messageread”,1

661                     -GET NUMBER USED TO CORRECT FOR DISCREPANCY

662                     BETWEEN

663                     -THE MOUSELINE AND THE LINEPOS T OLOCV
附录A-邮箱显示窗口代码-Page 14
664                     -THE MOUSELINE GIVES LINE WITHIN FTELD TOTAL

665                     -THE LINEPOSTOLOCV USES LINE OF FIELD ON SCREEN

666                     set mbxG_subtractLine=mbxG_subtractLine-1

667                     set numberOficons=the lineCount of member“MailboxTo”+40

668                     set amountOfMail=the lineCount of member“MaiboxTo”

669                     -put“linecount.”& the lineCount of member“MailboxTo”

670                     -put“subtractline:”& mbxG_subtractLine

671                     repeat with i=40 to numberOflcons

672                            if mbxG_subtractLine>=-amountOfMail+1 then

673                                   set the locV of sprite i=the locV of spritei-15

674                                   if the locV of sprite i<105 then

675                                          set the visible of sprite i=FALSE

676                                   else

677                                          set the visibte of spritei=TRUE

678                                   end if

679                            else

680                                   nothing

681                            end if

682                     end repeat

683

684                     if mbxG_subtractLine<-amountOfMail+1 then

685                            set mbxG_subtractLine=-amountOfMail+1

686                     end if

687

688                     -MOVE HIGHLIGHT WITH LINE,MOVING HIGHLIGHT

689                     -OFF SCREEN WHEN LINE MOVES OFF SCREEN

690

691                     set whichHighlight=mbxG_whichLine+mbxG_subtractLine

692                     if whichHighlight<=0 or whichHighlight>=22 then

693                            set the loc of sprite 11 to point(11,-20)

694                     else

695                            set the locV of Sprite 11 to (99+linePosToLocV(member

696                            “MaiboxTo”,whichHighlight))

697                     end if

698                     updateStage

699              end repeat

700       end if

701end

702

703-

704

705on emc_indicateCheckingInternet

706       global mbxG_red

707       gdobal mbxG_blue

708       global mbxG_white

709       global mbxG_black

710

711       if the locH of sprite 4>600 then

712              set the loc of sprite 4=point(223,4)

713       end if

714       -if the locH of sprite 5>600 then

715       -set the loc of sprite 5=point(509,19)

716       end if
附录A-邮箱显示窗口代码-Page 15
717

718       set colorNow=the forecolor of line 1 of member the member of sprite 4

719

720       case colorNow of

721              mbxG_black:set colorNext=mbxG_blue-blue

722              mbxG_blue:set colorNext=mbxG_white-pink

723              mbxG_white:set colorNext=mbxG_red-red

724              mbxG_red:set colorNext=mbxG_blue-blue

725       end case

726

727       set the forecolor of line 1 of member the member of sprite 4 to colorNext

728       updateStage

729

730end emc_indicateCheckingIntemet

731

732on emc_endIndicateCheckingInternet

733       set the loc of sprite 4 to point(800,4)

734       set the loc of sprite 5=point(800,19)

735       cursor-1

736       updateStage

737end emc endIndicateCheckingIntemet

738

739-Scripts for the close window button

740

741on mouseDown

742

743       repeat while the stillDown

744              if inside(point(the mouseH,the mouseV),the rectof sprite the clickon)then

745                     if the name of member the member of sprite the clickon=“close Window”

746                     then

747                            set the member of sprite the clickon=“closeWindow_down”

748                            updateStage

749                     end if

750              else

751                     set the member of sprite the clickon=“closeWindow”

752                     updateStage

753              end if

754       end repeat

755       set the member of sprite the clickon=“close Window”

756       updateStage

757

758end mouseDown

759

760on mouseUp

761

762       -Close the window

763       if inside(point(the mouseH,the mouseV),the rect of sprite the clickon)then

764              -these next to lines are to try and speed up

765              -the disposal of the mailbox icons on close

766              -need to check this on slower machine.

767              hideMaillcons(the lineCount of member “MailboxTo” )
附录A-邮箱显示窗口代码-Page 16
768              go frame“stop

769              tell the stage to emh_killComponent(0,“”)

770              set success=the result

771              if success◇TRUE then

772                     alert(“error closing mailbox MLAW”)

773              end if

774       end if

775end

776

777on hideMaillcons numberOflcons

778       repeat with i=40 10 (40+numberOflcons )

779              set the visible of sprite i=FALSE

780       end repeat

781       updateStage

782end

783

784

785-script for the open button

786

787on mouseDown

788

789       repeat while the stillDown

790              if inside(point(the mouseH,the mouse V),the rect of sprite the clickon)then

791                     if the name of member the member of sprite the clickon=“open”then

792                            set the member of sprite the clickon=“open_down”

793                            updateStage

794                     end if

795              eise

796                     set the member of sprite the clickon=“open”

797                     updateStage

798              end if

799       end repeat

800       set the member of sprite the clickon=“open”

801       updateStage

802end mouseDown

803

804
附录A-邮箱显示窗口代码-Page 17
805on mouseUp

806

807       if inside(point(the mouseH,the mouseV ),the rect of sprite the clickon)then

808              global mbxG_whichLine,mbxG_messages

809              if mbxG_whichLine=0 then

810                     alert“Select a message by clicking with your mouse.”

811                     exit

812              end if

813              set maildata=getAt(mbxG_messages,mbxG_whichLine)

814              tell the stage

815                     emh_openMessage(maildata)

816              end tell

817       end if

818end
附录B-类型更新器代码-Page 1
1---TYPE_UPDATER IMPLEMENTATION

2----Code for a component that maintains message type informaton for the

3----KidCode electronic mail client

4----This Director MIAW mayes public functions available for calling by other components

5of KidCode

6

7---public functions

8---1.Initialize_TypeTable

9----2.Install_Type

10----3.Uninstall_Type

11

12

13

14-----private functions fifor internal use only

15-----1.Write Typetable_File

16-----2.Read_Typetable_File

17---3.Read_Icon_Files_To_RAM

18----4.read_iconFile

19----5.delete_mimetype

20----6.insert_mimetype

21----7.delete_filetyoe

22----8.insert_filetype

23

24

25---Filename for permanent storage version of TYPETABLE file

26---typetable,txt--default directory is the currentPath directory

27

28

29---INTTIALIZE_TYPETABLE initializes the data structures used to lookup Mime type

30icons,attachment filetype icons and message handler MIAWs.

31---The SG_Tvpetable is set up prior to itfs use.File attachment informationis not looked

32up until it is used when a message with an attached file is encountcred.

33

34on Initialize_TypeTable

35global SG_TYPETABLE    ---super global variable shared actross different MIA WS for

36Typetable

37global SG_ATTACH_TYPETABLE  ----maintains info for attachment filetvpes

38

39set SG TYPETABLE=[:]--initialize property list for mimetype information

40

41--initialize property list for filetvpe information

42--this list will be filled only as messages with attachments are encountered

43set SG_ATTACH_TYPETABLE=[:]

44set SG_TYPETABLE=Read_TvpeTable_File(the pathname&“typetable.txt ”)

45

46it count(SG_TYPETABLE)=0then  --failed to read tvpetable file

47   alert(“Error:Failed to read the file of MIMEtypes”)

48   return(0)

49end if

50

51set retVal=Read_Icon_Files_To_RAM()
附录B-类型更新器代码-Page 2
52

53if retVal=0 then

54   alert(“Erro:Failed to load MIME type icons.)

55   return(0)

56else

57   return(1)

58end if

59

60end  ---Initialize_TypeTable

61

62

63

64---INSTALL_TYPE is used to install a new MIME type into the system.

65INSTALL_TYPE takes as input a mimetype(string),a filename of the message handling

66movie,an fiename of the bitmap that contains the mimetype icon and,optionally,a file

67extension(string).The function adds the information associated with the MIME type

68(given by the function parameters)into the MIME type table recorded in permanent storage

69Here we use the file“typetable.txt” for permanent storage of the MIME type info

70

71on Install_Type mime ToInstall,msgHandler_filename,icon_filename,filetype

72global SG_TY PETABLE    ---information on all installed MIME types

73

74set DEFAULT_ICONFILE=“defaultIcon.bmp”

75set SG_TYPETABLE=[:]--initialize property list for mimetype information

76

77---read the existing MIME type information into RAM

78set SG_TYPETABLE=Read_TypeTable_File(the pathname&”typetable.txt”)

79

80if count(SG_TYPETABLE)=0 then  --failed to read typetable file

81   alert(“Error:Failed to read the file of MIMEtypes”)

82   return(0)

83end if

84

85---Check to see if mimetype is already installed

86

87set mimeProperties=get_mimetype(mime ToInstall)

88

89if mimeProperties◇0 then---mimetype is already installed  

90   set redefineAlert=baMsgBox(theMessage,“KidCode”,“YesNoCancel”,“Question”,1)

91

92--the alert function should not save the message,only do the alert

93case redefineAlert of

94   “No”:return0

95   “Cancel”:retumiil

96    otherwise:nothing--continue

97  end case

98end if

99

100---Define the new mimetype

101

102if verifyMessageHandler(msgHandler_fiename)=0 then--something wrong with
附录B-类型更新器代码-Page 3
103program file

104   alert(“Error:invalid message handler program”&& msgHandler_filename)

1015  return(0)

106end if

107

108insert_msgHandler(SG_TYPETABLE,mimeToInstall,msgHandler_filename)

109

110if verifyIconImage(icon_filename)=0 then  --something wrong with icon file

111   alert(“Error:invalid icon file”&&msgHandler_filename“,Using default icon.”)

112   insert iconFileName(SG_TYPETABLE,mimeToInstll,DEFAULT_ICONFILE)

113else

114   insert_iconFileName(SG_TYPETABLE,mimeToInstall,icon_filename)

115end if

116

117if filetype◇“”then

118   insert_fileytype(mimeToInstall,filetype)

119   writeTypeToRegistry(mimeToInstall,filetype)

120end if

121

122set rettVal=write_TypeTable_File()

123if retVal=0 then

124alert(“Error writing typetable to file”&& mimeToInstall&&”not installed”)

125return(0)

126else retur(1)

127

128end    --Install_Type

129

130

131-----UNINSTALL_TYPEremoves a mimetype and itfs properties from both the file and

132the global variable SG_TYPETABLE

133

134on unInstall_Type mimeType

135global SG_TYPETABLE    ---information on all installed MMEtypes

136

137set SG_TYPETABLE=[:]--initialize property list for mimetype information

138

139---read the existing MIME type information into RAM

140set SG_TYPETABLE=Read_TypeTable_File(the pathname&”typetable.txt”)

141

142if count(SG_TYPETABLE)=0 then  --failed to read typetable file

143   alert(“Error:Failed to read the file of MIMEtypes”)

144   return(0)

145end if

146

147delete_mimetype(mimeType)

148

149---write the revised typetable to the file

150set retVal=write  TypeTable File()

151if retVal=0 then

152alert(”Enror,”&&mimeToInstall&&”could not be uninstalled.Typetable file write

153error.”)
附录B-类型更新器代码-Page 4
154return(0)

155else return(1)

156

157end unInstall_Type

158

159---WRITE_TYPETABLE_FILE writes the information inSG_TYPETABLE to the

160typetable file on disk.This file stores properties associated with each mimetype.

161----SG_TYPETABLE is a property list that contalns a ust or mimetypes

162

163on Write_Typetable_File

164global SG_TYPETABLE    ---super global variable shared across different MIAWS

165set fileName =the pathname&“typetable.txt”

166set bkupFileName=the pathname&“typetable.bak”

167

168if count(SG_TYPETABLE)=0 then  --no mimetypes defined

169        alert(“Error,No mimetype data to write.)

170retun(0)

171end if

172

173---create backup for typetable file

174copyFile(filename,bkFileName)

175

176--startup Fileio Xtra

177set mFile=new(xtra“fileio”)

178

179set retVal=deleteFile(mFile,filenane)--delete old version before rewritirlg

180set retVal =createFile(mFile,filename)g

181ifretVal=0 then

182       alert(“Error updating tynetable file.”)

183       renameFile(bkFileName,filename)

184       retum(0)

185end if

186

187openFile(mFile,fileName,2)--open for write access

188setPosition(mFile,0)

189

190---write the data into the file

191set i=1

192set mimeType =getAt(SG_TYPETABLE,i)

193repeat while mimeType◇0

194       set dataToWrite=mimetype

195       out“”&get filetvoe(mimetvoe)into dataToWrite

196       put“”&get iconFileName(mimetvpe)into dataToWrite

197put“”&get_MsgHandler(mimetype)into dataToWrite

198writeline(mFile,dataToWrite)

199set i=i+1

200set mimeTyPe=getAt(SG_TYPETABLE,i)

201end repeat

202

203closeFilc(mFile)

204set retVal =deleteFile(mFile,bkFileName)--delete backup file
附录B-类型更新器代码-Page 5
205return(0)

206end Write_TypeTable_File

207---READ TYPETABLE FILE reads the typetable file

208----and creates a data structure in memory,SG_TYPETABLE

209---SG_TYPETABLE is a property list that contains a list of mimetypes

210

211When the function returns,the global property list data structure,SG_TYPETABLE,

212contains an entry for each mimetype,Along with the pathName for the message handling

213movie and the IconFile.Later the cast member number for the icon in RAM will be added

214to the datastructure,For now these are all set to 0,This data structure looks like,

215[“text/Dlain”:[“txt”.0.“C:\KidCode\text.gif”.“C:\KidCode\text.dxr”],”x-

216application/grid“:[“”,0,“C:\KidCode\grid.gif”,”C:\KidCode\grid.dxr”]]

217

218on Read_TypeTable_File

219global SG_TYPETABLE    ---super global variable shared across different MIAWS

220set fileName=the pathname&”typetable.txt”

221

222set SG_TYPETABLE=[:]--initialize porperty list for mimetypes

223

224--start up Fileio Xtra

225set mFile=new(xtra“fileio”)

226openFile(mFile,fileName,1)--open for read only access

227set status=status(mFile)

228

229if status◇0 then

230  alert(”Error,Could not open mimetype table:”&error(mFile,status))

231  closeFile(mFile)--just to be safy

232  return FALSE

233end if

234

235setPosition(mFile,0)

236

237--Lingo canft read one line at a time so simulate this bv reading the entire file into the

2385soing,str

239   set str=readFile(mFile)

240

241set nTypes =the number of lines in str

242   reoeat with i=1 to nTvpes

243       set mimetype=word l of line j

244       insert_mimetype(mimetype)

245       insert filetype(mimetvpe.word 2 of line i)

246       insert_iconFileName(mimetype,word 3of line j)

247       insert_msgHandler(mimetype,word 4 of line j)

248   end repeat

249

250   closeFile(mFile)

251

252end Read_TypeTable_File

253

254

255on Read_Icon_Files_To_RAM
附录B-类型更新器代码-Page 6
256global SG_TYPETABLE

257global SG_DEFAULT_lCON_PTR=1000

258

259if count(SG_TYPETABLE)=0 then  --no mimetypes defined

260        alert(“Error.No mimetype data.Canít load icons.)

261return(0)

262end if

263

264---load the default icon

265importFileInto(member SG_TDEFAULT_ICON_PTR,the pathname&”defaulticon,gif”)

266

267---cycle through the mimetypes loading icons

268set castNum=SG_DEFAULT_ICON__PTR+1--first icon immediately follows the

269default

270seti=1

271set mime Type=getAt(SG_TYPETABLE,i)

272repeat while mimeType◇O

273       set iconFile=get_iconFileName(SG_TYPETABLE,mimetype)

274       if icon=“”then---icon not defined use default

275              set iconPtr=SG_DEFAULT_ICON_PTR

276       else

277set iconPtr=read_IconFile(iconFile,castNum)

278if iconPir>0 then

279       set castNum=castNum+1

280else set iconPtr=SG_DEFAULT_ICON_PTR

281       end if

282

283       insert_iconPtr(mimetype,iconPtr)

284set i=i+1

285set mimeType =getAt(SG_TYPETABLE,i)

286end reoeat

287

288return(1)

289

290end Read_Icon_Files_To_RAM

291

292

293

294---READ_ICONFILEloads a single icon bitmap into RAM

295on read_IconFile filename,castMemberNum

296set retVal =importFilelnto(member castNurn,iconFile)

297return(retVal)

298end read_IconFile

299---Data Access Functions for MIMETYPE info

300---Data is stored in the property list SG_TYPETABLE with the following structure:

301---mimetype:properties

302---where mimetype is a string,e.g.“text/plain”

303---and properties is a list with the following elements:

304----[tiletype,iconPtr,iconFilenarme,msgHandler FBeName

305----e.gSG_TYPETABLE=

306----[“text/plain”:[“txt-,0,”C:\KidCode\textgtr“,”C:\KidCode\text.dxr”],
附录B-类型更新器代码-Page 7
307----“x-application/grid”:[“”,O,”C:\KidCode\grid.gif”,C:\KidCode\grid.dxr”]]

308

309on get_mimetype mimetype 

310global SG_TYPETABLE

311return(getProp(SG_TYPETABLE,mimetype))

312end

313

314on get_filetype mimetype

315global SG_TYPETABLE

316set theProperties=gemProp(SG_TYPETABLE,mimetype)

317rcturn(getAt(theProperties,1))

318end

319

320on get_iconPtr mimetype

321global SG_TYPETABLE

322set theProperties=getProp(SG_TYPETABLE,mimetype)

323return(getAt(theProperties,2))

324end

325

326on get_iconFileName mimetype

327global SG_TYPETABLE

328set theProperties=getProp(SG_TYPETABLE,mimetype)

329return(getAt(theProperties,3))

330end

331

332on get_msgHandler mimetype

333global SG_TYPETABLE  

334set theProperties=getProp(SG_TYPETABLE,mimetype)

335return(getAt(theProperties,4))

336end

337

338on insert_mimetype mimetype

339global SG_TYPETABLE 

340addProp(SG_TYPETABLE,mimetype)

341end

342

343on insert_filetype mimetype,filetype

344global SG_TYPETABLE

345set theProperties=getProp(SG_TYPETABLE,mimetyPe)

346       add(theProperties,filelype)

347       setProp(SG_TYPETABLE,mimetype,theProperties)

348end

349

350on insert_iconPtr mimetype,iconPtr

351global SG_TYPETABLE

352set theProperties=getProp(SG_TYPETABLE,mimetype)

353       add(theProperties,iconPtr)

354       setProp(SG_TYPETABLE,mimetype,theProperties)

355end

356

357on insert_iconFileName mimetype,iconFilename
附录B-类型更新器代码-Page 8
358global SG_TYPETABLE

359set theProperties=getprop(SG_TYPETABLE,mimetype)

360       add(theProperties,iconFilename)

361       setProp(SG_TYPETABLE,mimetype,theProperties)

362end

363

364on insert_msgHandler mimetype

365global SG_TYPETABLE

366set theProperties=getProp(SG_TYPETABLE,mimetype)

367       add(theProperties,msgHandler)

368       setProp(SG_TYPETABLE,mimetype,theProperties)

369end

370

371

372on delete_mimetype mimetype

373global SG_TYPETABLE

374deleteProp(SG_TYPETABLE,mimetype)

375end

376

377on delete_filetype mimetype

378global SG_TYPETABLE

379       setproperties=getProp(SG_TYPETABLE,mimetype)

380       setAt(properties,1,“”)

381setProp(SG_TYPETABLE,mimetype,properties)

382end    

383

384on delete_icon mimetype    

385global SG_TYPETABLE

386       set properties=getProp(SG_TYPETABLE,mimetype)

387       setAt(properties,2,0)

388setProp(SG_TYPETABLE,mimetype,properties)

389end

390

391on delete_iconFileName mimetype

392global SG_TYPETABLE

393       set properties=getProp(SG_TYPETABLE,mimetype)

394       setAt(properties,3,“”)

395setProp(SG_TYPETABLE,mimetype,properties)

396end

397

398on delete_msgHandler mimetype

399giobal SG_TYPETABLE    

400set properties=getProP(SG_TYPETABLE,mimetype)

401       setAt(properties,4,“”)

402       setProp(SG_TYPETABLE,mimetype,properties)

403end

Claims (17)

1.电子邮件客户装置,包括:
a)显示设备;
b)邮箱显示窗口,用于在该显示设备上以可滚动列表的方式显示邮箱的内容,其中每个邮件项目被列表且带有多个属性,上述属性从包括主题、发送人姓名和发送日期的组中选出;以及
c)关联器,用于将多个mime类型与多个图标图像相关联,其特征在于:
上述邮箱显示窗口包括用于确定邮箱中邮件的至少某些项目的mime类型的装置,用于读上述关联器的装置,以及用于在可滚动的列表中显示图标图像的装置,所述图标图像作为与上述邮件的至少某些项目中每一个项目相关联的属性,上述邮件的至少某些项目中每一个项目的上述图标图像是根据上述邮件的至少某些项目中每一个项目的mime类型从上述关联器中选出的。
2.根据权利要求1所述的电子邮件客户装置,进一步包括:
d)类型更新器装置,用于更新上述关联器从而包含附加的mime类型和附加的图标图像。
3.根据权利要求1所述的电子邮件客户装置,进一步包括:
d)多个图标图像,每个都具有文件名,其中
上述关联器是将至少某些mime类型中的每一个与图标图像文件名相关联的数据结构。
4.根据权利要求1所述的电子邮件客户装置,其中:
上述关联器包括用于将mime类型与程序相关联的装置,并且
其中某些mime类型不与图标图像相关联而与程序相关联。
5.根据权利要求2所述的电子邮件客户装置,其中:
上述类型更新器装置响应用户输入。
6.根据权利要求3所述的电子邮件客户装置,其中:
上述多个图像中的至少某些图像是可缩放的。
7.根据权利要求1所述的电子邮件客户装置,其中:
上述电子邮件客户装置被设计为与维护图标注册表的操作系统一同使用,并且
上述关联器将至少某些mime类型与从上述图标注册表当中选出的图标相关联。
8.根据权利要求1所述的电子邮件客户装置,进一步包括:
d)图标恢复装置,用于读取包含于电子邮件或电子邮件附件当中的图形图标信息,其中
如果没有找到其他图标,上述关联器则将mime类型与由上述图标恢复装置恢复的图标相关联。
9.根据权利要求2所述的电子邮件客户装置,其中:
上述类型更新器装置可由上述电子邮件客户装置的用户人工地进行操作。
10.根据权利要求2所述的电子邮件客户装置,其中:
上述类型更新器装置根据从包括下列事件的组中所选出的事件来自动安装新的图标图像,该组包括:
安装能够认可/读新mime类型的新应用程序或组件,
在接收的邮件消息中遇到新mime类型,以及
规律性计划的事件引发上述类型更新器装置为新图标检查服务器。
11.在显示设备上显示电子邮件箱中内容列表的方法,包括:
a)用以在显示设备上以可滚动列表的方式显示邮箱的内容的显示步骤,其中每个邮件项目被列出且带有多个属性,上述属性从包括主题、发送人姓名和发送日期的组中选出;
b)用以确定邮箱当中邮件的至少某些项目的mime类型的步骤;
c)其特征在于,所述显示步骤包括这样的步骤:在可滚动列表中显示图标图像,所述图标图像作为与上述邮件的至少某些项目中每一个项目相关联的属性,上述邮件的至少某些项目中每一个项目的上述图标图像是根据上述邮件的至少某些项目中每一个项目的mime类型选出的。
12.根据权利要求11所述的方法,进一步包括以下步骤:
d)将mime类型与程序相关联;
e)当mime类型的邮件项目被打开时,执行与mime类型相关联的程序。
13.根据权利要求11所述的方法,其中:
上述图标图像中的至少某些图标图像是可缩放的。
14.根据权利要求11所述的方法,其中:
上述显示步骤包括从图标的中央注册表中选出至少某些图标。
15.根据权利要求11所述的方法,其中:
上述显示步骤包括读取包含于电子邮件或电子邮件附件中的图形图标信息。
16.根据权利要求11所述的方法,进一步包括以下步骤:
d)当执行上述显示步骤时,为了使用而维护一图形图标的存储库。
17.根据权利要求16所述的方法,进一步包括以下步骤:
e)在上述图形图标的存储库中自动安装新的图标图像,以响应从包括下列事件的组中所选出的事件,该组包括:
安装能够认可/读新mime类型的新应用程序或组件,
在接收的邮件消息中遇到新mime类型,以及
规律性计划的事件引发上述类型更新器装置为新图标检查服务器。
CNB01814750XA 2000-06-27 2001-06-20 含有用于识别mime类型及显示不同图标的方法和装置的增强电子邮件系统 Expired - Fee Related CN1292358C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/604,426 2000-06-27
US09/604,426 US6546417B1 (en) 1998-12-10 2000-06-27 Enhanced electronic mail system including methods and apparatus for identifying mime types and for displaying different icons

Publications (2)

Publication Number Publication Date
CN1449525A CN1449525A (zh) 2003-10-15
CN1292358C true CN1292358C (zh) 2006-12-27

Family

ID=24419552

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB01814750XA Expired - Fee Related CN1292358C (zh) 2000-06-27 2001-06-20 含有用于识别mime类型及显示不同图标的方法和装置的增强电子邮件系统

Country Status (7)

Country Link
US (1) US6546417B1 (zh)
EP (1) EP1410220A1 (zh)
JP (1) JP2004502239A (zh)
CN (1) CN1292358C (zh)
AU (1) AU2001271493A1 (zh)
CA (1) CA2423407A1 (zh)
WO (1) WO2002001373A1 (zh)

Families Citing this family (135)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6282578B1 (en) * 1995-06-26 2001-08-28 Hitachi, Ltd. Execution management method of program on reception side of message in distributed processing system
US6952823B2 (en) * 1998-09-01 2005-10-04 Pkware, Inc. Software patch generator using compression techniques
US7444374B1 (en) * 1998-12-10 2008-10-28 Michelle Baker Electronic mail software with modular integrated authoring/reading software components including methods and apparatus for controlling the interactivity between mail authors and recipients
US20030023695A1 (en) * 1999-02-26 2003-01-30 Atabok Japan, Inc. Modifying an electronic mail system to produce a secure delivery system
US6318156B1 (en) * 1999-10-28 2001-11-20 Micro Motion, Inc. Multiphase flow measurement system
US6832245B1 (en) 1999-12-01 2004-12-14 At&T Corp. System and method for analyzing communications of user messages to rank users and contacts based on message content
JP2001318823A (ja) * 2000-02-28 2001-11-16 Kizna Corp クライアントサーバシステム及びこれを用いた通信方法
US20060143199A1 (en) * 2000-03-09 2006-06-29 Pkware, Inc. System and method for manipulating and managing computer archive files
US8959582B2 (en) 2000-03-09 2015-02-17 Pkware, Inc. System and method for manipulating and managing computer archive files
US20060173847A1 (en) * 2000-03-09 2006-08-03 Pkware, Inc. System and method for manipulating and managing computer archive files
US20050015608A1 (en) * 2003-07-16 2005-01-20 Pkware, Inc. Method for strongly encrypting .ZIP files
US20060143180A1 (en) * 2000-03-09 2006-06-29 Pkware, Inc. System and method for manipulating and managing computer archive files
US6879988B2 (en) * 2000-03-09 2005-04-12 Pkware System and method for manipulating and managing computer archive files
US20060143253A1 (en) * 2000-03-09 2006-06-29 Pkware, Inc. System and method for manipulating and managing computer archive files
US20060143249A1 (en) * 2000-03-09 2006-06-29 Pkware, Inc. System and method for manipulating and managing computer archive files
US20060143237A1 (en) * 2000-03-09 2006-06-29 Pkware, Inc. System and method for manipulating and managing computer archive files
US7844579B2 (en) * 2000-03-09 2010-11-30 Pkware, Inc. System and method for manipulating and managing computer archive files
US8230482B2 (en) 2000-03-09 2012-07-24 Pkware, Inc. System and method for manipulating and managing computer archive files
US7219302B1 (en) * 2000-07-19 2007-05-15 Everez Systems Limited System and method for organizing, managing, and manipulating desktop objects with an activity-oriented user interface
JP2002041404A (ja) * 2000-07-24 2002-02-08 Canon Inc 情報提供システム及び装置とその方法
JP4521943B2 (ja) * 2000-07-24 2010-08-11 キヤノン株式会社 情報提供装置及び情報提供方法、コンピュータ読み取り可能な記憶媒体
JP4416294B2 (ja) * 2000-08-30 2010-02-17 富士通株式会社 広告方法及びアウェアネスサーバ
US6895426B1 (en) * 2000-10-17 2005-05-17 Microsoft Corporation Addresses as objects for email messages
US20020091774A1 (en) * 2001-01-08 2002-07-11 Kokoro Imamura Method and system for retrieving electronic mail for a plurality of users over a single device
US7092992B1 (en) 2001-02-01 2006-08-15 Mailshell.Com, Inc. Web page filtering including substitution of user-entered email address
US20020163538A1 (en) * 2001-05-07 2002-11-07 Koninklijke Philips Electronics N.V. Electronic mail guide
US6993522B2 (en) * 2001-06-27 2006-01-31 Microsoft Corporation System and method for resolving conflicts detected during a synchronization session
US6826729B1 (en) * 2001-06-29 2004-11-30 Microsoft Corporation Gallery user interface controls
US7117210B2 (en) 2001-09-06 2006-10-03 Danger, Inc. System and method of distributing a file by email
US7774711B2 (en) 2001-09-28 2010-08-10 Aol Inc. Automatic categorization of entries in a contact list
JP2003141044A (ja) * 2001-11-06 2003-05-16 Nec Corp 携帯電話のメール検索方法ならびに携帯電話のメール検索プログラム
US7171621B1 (en) * 2001-11-30 2007-01-30 Compuware Corporation Reformatting messages introduced into a user interface
US20030140067A1 (en) * 2002-01-18 2003-07-24 Robert Sesek Systems and methods for sending documents
US8037137B2 (en) * 2002-04-04 2011-10-11 International Business Machines Corporation Method and system for efficient attachment of files to electronic mail messages
US7376702B2 (en) * 2002-05-02 2008-05-20 Danger, Inc. System and method for processing message attachments
US6788929B2 (en) * 2002-05-14 2004-09-07 Motorola, Inc. Email message confirmation by audio email tags
US8732249B2 (en) * 2002-05-29 2014-05-20 Verizon Services Corp. Providing an advisory to a user of a processing system
US7548952B2 (en) * 2002-05-31 2009-06-16 International Business Machines Corporation Method of sending an email to a plurality of recipients with selective treatment of attached files
KR100702105B1 (ko) * 2002-06-07 2007-04-02 샤프 가부시키가이샤 표시장치, 표시방법, 표시 프로그램, 및 표시 프로그램을기록한 기록매체
US8032597B2 (en) * 2002-09-18 2011-10-04 Advenix, Corp. Enhancement of e-mail client user interfaces and e-mail message formats
US9076147B2 (en) * 2002-09-18 2015-07-07 Advenix, Corp. Systems and methods for online marketing and advertising on e-mail systems
US7263688B2 (en) * 2002-09-23 2007-08-28 Realnetworks, Inc. Method and apparatus for dynamic data-type management
EP1556768A1 (en) * 2002-10-31 2005-07-27 Nokia Corporation A communication apparatus and a method of indicating receipt of an electronic message, and a server, a method and a computer progam product for providing a computerized icon ordering service
US7743102B1 (en) * 2002-11-15 2010-06-22 Stampede Technologies, Inc. System for selectively and automatically compressing and decompressing data and enabling compressed data to be rendered in a pseudo-native form
US7945674B2 (en) 2003-04-02 2011-05-17 Aol Inc. Degrees of separation for handling communications
US7263614B2 (en) 2002-12-31 2007-08-28 Aol Llc Implicit access for communications pathway
US7613776B1 (en) 2003-03-26 2009-11-03 Aol Llc Identifying and using identities deemed to be known to a user
US7430580B2 (en) * 2003-06-12 2008-09-30 International Business Machines Corporation Method and apparatus for adding recipients to sent email
US7086003B2 (en) * 2003-06-13 2006-08-01 International Business Machines Corporation Attaching multiple files to an electronic document
US9715678B2 (en) 2003-06-26 2017-07-25 Microsoft Technology Licensing, Llc Side-by-side shared calendars
US7444598B2 (en) 2003-06-30 2008-10-28 Microsoft Corporation Exploded views for providing rich regularized geometric transformations and interaction models on content for viewing, previewing, and interacting with documents, projects, and tasks
US20050005249A1 (en) * 2003-07-01 2005-01-06 Microsoft Corporation Combined content selection and display user interface
US7707255B2 (en) * 2003-07-01 2010-04-27 Microsoft Corporation Automatic grouping of electronic mail
US8799808B2 (en) 2003-07-01 2014-08-05 Microsoft Corporation Adaptive multi-line view user interface
US7716593B2 (en) * 2003-07-01 2010-05-11 Microsoft Corporation Conversation grouping of electronic mail records
JP3870176B2 (ja) * 2003-07-29 2007-01-17 キヤノン株式会社 情報処理方法及び装置
EP1661338A1 (en) 2003-08-12 2006-05-31 Research In Motion Limited System and method of secure message processing
US10437964B2 (en) 2003-10-24 2019-10-08 Microsoft Technology Licensing, Llc Programming interface for licensing
US7356772B2 (en) * 2003-11-25 2008-04-08 International Business Machines Corporation Multi-column user interface for managing on-line threaded conversations
US7590694B2 (en) * 2004-01-16 2009-09-15 Gozoom.Com, Inc. System for determining degrees of similarity in email message information
US8266218B2 (en) * 2004-02-12 2012-09-11 International Business Machines Corporation Automated electronic message filing system
US8898239B2 (en) 2004-03-05 2014-11-25 Aol Inc. Passively populating a participant list with known contacts
US7631044B2 (en) * 2004-03-09 2009-12-08 Gozoom.Com, Inc. Suppression of undesirable network messages
US8918466B2 (en) * 2004-03-09 2014-12-23 Tonny Yu System for email processing and analysis
US7644127B2 (en) * 2004-03-09 2010-01-05 Gozoom.Com, Inc. Email analysis using fuzzy matching of text
US7555707B1 (en) 2004-03-12 2009-06-30 Microsoft Corporation Method and system for data binding in a block structured user interface scripting language
US8050653B2 (en) 2004-03-22 2011-11-01 Research In Motion Limited System and method for viewing message attachments
US20050257159A1 (en) * 2004-05-13 2005-11-17 International Business Machines Corporation Method and apparatus for identifying attachments in an email message
US8326930B2 (en) * 2004-06-22 2012-12-04 J2 Global Communications Variation of image content in electronic messaging protocol messages
US8040880B2 (en) * 2004-06-30 2011-10-18 Movius Interactive Corporation Signed message based application generation and delivery
JP4585801B2 (ja) * 2004-07-14 2010-11-24 株式会社日立製作所 広告情報登録方法及び広告表示システム
US8255828B2 (en) 2004-08-16 2012-08-28 Microsoft Corporation Command user interface for displaying selectable software functionality controls
US9015621B2 (en) 2004-08-16 2015-04-21 Microsoft Technology Licensing, Llc Command user interface for displaying multiple sections of software functionality controls
US7895531B2 (en) * 2004-08-16 2011-02-22 Microsoft Corporation Floating command object
US7703036B2 (en) * 2004-08-16 2010-04-20 Microsoft Corporation User interface for displaying selectable software functionality controls that are relevant to a selected object
US8117542B2 (en) 2004-08-16 2012-02-14 Microsoft Corporation User interface for displaying selectable software functionality controls that are contextually relevant to a selected object
US8146016B2 (en) 2004-08-16 2012-03-27 Microsoft Corporation User interface for displaying a gallery of formatting options applicable to a selected object
US8032482B2 (en) 2004-09-30 2011-10-04 Microsoft Corporation Method, system, and apparatus for providing a document preview
US7747966B2 (en) 2004-09-30 2010-06-29 Microsoft Corporation User interface for providing task management and calendar information
US7783708B2 (en) * 2005-01-27 2010-08-24 Microsoft Corporation Attachment browser
JP4928821B2 (ja) * 2005-04-28 2012-05-09 オセ−テクノロジーズ ビーブイ ネットワークシステムにおけるデジタル文書の取り扱い
US7886290B2 (en) * 2005-06-16 2011-02-08 Microsoft Corporation Cross version and cross product user interface
US20080086640A1 (en) * 2005-07-28 2008-04-10 Jmj Software, Llc Systems, methods and apparatus of an email client
US8239882B2 (en) 2005-08-30 2012-08-07 Microsoft Corporation Markup based extensibility for user interfaces
US8689137B2 (en) 2005-09-07 2014-04-01 Microsoft Corporation Command user interface for displaying selectable functionality controls in a database application
US9542667B2 (en) * 2005-09-09 2017-01-10 Microsoft Technology Licensing, Llc Navigating messages within a thread
US7739259B2 (en) 2005-09-12 2010-06-15 Microsoft Corporation Integrated search and find user interface
US8627222B2 (en) 2005-09-12 2014-01-07 Microsoft Corporation Expanded search and find user interface
US20070112848A1 (en) * 2005-11-17 2007-05-17 Steve Wang Method and system for concurrently processing multiple large data files transmitted using a multipart format
EP2214094A3 (en) * 2005-12-19 2010-10-06 Research In Motion Limited Computing device and method of indicating status of application program
US9727989B2 (en) 2006-06-01 2017-08-08 Microsoft Technology Licensing, Llc Modifying and formatting a chart using pictorially provided chart elements
US8605090B2 (en) 2006-06-01 2013-12-10 Microsoft Corporation Modifying and formatting a chart using pictorially provided chart elements
US20080046518A1 (en) * 2006-08-16 2008-02-21 James I Tonnison Enhanced E-Mail System
US8621373B2 (en) * 2006-08-31 2013-12-31 Microsoft Corporation Desktop assistant for multiple information types
US7882185B2 (en) * 2006-09-26 2011-02-01 International Business Machines Corporation Method and apparatus for managing e-mail attachments
US10489749B2 (en) * 2006-11-14 2019-11-26 Microsoft Technology Licensing, Llc Presenting daily task lists
KR101524572B1 (ko) * 2007-02-15 2015-06-01 삼성전자주식회사 터치스크린을 구비한 휴대 단말기의 인터페이스 제공 방법
KR101364885B1 (ko) * 2007-02-21 2014-02-19 엘지전자 주식회사 아이콘을 이용한 메시지 수신 표시 방법 및 단말기
US20080229238A1 (en) * 2007-03-14 2008-09-18 Microsoft Corporation Scalable images using bitmaps and vector images
KR101417769B1 (ko) * 2007-04-16 2014-08-07 삼성전자주식회사 통신 단말기의 사용자 컨텐츠 관리 방법
US8489702B2 (en) * 2007-06-22 2013-07-16 Apple Inc. Determining playability of media files with minimal downloading
US8201103B2 (en) 2007-06-29 2012-06-12 Microsoft Corporation Accessing an out-space user interface for a document editor program
US8762880B2 (en) 2007-06-29 2014-06-24 Microsoft Corporation Exposing non-authoring features through document status information in an out-space user interface
US8484578B2 (en) 2007-06-29 2013-07-09 Microsoft Corporation Communication between a document editor in-space user interface and a document editor out-space user interface
JP4169087B1 (ja) 2007-07-02 2008-10-22 オンキヨー株式会社 コンテンツタイプ登録装置及びコンテンツタイプ登録プログラム
US9237148B2 (en) 2007-08-20 2016-01-12 Blackberry Limited System and method for displaying a security encoding indicator associated with a message attachment
US7949355B2 (en) 2007-09-04 2011-05-24 Research In Motion Limited System and method for processing attachments to messages sent to a mobile device
JP5153358B2 (ja) 2008-01-23 2013-02-27 インターナショナル・ビジネス・マシーンズ・コーポレーション 電子メール表示プログラム、方法、装置及びシステム
EP2096809A1 (en) * 2008-02-29 2009-09-02 Research In Motion Limited System and method for dynamically updating message and list indicators
JP5130981B2 (ja) * 2008-03-24 2013-01-30 富士通モバイルコミュニケーションズ株式会社 電子機器
US9588781B2 (en) 2008-03-31 2017-03-07 Microsoft Technology Licensing, Llc Associating command surfaces with multiple active components
US9665850B2 (en) 2008-06-20 2017-05-30 Microsoft Technology Licensing, Llc Synchronized conversation-centric message list and message reading pane
US8402096B2 (en) 2008-06-24 2013-03-19 Microsoft Corporation Automatic conversation techniques
US8799353B2 (en) * 2009-03-30 2014-08-05 Josef Larsson Scope-based extensibility for control surfaces
US9046983B2 (en) 2009-05-12 2015-06-02 Microsoft Technology Licensing, Llc Hierarchically-organized control galleries
US8880620B2 (en) * 2009-06-12 2014-11-04 Microsoft Corporation Social graphing for data handling and delivery
JP5676859B2 (ja) * 2009-06-22 2015-02-25 キヤノン株式会社 画像形成装置、画像形成装置の制御方法、及びプログラム
US20110289072A1 (en) * 2010-05-24 2011-11-24 Microsoft Corporation Search-based system management
US8302014B2 (en) 2010-06-11 2012-10-30 Microsoft Corporation Merging modifications to user interface components while preserving user customizations
KR20120010047A (ko) * 2010-07-23 2012-02-02 삼성전자주식회사 이메일 처리 방법 및 장치
US9165285B2 (en) 2010-12-08 2015-10-20 Microsoft Technology Licensing, Llc Shared attachments
US9251508B2 (en) 2010-12-09 2016-02-02 At&T Intellectual Property I, L.P. Intelligent message processing
US11308449B2 (en) 2011-04-28 2022-04-19 Microsoft Technology Licensing, Llc Storing metadata inside file to reference shared version of file
US8682989B2 (en) 2011-04-28 2014-03-25 Microsoft Corporation Making document changes by replying to electronic messages
US9137185B2 (en) 2011-04-28 2015-09-15 Microsoft Technology Licensing, Llc Uploading attachment to shared location and replacing with a link
US10552799B2 (en) 2011-04-28 2020-02-04 Microsoft Technology Licensing, Llc Upload of attachment and insertion of link into electronic messages
US10185932B2 (en) 2011-05-06 2019-01-22 Microsoft Technology Licensing, Llc Setting permissions for links forwarded in electronic messages
US9390149B2 (en) 2013-01-16 2016-07-12 International Business Machines Corporation Converting text content to a set of graphical icons
RU2595533C2 (ru) * 2013-10-02 2016-08-27 Общество С Ограниченной Ответственностью "Яндекс" Система отображения почтовых вложений на странице веб-почты
US10582005B2 (en) 2016-06-24 2020-03-03 Airwatch Llc Architecture for performing actions in a third-party service by an email client
US11032220B2 (en) 2016-06-24 2021-06-08 Airwatch Llc Architecture for performing actions in a third-party service by an email client
US10484324B2 (en) 2016-10-02 2019-11-19 Vmware, Inc. Hero cards that display contextual information and actions for backend systems
US11340961B2 (en) 2017-03-23 2022-05-24 Airwatch Llc Dynamically integrating a client application with third-party services
CN108694207B (zh) * 2017-04-11 2022-04-01 Tcl科技集团股份有限公司 一种文件图标的显示方法及系统
CN112947974B (zh) * 2021-04-12 2022-10-28 平安国际智慧城市科技股份有限公司 桌面图标更新方法、装置、设备及计算机可读存储介质

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5906656A (en) 1991-12-26 1999-05-25 International Business Machines Corporation Method and system for providing actions by way of electronic distributions
US5752059A (en) * 1992-12-29 1998-05-12 Apple Computer, Inc. Apparatus and method for representing electronic mail
US5452289A (en) 1993-01-08 1995-09-19 Multi-Tech Systems, Inc. Computer-based multifunction personal communications system
US5734901A (en) * 1993-02-26 1998-03-31 Apple Computer, Inc. Electronic mail information associated with native application data
JP3150246B2 (ja) * 1993-12-09 2001-03-26 キヤノン株式会社 データ管理方法及び装置
US5890130A (en) 1994-02-04 1999-03-30 International Business Machines Corporation Workflow modelling system
CA2122573A1 (en) 1994-04-13 1995-10-14 John M. Pratt Dynamic electronic mail facility for applications executing in an integrated operating environment
JPH08180003A (ja) * 1994-12-22 1996-07-12 Hitachi Ltd 電子メールシステム
US5826269A (en) 1995-06-21 1998-10-20 Microsoft Corporation Electronic mail interface for a network server
US5706434A (en) 1995-07-06 1998-01-06 Electric Classifieds, Inc. Integrated request-response system and method generating responses to request objects formatted according to various communication protocols
JPH09134319A (ja) * 1995-10-03 1997-05-20 Sony Electron Inc パーソナル通信ルーティングシステムのユーザインターフェース及びルール処理
US5889518A (en) 1995-10-10 1999-03-30 Anysoft Ltd. Apparatus for and method of acquiring, processing and routing data contained in a GUI window
US5956486A (en) 1995-12-20 1999-09-21 Hickman; Paul Lawrence Method and apparatus for monitoring multiple electronic mail systems
US5826062A (en) * 1996-05-30 1998-10-20 International Business Machines Corporation Method and apparatus for converting and displaying a multimedia document at a client
US5818447A (en) 1996-06-06 1998-10-06 Microsoft Corporation System and method for in-place editing of an electronic mail message using a separate program
US5917489A (en) * 1997-01-31 1999-06-29 Microsoft Corporation System and method for creating, editing, and distributing rules for processing electronic messages
US5995756A (en) 1997-02-14 1999-11-30 Inprise Corporation System for internet-based delivery of computer applications
US6014688A (en) 1997-04-25 2000-01-11 Postx Corporation E-mail program capable of transmitting, opening and presenting a container having digital content using embedded executable software
US5974449A (en) 1997-05-09 1999-10-26 Carmel Connection, Inc. Apparatus and method for providing multimedia messaging between disparate messaging platforms
US6189026B1 (en) * 1997-06-16 2001-02-13 Digital Equipment Corporation Technique for dynamically generating an address book in a distributed electronic mail system
US6088696A (en) * 1997-09-29 2000-07-11 Ericsson Inc. Mailing/filing system for congruently categorizing different types of electronic mail resources received through a messaging system
US6073166A (en) * 1997-10-14 2000-06-06 Maila Nordic Ab System for transfer of data
US6092114A (en) * 1998-04-17 2000-07-18 Siemens Information And Communication Networks, Inc. Method and system for determining the location for performing file-format conversions of electronics message attachments
US6205432B1 (en) * 1998-06-05 2001-03-20 Creative Internet Concepts, Llc Background advertising system
US6192396B1 (en) * 1998-08-11 2001-02-20 Canon Kabushiki Kaisha Electronic mail with recipient-specific content
US6249807B1 (en) * 1998-11-17 2001-06-19 Kana Communications, Inc. Method and apparatus for performing enterprise email management
US6360252B1 (en) * 1999-09-20 2002-03-19 Fusionone, Inc. Managing the transfer of e-mail attachments to rendering devices other than an original e-mail recipient

Also Published As

Publication number Publication date
CA2423407A1 (en) 2002-01-03
EP1410220A1 (en) 2004-04-21
JP2004502239A (ja) 2004-01-22
AU2001271493A1 (en) 2002-01-08
US6546417B1 (en) 2003-04-08
CN1449525A (zh) 2003-10-15
WO2002001373A1 (en) 2002-01-03

Similar Documents

Publication Publication Date Title
CN1292358C (zh) 含有用于识别mime类型及显示不同图标的方法和装置的增强电子邮件系统
US10778635B2 (en) People lists
US20180158110A1 (en) Systems and Method for Managing Emails
CN1581192A (zh) 用于投递时间敏感电子邮件的方法和系统
EP1452989B1 (en) Method to initiate server based collaboration on e-mail attachments
US7089248B1 (en) Group file delivery including user-defined metadata
CN1509442A (zh) 因特网和/或网站内容的自动管理
US11625137B2 (en) Simplified data entry
US20070100861A1 (en) Interacting with a computer-based management system
CN1337026A (zh) 用于表达频道化数据的系统和方法
CN1607501A (zh) 标记构架
US9082107B2 (en) Intellectual asset automatic docketing and file association
JP2008257316A (ja) 情報処理システム及び情報処理プログラム
JP2000020421A (ja) 電子メールシステムにおけるテンプレート自動選択方法
US20070038708A1 (en) Electronic mail distribution via a network of computer controlled display terminals with interactive display interfaces offering a sender creating an E-mail message proposed recipients based upon E-mail wording
JPH1153154A (ja) 電子メール表示装置および電子メール表示プログラムを記録したコンピュータが読み取り可能な記録媒体
JP2009087047A (ja) クライアント端末装置及びこれを用いたワークフローシステム並びにメール集約方法、ソフトウェアプログラム
JPWO2005015410A1 (ja) 電子メール分類方法、電子メール分類プログラムおよび電子メール分類装置
JP4245260B2 (ja) 電子メール受信装置、記録媒体及び電子メール受信方法
Rhodes et al. Palm Programming: The Developer's Guide
JP2003271518A (ja) 情報送信方法及びその実施システム並びにその処理プログラム
JP2005115821A (ja) 情報自動入力サーバ

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20061227

Termination date: 20120620