CN1818860A - 用于与辅助计算设备的一致程序交互的接口 - Google Patents
用于与辅助计算设备的一致程序交互的接口 Download PDFInfo
- Publication number
- CN1818860A CN1818860A CNA2006100046053A CN200610004605A CN1818860A CN 1818860 A CN1818860 A CN 1818860A CN A2006100046053 A CNA2006100046053 A CN A2006100046053A CN 200610004605 A CN200610004605 A CN 200610004605A CN 1818860 A CN1818860 A CN 1818860A
- Authority
- CN
- China
- Prior art keywords
- application program
- content
- equipment
- client applications
- interface
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/16—Constructional details or arrangements
- G06F1/1613—Constructional details or arrangements for portable computers
- G06F1/1633—Constructional details or arrangements of portable computers not specific to the type of enclosures covered by groups G06F1/1615 - G06F1/1626
- G06F1/1637—Details related to the display arrangement, including those related to the mounting of the display in the housing
- G06F1/1647—Details related to the display arrangement, including those related to the mounting of the display in the housing including at least an additional display
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/16—Constructional details or arrangements
- G06F1/1613—Constructional details or arrangements for portable computers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/545—Gui
Abstract
描述了一种包括具有接口(API)集的辅助显示平台的系统和方法,该接口(API)集提供一种方法,供运行于主计算机系统上的客户机应用程序与各种类型的辅助显示器交互,而不管各种设备实现之间的差异如何。交互包括:显示应用程序所提供的内容和通知,以及将事件返回到应用程序。在一项实现中,API集包括COM对象集,该COM对象集注册和执行客户机应用程序的配置检验,将内容和通知发送到附加设备,并返回来自这些附加设备的事件。应用程序可以将数据发送到与通信目的地(例如,特定的辅助设备应用程序)和关于该数据的合约(例如,格式)相对应的端点。这样,平台和API集提供关于应用程序的抽象层,以便独立于任何特定的辅助设备实现来提供信息。
Description
版权放弃声明
本专利文档的公开内容的一部分包含受版权保护的材料。该版权所有者不反对该专利文档或专利揭示的任何人如它出现在(美国)专利商标局中的专利文件或记录中那样进行复制,但保留全部版权。
技术领域
本发明一般涉及计算机系统,尤其涉及一种用于在计算机系统与辅助设备之间传达信息的改进的系统和方法。
背景技术
序号为10/429,930和10/429,932的美国专利申请一般针对具有为主计算机系统提供某个辅助计算功能的辅助处理和辅助机制的计算机系统的概念。例如,即使当主计算机显示器不容易看得见时(例如,当合上膝上型计算机的盖子和/或主计算机被断电时),膝上型计算机的盖子或侧边上的小型LCD也可以为用户提供有用信息(例如,会议地点和时间)。可以提供控件(例如,诸如采取按钮形式的一组用户可选择的响应或支持的动作),以允许用户与辅助设备交互,例如,选择对通知的响应,查看不同类型的数据,滚动通过日历数据中的约会,阅读电子邮件消息,阅读指示,等等。
有些类似于被置入移动主计算机的辅助LCD屏幕的有移动电话、音乐播放设备、袖珍型个人计算机、个人数字助理等等,当例如在物理上和/或经由无线(例如,“蓝牙”或红外线)链路与其耦合时或者在与计算机耦合之后的任何时刻,如果设备持久保存来自计算机的数据,并且只要设备被编程为允许主计算机利用其显示器和/或其他功能,它们的每一个就可以用作主计算机系统的辅助设备。一般而言,实际上可以用任何方法与计算机系统接口的具有I/O能力的任何设备可以潜在地用作辅助计算设备。
但是,尽管可能有可以用作计算机系统的辅助显示器的众多不同的设备,但当前没有现存的平台或API(应用程序编程接口)供主计算机系统上的程序与辅助显示器交互。现存的系统要么被关闭,由此,ISV(独立软件销售商)不能扩展平台的功能;要么没有被明确设计成用于与辅助显示器的普通交互类型,因而用起来既不简易、又不一致。
需要一种供运行于主计算机系统上的程序简单地、一致地与各种类型的辅助显示器交互的方法,而不管各种设备实现之间的差异如何。应用程序不应该被要求处理每个设备的特定性能,但如果需要的话,应该能够询问设备性能,以便在每个设备上显示定制信息。
发明内容
简言之,本发明提供一种系统和方法,包含包括接口集的辅助显示平台,它提供一种简明、一致的方法供客户机应用程序(即在主计算机系统上运行的程序)与各种类型的辅助显示器交互,而不管各种设备实现之间的差异如何,也无须处理每个设备的特定性能(除非需要)。该交互包括显示从客户机应用程序发送的信息,包括将要被呈现在设备上的任何达成一致意见的格式的数据、通知或内容;设备也可以将事件或数据发送到客户机应用程序。用户可以配置在哪些设备上显示哪些客户机应用程序的数据。
该体系结构经由辅助显示器API集向客户机应用程序展示辅助设备,该辅助显示器API集在一个示例性实现中采取COM(组件对象模型)接口的形式。API集允许独立于设备上的固件和连接协议而按普通的方式向客户机应用程序展示各种类型的设备。该API集指定提供各种功能,包括:向系统注册客户机应用程序,为一个或多个附加设备发送通知,以及从一个或多个附加设备接收事件或数据。事件可以包括导航事件、内容请求事件、内容更改事件等。
一般而言,客户机应用程序将内容和通知发送到辅助设备,在那里,辅助设备应用程序高速缓存和/或呈现该内容。根据XML模式来描述将鼓励大多数设备和应用程序支持的简单内容格式。该API集对于通过它发送的内容而言是不可知的。所以,该API集也支持将自定义数据发送到消耗该数据的自定义端点,其中,端点指定通信目的地(例如,特定的辅助设备应用程序)和关于该数据的合约(例如,格式)。辅助设备也能够显示客户机应用程序发送的通知(例如,在特殊区域内或在其他内容上面),并且能够根据从主计算机系统提供的数据来生成其自己的通知。该API集还便于从辅助设备返回事件和数据。
在一项实现中,用包括COM接口集的代码(例如,非受管C++代码)来实现客户机API集。客户机应用程序在其进程中创建这些对象/接口中的一个或多个对象/接口的实例,然后使用那些对象来与辅助显示平台进行通信。
注册对象(例如,AuxiliaryDisplayRegistrar(辅助显示器注册))实现接口(例如,IAuxiliaryDisplayRegistrar),由此,客户机应用程序将本身注册为当前运行。AuxiliaryDisplayRegistrar类维护与API接口使用的设备相对应的接口指针的列表。AuxiliaryDisplayRegistrar类也接收指出“何时从该系统中添加或移除设备”的设备事件,并适当地更新其本地列表,以及通知可能会受到变化影响的任何现存客户机。AuxiliaryDisplayRegistrar类也负责执行应用程序和设备许可检验,以确定是否授权客户机应用程序使用该设备。
通知管理器对象实现接口(例如,IAuxiliaryDisplayNotificationManager(辅助显示器通知管理器接口)),由此,客户机应用程序可以请求和撤回附加设备上的通知。AuxiliaryDisplayRegistrar对象在客户机应用程序提出通知注册请求(例如,经由RegisterNotifications(注册通知)方法)时例示通知管理器对象,并让通知管理器对象了解(例如,向其提供指针)为通知启用的每个设备,并将指向IAuxiliaryDisplayNotificationManager接口的指针返回给请求客户机应用程序。当应用程序使用该接口来请求显示通知时,通知管理器对象经由回叫从客户机应用程序中拉出通知信息(例如,标题、消息、图标/图像数据和截止时间),并将通知发送到被授权供那个客户机应用程序使用的设备。
对于内容,响应于来自客户机应用程序的Register(注册)方法调用,AuxiliaryDisplayRegistrar类创建内容管理器对象(例如,实现IAuxiliaryDisplayContentManager(辅助显示器内容管理器)接口的对象)。该内容管理器对象利用在注册期间传递的(客户机应用程序的)应用程序ID和端点ID(数据应该去的地方)来初始化,并为接口提供供客户机应用程序用来添加内容、移除特殊内容、或移除所有内容的方法。该接口包括Add(添加)方法,它询问客户机应用程序,以获得关于适用于该调用的部分属性的值;然后,根据结果,迭代通过设备,向客户机应用程序请求内容,并将该内容向下发送到设备。应用程序可以指定将单个内容发送到其所有被授权的设备;或者它们可以指定不同的内容(例如,为设备的性能定制的内容)可以个别地被发送到其不同的设备中的每个设备。移除调用试图从每个设备中移除一个特定内容。内容由应用程序范围内唯一的持久唯一标识符来标识。
对于事件,另一个方法处理设立事件宿,从而允许客户机应用程序传递用于事件通知的接口指针。事件可以包括关于设备添加和移除或连接和断开的事件通知(包括由应用程序/设备授权中的变化生成的事件通知)、响应于对于连接设备的属性的查询的事件、关于按键的通知事件、以及当辅助设备需要它当前不可用(在高速缓存中或其他地方)的一个内容时所生成的内容-请求事件。辅助设备上的应用程序也能够生成诸如设备导航事件、选择事件和与上下文菜单动作有关的事件等事件。其他事件可以是占先的,例如,预期需要数据。事件的特定语义和内容由端点(例如,设备应用程序)来定义,但是,一般而言,事件标识它来自那里的设备、它来自那里的设备应用程序/端点、以及伴随它的数据。
通过以下结合附图的详细说明,其他优点将变得一目了然。在这些附图中:
附图说明
图1是框图,表示本发明可以被并入其中的常规个人计算机系统的形式的通用计算设备;
图2A-2E是通常表示各种设备上的辅助显示器的布置位置的示例性图示;
图3是根据本发明的一个方面的、通常表示示例分层体系结构的框图,通过该范例分层体系结构,客户机应用程序可以与任意辅助显示设备的固件交换数据;
图4是根据本发明的各个方面的、用于与辅助显示设备进行通信的过程中的各种组件的示例表示;
图5是根据本发明的一个方面的、用于允许应用程序与基本辅助显示设备交换数据的基于安装或基于执行的机制的示例表示;
图6是根据本发明的一个方面的端点的示例表示,通过这些端点,辅助知晓客户机应用程序与各种辅助显示设备应用程序交换数据;
图7是根据本发明的一个方面的、通常表示API集的对象的框图,客户机应用程序调用该API集的对象来与辅助显示设备的固件交换数据;
图8是根据本发明的一个方面的顺序图,它通常表示客户机应用程序与API对象之间的注册、调用和回叫,以便从应用程序获得内容,用于传达给一个或多个辅助显示设备;以及
图9是根据本发明的一个方面的顺序图,它通常表示客户机应用程序与API对象之间的注册、调用和回叫,以便从应用程序获得通知数据,用于传达给一个或多个辅助显示设备。
具体实施方式
示例性操作环境
图1是框图,表示本发明可以被并入其中的个人计算机系统的形式的计算设备120。本领域的技术人员将会理解:图1中所描绘的个人计算机系统120意在仅仅起说明的作用,并且,本发明可以利用包括手持设备、多处理器系统、基于微处理器的或可编程的消费者电子设备、网络PC、小型计算机、大型计算机、无头服务器等的其他计算机系统配置来加以实践。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于本地和远程记忆存储设备中。
个人计算机系统120包括处理单元121、系统存储器122和系统总线123,系统总线123将包括该系统存储器的各种系统组件耦合到处理单元121。系统总线123可以是几种类型的总线结构中的任一种,包括存储总线或存储控制器、外围总线、以及使用各种总线体系结构中的任一种的局部总线。系统存储器包括只读存储器(ROM)124和随机存取存储器(RAM)125。基本输入/输出系统126(BIOS)被存储在ROM 124中,该基本输入/输出系统包含有助于在计算机120内的各个元件之间传送信息(例如,在启动期间)的基本例程。个人计算机120可以进一步包括用于从硬盘(未示出)读取并对其写入的硬盘驱动器127、用于从可移动磁盘129读取或对其写入的磁盘驱动器128、以及用于从可移动光盘131(例如,CD-ROM或其他光学介质)读取或对其写入的光盘驱动器130。硬盘驱动器127、磁盘驱动器128和光盘驱动器130分别由硬盘驱动器接口132、磁盘驱动器接口133和光盘驱动器接口134连接到系统总线123。这些驱动器及其关联的计算机可读介质为计算机120提供计算机可读指令、数据结构、程序模块和其他数据的非易失性存储。虽然这里所描述的示例性计算机系统使用硬盘、可移动磁盘129和可移动光盘131,但是,本领域的技术人员应该理解:也可以在示例性计算机系统中使用可以存储可由计算机存取的数据的其他类型的计算机可读介质,例如,盒式磁带、闪存卡、数字视频光盘、伯努里式磁带匣、随机存取存储器(RAM)、只读存储器(ROM)等。
许多程序模块可以被存储在硬盘、磁盘129、光盘131、ROM 124或RAM 125上,包括操作系统135(例如,WindowsXP)、一个或多个应用程序136(例如,MicrosoftOutlook)、其他程序模块137和程序数据138。用户可以通过输入设备(例如,键盘140和定点设备142)来将命令和信息输入个人计算机120。其他输入设备(未示出)可以包括话筒、操纵杆、游戏垫、圆盘式卫星电视天线、扫描仪等等。这些和其他的输入设备经常通过被耦合到系统总线的串行端口接口146而被连接到处理单元121,但也可由其他接口(例如,并行端口、游戏端口或通用串行总线(USB))来连接。监视器147或其他类型的显示设备也经由接口(例如,视频适配器148)而被连接到系统总线123。除监视器147以外,个人计算机还通常包括诸如扬声器和打印机等其他外围输出设备(未示出)。辅助显示器200是额外的输出设备,并且例如可以经由辅助显示器接口155而被连接到系统总线123。辅助显示器101也可以通过串行接口或通过其他接口(例如,并行端口、游戏端口、红外线或无线连接、通用串行总线(USB)或其他外围设备连接)连接到计算设备120。图1中的输入设备201可以提供一个或多个致动器,以便与辅助显示器200连接和/或控制辅助显示器200,并且,例如可以是该辅助显示设备的一部分,但作为选择,可以独立于它,并经由输入设备接口156(可以是串行接口)或通过其他接口(例如,并行端口、游戏端口、红外线或无线连接、通用串行总线(USB)或其他外围设备连接)而被连接到系统总线123。
个人计算机120可以使用与一台或多台远程计算机(例如,远程计算机149)的逻辑连接而在网络化环境中进行操作。远程计算机149可以是另一台个人计算机、服务器、路由器、网络PC、对等设备或其他常见的网络节点,它通常包括以上相对于个人计算机120而描述的许多或所有元件,尽管图1中只展示了记忆存储设备150。图1中所描绘的逻辑连接包括局域网(LAN)151和广域网(WAN)152。这类网络环境在办公室、企业范围的计算机网络、内联网和因特网中很普遍。
当被用于LAN网络环境中时,个人计算机120通过网络接口或适配器153而被连接到局域网151。当被用于WAN网络环境中时,个人计算机120通常包括调制解调器154或用于通过广域网152(例如,因特网)建立通信的其他装置。调制解调器154(可以是内置的,也可以是外置的)经由串行端口接口146而被连接到系统总线123。在网络化环境中,相对于个人计算机120或其各个部分而描绘的程序模块可以被存储在远程记忆存储设备中。将会理解:所示的这些网络连接起示例性的作用,可以使用在计算机之间建立通信链路的其他手段。
应该注意,计算机系统不需要完全操作以供辅助设备根据本发明运作。的确,当计算机被断电时,例如,当计算机系统处于睡眠状态或休止模式时,和/或当用户还没有登录或经由安全机制被关在系统以外时,辅助设备至少在默认程度上或在用户配置的程度上仍然可以运作。
当主显示器被关闭或不可操作(例如,被断开)时,辅助设备可以对主显示器进行补充,也可以用作代替显示器,以便为用户提供一些信息。例如,诸如如何为主显示器加电的信息可能会有帮助,如同与移动计算机连接的辅助显示设备上的会议房间号码和/或指示一样,当主显示器关闭和/或不容易看得见(例如,膝上型计算机的盖子被关闭)时,用户可以查看该信息。辅助设备可以播放音频和/或视频,显示图像,显示日历信息,显示电子邮件等等。
为了在这些断电模式中启用和控制通信,固件可以存在,被存储在非易失性存储器中,只要某个电源可用,当被次级处理器装载和操作时,固件启用辅助显示器以及要被使用的其他辅助组件。注意,如这里所使用的,术语“固件”和“设备硬件”本质上是等效的,并且通常可以被认为表示辅助存储器、其中的代码和/或它在其上运行的次级处理器。
图2A-2E分别示出了计算设备上的或与计算设备相关联的关于辅助显示屏幕200a-200e的布置的示例性位置。如图2A和2B中所示的,辅助显示屏幕200a可以被放置在独立(陆上通讯线或移动)电话202的前面、后面或其他表面上,(如果诸如经由蓝牙技术等别的方式连接,则它不需要在物理上耦合)和/或另一个辅助显示屏幕200b可以被放置在移动计算机204或图形输入板计算设备(未示出)的边缘或盖子上。关于辅助显示屏幕200c(图2C)的另一个地方可以是在安装于计算机上的电话上或在连在计算机上的外围设备上(例如,在监视器206上或在键盘(未示出)上)。图2D和2E分别示出了与计算机连接的独立控制台208或某个其他的外壳210(例如,主板的外壳)的面板上的辅助显示屏幕200d和200e的额外布置。本领域的技术人员将会理解:辅助显示屏幕可以被放置在任何计算设备或具有显示性能的其他设备的任何表面上——例如,被放置在具有与计算机的无线或其他连接的手表上、被放置在远程控制设备上、被放置在远程壁装式单元上等等。的确,辅助显示器不需要在物理上接近主计算机系统,因为连接可以在LAN或WAN上或甚至在因特网上。
从图2A-2E中应该明白,辅助显示器可以采取任何数量的已知类型的显示器的形式(例如,一个或多个LED、2行字母数字显示器、单色显示器或彩色显示器)。本领域的技术人员将会理解:本发明也可以将其他计算或通信设备的显示器用作辅助显示器200。这些其他计算或通信设备包括通用计算机、手机、以及诸如寻呼机或个人数字助理(PDA)等手持设备。此外,本发明可以将在计算设备120的屏幕上的显示区域内实现的虚拟辅助显示器(例如,图形用户界面的屏幕保护程序或组件)用作辅助显示器200,包括在用户登录之前。辅助显示器200可以包括上述任何形式的组合,也可以在物理上或在逻辑上与诸如一个或多个LED等指示器组合和/或结合虚拟辅助显示器来使用。
即使在没有屏幕的条件下,或当其屏幕被断电时,辅助设备也可以提供功能。例如,辅助设备可以播放音频、收集数据(例如,供以后下载到主计算机)、执行计算等等。显示器也可以包括一个或多个LED或类似物,而不是全屏幕。这样,虽然许多好处和优点起因于具有辅助显示屏幕,并且因而辅助设备在这里可以被称作“辅助显示器”,但是,不需要显示器。一般而言,如这里提到的,辅助显示器本质上可以由能够被感知的任何事物组成,包括任何视觉、听觉和/或触觉表示。
用于与辅助设备的程序交互的接口
本发明一般针对与辅助设备的通信,例如,提供内容、通知和其他信息供显示在辅助设备上,并可能从该设备获得返回信息(例如,基于与辅助设备的用户交互的事件)。如将会理解的,有许多类型的设备可以用作辅助显示设备,包括不一定具有显示器但可以提供诸如声音或光的某个输出的设备。虽然这里使用许多例子,包括膝上型计算机盖子、移动电话、袖珍个人计算机、基于数字图像的图片帧、厨房显示器、电视机、媒体播放器、包括闹钟、手表等的时钟上的显示器,但是,本发明不局限于这些例子的任一个,而是预期运用能够输出感觉信息的任何设备,即使是被称作辅助“显示器”。例如,其他类型的设备包括被嵌入或使用消费者电子设备(例如,电冰箱、家庭影剧院接收器、DVD播放器等)的主显示器、壁挂式显示器、汽车、运输或其他车辆装置(例如,将汽车/火车/飞机中的显示器用作辅助显示器)、主计算机系统的键盘或其他输入设备、PDA(包括非移动电话PDA)等的辅助设备。同样,本发明不局限于用于将辅助设备耦合到另一个计算机系统的任何特定机制,因而不局限于这里所使用的有线或无线例子。连接可以相对接近或相对遥远,本质上可以在任何地方,例如,在LAN或WAN上、或在因特网上的虚拟专用连接上。
参考附图中的图3,示出一示例体系结构,它经由辅助显示器API集304向包括应用程序302和其他程序(例如,操作系统组件)的客户机展示辅助设备300和/或301。在以下描述的一个示例性实现中,API集304采取C++可存取COM API的形式。API 304提供关于各种功能的API,包括:向系统注册客户机应用程序306(程序的组件或可能是程序本身),向附加设备发送内容,向附加设备发送通知,以及从附加设备接收事件。事件可以包括导航事件、内容请求事件、内容更改事件等。
与以下所描述的本发明的各个方面相一致,API集304的运用只向使用API集304的客户机展示“辅助显示系统”;对单独的设备的其他(非API)访问是可行的,但不是必要的。结果,对于独立软件销售商,在将程序组件注册为客户机应用程序(经由API集304)之后,可以使用对同一API集304的另一个调用来将内容发送到任何辅助设备,而不管该设备的实际类型和性能如何。虽然用户体验可能不同,但是,应用程序不需要适应存在的辅助设备。注意,应用程序也可以获得关于辅助设备的性能信息,并且可以根据性能来选择采取不同的动作,但该应用程序不需要为了使用该设备而这样做。这是因为本发明提供处理进一步的通信的体系结构,从而从包括使数据适应任何特定设备的复杂任务中释放该应用程序。
API层304被写在便携式设备API集310上,便携式设备API集310经由用户模式驱动程序框架312与该设备的驱动程序进程进行通信。便携式设备API集310启用与诸如MP3播放器、数码照相机等便携式设备的连接,并由辅助显示器来利用。便携式设备API集310将辅助显示器映射到便携式设备种类,并且它允许列举该设备的性能。
一般而言,客户机应用程序306将内容和通知发送到辅助设备。该设备能够显示通知,并能够根据从主计算机系统提供的数据来生成其自己的通知。该设备将信息以事件形式提供回给客户机应用程序306。注意,应用层下面以及设备驱动程序324和325上面的组件通常可以被称作“辅助显示平台”。
在图4通常所示的一项实现中,平台利用现存组件,包括便携式设备API集310和“用户模式驱动程序框架”(也被称作UWDF的UMDF、或用户模式Windows设备框架)、供用户模式驱动程序在其中运行的沙箱环境,以提供与辅助显示设备进行通信的统一方法。与本发明相一致,独立于设备上的固件和连接协议,按普通方式展示各种类型的设备。
返回到图3中所示的框图,多个设备可以同时被耦合到计算机,以用作辅助显示器。用户可以配置(例如,经由控制面板或类似物)哪些客户机应用程序的数据被显示在哪些设备上。系统数据供应者308也可以将诸如时间数据、无线信号强度数据、计算机的音频音量和无声状态、和/或电池电平数据等系统信息提供给辅助显示器。在一项实现中,只要客户机应用程序306发送内容,辅助显示平台都咨询系统维护的矩阵,以确定哪个或哪些设备将要接收该信息。辅助显示平台的API304也将事件(和可能的其他信息)从辅助设备发送到客户机应用程序306,从而再次使用该矩阵来适当地将这些事件发送回到这个(或这些)应用程序。
某些类型的辅助设备(例如,图3中的显示器301)被认为是“增强型”显示器,因为它们利用某个SPOT(智能个人对象技术)固件和某个呈现代码来配置,并且尤其通常与可以经由API 304接收的任何信息相兼容。这里被称作“基本”显示器的其他辅助设备包括运行其他自定义固件、但能够担当辅助显示器(例如,图3中的基本远程辅助(蜂窝式电话听筒)显示器300)的任何辅助显示设备。用户模式驱动程序框架提供用于将设备驱动程序(例如,324和325)耦合到辅助显示平台的设备驱动程序接口(DDI)。然后,这些驱动器将与API接收信息相对应的数据转发到适当的硬件接口(传输),用于到辅助显示设备的通信。例如,在图3中,基本设备驱动程序324被示为(经由先前定义的协议)将数据转发到远程堆栈和驱动程序327,用于到设备300的无线(例如,蓝牙、Wi-FI、AM/FM红外线等)通信,而增强型设备驱动器325被示为将数据转发到基于USB的硬件328,尽管包括网络传输(例如,基于TCP/IP的传输),但其他类型的传输是可行的。如可理解的,这些连接只是出于举例目的而被示出,因为任何设备驱动程序将适当地转发关于无线或有线通信的数据。
本发明的一个方面针对允许对辅助显示平台的计划性访问的公用API集304。客户机API集304支持对该平台的访问,并且如下所述,提供用于安装和注册、内容管理(包括发送数据)、通知管理、性能询问、以及事件发生的机制。客户机应用程序发送到设备的内容取决于向它注册的端点。如上所述,大多数设备将会支持的一个类格式是简单内容格式,例如,基于描述布局原语的XML模式,该布局原语为ISV提供灵活性来开发跨越具有变化的显示性能的多种不同的设备而运作的客户机应用程序。例如,简单内容格式可以支持包括图像和文本的内容页、包括可以被选为动作的可滚动项目列表的菜单页、包括用户界面对话框和选项的对话、以及上下文菜单(例如,用户可以通过其来调用上下文敏感动作)。
客户机API集304也支持发送自定义数据到消耗该数据的自定义端点,其中,端点指定通信目的地(例如,特定的辅助设备应用程序)和关于该数据的合约(例如,格式)。API集304进一步便于返回来自辅助设备的事件和被发送到辅助设备的通知。
根据本发明的一个方面,通过允许ISV以可以被呈现在任何辅助显示器上的格式提供内容,来提供用于扩展辅助显示平台的机制。为此目的,客户机API 304为辅助显示平台提供ISV用来扩展其应用程序的框架。如下所述,一旦客户机应用程序向该平台注册,API集304就提供该机制,以便将内容推入设备并响应于来自设备的事件。
参考图5,在其最初安装在主计算机系统上的期间,客户机应用程序306可以注册本身。如图5中标注为一(1)的箭头所表示的,为此,当安装应用程序306时,安装相关数据538被写入注册表540。对于辅助显示功能,安装包括:在应用程序的正规安装过程期间,写入指定的辅助显示相关注册表键集。应用程序此刻指定包括其标题、图标和被支持的端点的一些重要的值。例如,主注册表键可以是[HKCUHKLM]\Software\Microsoft\Windows\AuxiliaryDisplay\Applications\<ApllicationID>,且参考采取唯一地识别特定客户机应用程序(并且也表示实现用于生存期管理的IauxiliaryDisplayApplication接口的COM对象的CLSID)的GUID的形式的应用程序ID;友好名包括描述客户机应用程序的名称的人可读文本串;图标表示客户机应用程序(例如,用于显示在控制面板中和设备的外壳程序中),它最有可能被存储为文件名和资源ID;并且,端点ID的优先级列表包括这个客户机应用程序向其发送数据的设备应用程序。可以强制实施最大号码,并且可以用数字标注端点(端点0、端点1),以便优先级清楚明了。也要注意,策略(例如,来自系统管理员)可以驳回应用程序根据辅助显示器而请求的任何事物,例如,可以防止应用程序使用设备。
辅助显示应用程序的安装过程使客户机应用程序在辅助显示控制面板上可用,供用户在设备上启用。为此,当发生安装时,可以向用户示出通知;在图5中,这由标注为二-A(2A)的箭头来表示,在那里,与注册表相关联的代码542(例如,注册表编辑器代码)经由通知544向用户界面546指出:关于新近安装的客户机应用程序的信息548可用。
然后,用户能够调用控制面板窗550或类似物来允许用户选择一个或多个辅助设备连接到该客户机应用程序,即,在用户的一个或多个辅助显示设备中的任何一个辅助显示设备上启用该客户机应用程序306,图5中通过标注为三(3)的箭头表示了这一点。注意,通知544可以提供指令、链接或类似的信息来协助用户选择控制面板窗口中的正确图标,以启用用于辅助显示的应用程序。如上所述,为了便于选择,可以提供复选框表格(许可表格)或类似物,以允许用户选择利用其启用该新安装的客户机应用程序306的一个或多个辅助设备。
容易理解,用户也能够使用控制面板或类似的机制来启用先前已被安装、但未被启用的应用程序,禁用先前启用的应用程序,更改在其上启用应用程序的一个或多个设备等等。这样,在图5中,当客户机应用程序执行时,它可能被启用或可能不被启用以用于一个或多个辅助设备,但如果不被启用,则在被执行时可能能够这样做。例如,在运行的应用程序的注册请求552期间,(以下参照图7和图8描述),如果还没有被启用,则注册代码554可以发送通知544。此时,用户能够决定是否为一个或多个辅助设备启用应用程序。用户也可以决定在应用程序正在运行的同时为一个或多个辅助设备启用或禁用应用程序;对客户机应用程序的这些更改将分别作为“设备添加”和“设备移除”事件而出现。
注意,在所描述的实现中,用户(或更高级策略)总是控制哪些应用程序被允许向哪些设备发送内容。虽然自动启用是可行的,但是,从安全立场出发,它是不合需要的,因此,在这个示例实现中,没有计划性方法可允许客户机应用程序在安装过程期间利用辅助设备进行操作。
一旦被启用,客户机应用程序306就可以访问平台来向用户授权的设备注册,并且其后为这些经授权的设备提供内容。以下参照图7-9来描述注册和通信。与本发明的各个方面相一致,客户机应用程序不必处理设备的管理,因为这项工作由平台来照料。相反,如下所述,客户机应用程序可以使用API集304(图3)来发送内容和通知。注意,客户机应用程序可以在支持高速缓存的设备上高速缓存数据,例如允许离线访问,由此,用户能够浏览已被应用程序高速缓存在设备上的内容。注意,在一项实现中,由于安全原因,应用程序可以发送、但无法获得被高速缓存在辅助设备上的内容,并且,如下所述,相反只可以从辅助设备接收事件。但是,直截了当的方法是提供一种系统,其中,应用程序可以读取被高速缓存在辅助设备上的内容。
取代高速缓存(或除高速缓存以外),当用户请求它时,应用程序也可以按要求提供其内容。在经要求的情形中,当用户经由辅助显示器与客户机应用程序交互时,平台从应用程序请求要显示的内容,经由API集304接收它,并将内容发送到设备。当主计算机系统在线时,平台也可以为应用程序提供事件,以便应用程序知道用户正在做什么,例如,应用程序接收对应于与辅助设备的用户交互命令的事件。
经由API集和用于传达内容的简单内容格式,平台移除了客户机应用程序具备关于通常在设备上呈现数据所需要的各种类型的设备、其固件、通信信道和驱动程序的特殊知识的需求。利用这个方法,该设计允许ISV避免处理设备管理和电信协议的细节。这样,包括API集的平台体系结构允许ISV将内容提供给被连接的辅助显示设备,特别是支持简单内容格式的辅助显示设备,这允许客户机应用程序提供能够被呈现在任何服从设备上的数据。如下所述,这个格式指定基本文本和图像布局、以及菜单和对话。倘若ISV选择定制内容(例如,根据颜色支持来提供不同的内容),平台也展示设备性能。
而且,设备不只可以支持简单内容格式,并且,例如可以支持关于日历(例如,vCalendar)的额外端点(被扩展的数据格式)、联系人信息(例如,vCard)、或设备可以理解的任何其他格式。设备支持的数据格式只受设备限制;在主计算机系统上运行的客户机应用程序可以使用任何互相理解的数据格式来运用辅助显示平台与辅助显示器进行通信。
概括而言,辅助显示器API集304(图3)允许在主计算机系统上运行的经授权的客户机应用程序发送内容和通知,用于在辅助显示设备上呈现数据。平台提供设备连接和管理,并且,系统控制面板指定辅助显示设置的用户控制。API允许应用程序向设备发送内容和通知,并从设备接收事件。这个体系结构允许不同等级的扩展性,包括:平台和API集使ISV应用程序不必理解每个辅助显示设备的特殊属性。只有当被请求的时候,才展示设备性能。另外,辅助显示平台是连接不可知的,这体现在:只要适当的用户模式辅助显示传输驱动程序存在,它与如何连接辅助显示器的应用程序不相关,这本质上可以经由包括未来协议的任何连接和/或协议(例如,USB、蓝牙、TCP/IP等)。
如上所述,客户机应用程序使用所谓的端点来与设备进行通信。端点指定通信目的地(例如,日历设备应用程序)和关于在应用程序与端点之间传递的数据的合约(例如,vCalendar格式)。在这个模型中,应用程序指定它们可以与其进行通信的端点,而设备指定它们支持的端点。然后,由支持相同端点的设备与应用程序之间的平台建立通信。
当与设备进行通信时,端点由主计算机系统所使用的唯一标识符(例如,GUID)来表示。设备上的每个设备应用程序可以通告可从主计算机系统接受数据的一个或多个端点。端点被认为是跨越设备而一致的众所周知的项目。端点指定被用来自和至主计算机系统传达数据的数据格式;客户机应用程序负责适当地为它与其通信的端点而格式化数据,作为端点合约的一部分。端点的例子包括简单内容呈现器(数据格式是简单内容格式)、日历呈现器(数据格式是iCal)和通知引擎。
图6示出了包括个人信息管理器(PIM)应用程序670、媒体应用应用程序672和电话应用应用程序674的不同的示例客户机应用程序如何可以与包括增强型显示器676和移动电话678的示例设备进行通信。应用程序提供关于端点的数据,并且,平台使用该端点来确定将该数据传达给哪个或哪些设备。这样,在图6的例子中,如经由方框682和683所表示的,PIM应用程序670指定日历端点数据680,由增强型显示器676作为该数据的副本681来消耗,增强型显示器676也消耗来自媒体应用程序672的普通端点数据。如经由方框682、684和685所表示的,移动电话678消耗来自PIM应用程序670和应用程序672的普通数据。如经由方框686和687所表示的,移动电话678也消耗电话端点数据。虽然在图4的例子中未示出,但是,可以被支持的端点的其他例子包括电子邮件和联系人数据。
虽然对于本发明而言是不必要的,但是,可以为特殊内容保留某些内容标识符。例如,在每个客户机应用程序的内容ID名字空间中保留最高级应用程序“扫视(glance)”信息(作为内容ID“0”元数据),以表示将要被显示为关于那个应用程序的最高级扫视信息的数据。扫视信息通常是简明数据,它被应用程序认为非常重要,可用于显示在设备的主菜单上(尽管用于单行显示,这可能是被显示的唯一内容)。例如,对于电子邮件呈现器,最高级应用程序扫视信息可能是“7个未读的消息”;而对于日历应用程序,最高级应用程序扫视信息可以描述下一次约会的时间和地点。API强制实施扫视信息格式化是可行的,例如,数据可能需要被提供为将要被接受的统一码(Unicode)零终止字符串。
在一项实现中,如图7中通常所表示的,在包括COM接口集的非受管代码中实现公用客户机API集304。客户机应用程序在其过程中创建对象/接口中的一个或多个对象/接口的实例,然后使用那些对象与辅助显示平台进行通信。图7表现了示出它们实现的主要类和接口的一般体系结构图;注意,每个COM对象也提供IUnknown(未知)接口,为清楚起见而从图7中省略它。
配置管理器760包括用于处理设备和应用程序配置信息的共享内部组件。CRegistrar(注册者)类(对象)762实现IAuxiliaryDisplayRegistrar(辅助显示器注册者)接口、以及AuxiliaryDisplayRegistrar CoClass(联合类)。CRegistrar类762保持与API实例使用的设备相对应的IPortableDevice(便携式设备)接口指针列表。这个列表在Register或RegisterNotifications(注册通知)调用上被填充,并可以在任何时候被添加和移除。CRegistrar类762监听PnP设备事件764,以确定何时从该系统添加/移除设备,并且适当地更新其本地列表,并通知受到该变化影响的任何现存的客户机(CNotificationManager(通知管理器)或CContentManager(内容管理器)对象)。CRegistrar类762也负责应用程序和设备许可检验,以确定是否授权应用程序使用设备,从而将共享的配置管理器库用作进入该数据的接口。维护例示的对象(CNotificationManager或CContentManager)的列表;当对本身和CRegistrar的所有引用离开时(即,当API被卸载时),这些对象只是离开。
CNotificationManager类/对象766实现IAuxiliaryDisplayNotificationManager(辅助显示器通知管理器)接口。当创建CNotificationManager类766时,应用程序标识符(ID)与实例相关联,并且,它没有被更改。例示CNotificationManager对象766的CRegistrar对象762传入与为通知而启用的每个设备相对应的一个IPortableDeviceContent(便携式设备内容)指针。在对象的整个生存期内,由来自CRegistrar对象762的类似的方法调用来实现对这个设备列表的随后的更改。可能存储有内部元数据,以便在显示通知时跟踪被提供回给调用应用程序的cookies。CNotificationManager类/对象766负责采用IauxiliaryDisplayNotification(辅助显示器通知)对象、提取数据、并使用便携式设备API 310的IPortableDeviceContent接口将它发送到每个设备。由于跨越各个设备而一致地对待通知,因此,可以为每个已知的设备重复相同的操作。
Cnotification(通知)类768是数据容器。它实现IAuxiliaryDisplayNotification接口、以及AuxiliaryDisplayNotification CoClass(所以,客户机可以共同创建实例)。
CContentManager类/对象770实现IAuxiliaryDisplayContentManager(辅助显示器内容管理器)接口。它由CRegistrar类762响应于Register方法调用来创建。CContentManager类/对象770需要利用被传递到Register的应用程序ID和端点ID来初始化,并且,这些一旦被设置,就不被更改。CRegistrar对象762负责咨询配置表格,以确定为特定的应用程序/端点对启用哪些设备。然后,它向CContentManager传递关于每个匹配设备的IPortableDeviceContent接口指针。随后的设备添加/移除将使用相同的机制来向CContentManager对象770传达变化。此外,关于存储在本地的每个设备接口,CContentManager对象770存储对应的CDeviceCapabilities(设备性能)对象772(或IAuxiliaryDisplayCapabilities(辅助显示器性能)接口)。这是预期对这个对象的频繁需求的优化。
在CContentManager对象770中提供方法,用于添加内容、移除特殊内容、或移除全部内容。为此,Add(添加)方法调用询问引入的IAuxiliaryDisplayContent接口,以获得关于可应用于该调用的部分属性的值;然后,根据结果,迭代通过设备,向客户机应用程序请求内容,并将内容向下发送到设备。Remove(移除)调用试图从每个设备中移除一个特定内容。另一个方法处理设立事件宿;由客户机应用程序传入的IAuxiliaryDisplayEvents(辅助显示器事件)接口指针被存储,并被用于通知关于各种事件的应用程序。响应于从CRegistrar对象762进入的事件,来触发设备事件。CContentManager类770可以实现IPortableDeviceEventCallback(便携式设备事件回叫)接口,并且,CRegistrar对象762可以为事件注册;然后,CContentManager 762负责适当地分析和委派那些事件。
CDeviceCapabilities类772实现IAuxiliaryDisplayCapabilities接口。这些由CContentManager对象770创建,以便与它在其上显示内容的每个设备相符。在内部,它引用IPortableDeviceProperties(便携式设备属性)接口,所以,它能够直接从设备询问设备属性。设备性能可以包括设备是否具有高速缓存、屏幕类型(例如,位图、文本或单行显示)、屏幕宽度、屏幕高度、颜色深度、颜色类型(例如,彩色、灰度级、黑白)等。
图8描述了应用程序306如何与CRegistrar和CContentManager对象(分别是图7中的762和770)一起运作以便将内容加入设备。一般而言,当想要使用辅助显示器的客户机应用程序304在主计算机系统上启动时,(或在某个其他适当的时间),应用程序经由对CRegistrar对象762的注册请求来向辅助显示平台注册。成功的注册将内容管理接口的实例(例如,作为指针)返回到应用程序。通常在图8中经由标注为一(1)和二(2)的箭头来表示这一点。
为了将内容加入设备,应用程序304实现的平台可以用来获取关于内容和内容主体的元数据的接口。这是拉出模型,在那里,平台从应用程序中拉出数据。如图8中通常经由标注为三(3)的箭头所表示的,为了添加内容,应用程序通过调用CContentManager对象770上的方法、将指针传递到封装内容的对象,来起动该程序。然后,CContentManager对象770回叫入该封装对象,以便检索内容并将它发送到被连接的设备。一些设备可以高速缓存数据,而其他设备可能不会高速缓存数据(例如,由于没有高速缓存、存储器条件低等);这样,应用程序可以经由事件来被通知,以再发送数据。每个内容具有唯一的ID(在应用程序的范围内),并且,设备和平台通过这个ID来参考这个内容。通常在图8中经由标注为四(4)和五(5)的箭头来表示这些操作。
当应用程序添加数据时,应用程序可能正将该数据发送到多个设备。由于不同的设备具有不同的特征,因此,在一些情况中,应用程序可以决定专门研究每一设备的内容。如通常在图8中经由标注为六(6)和七(7)的箭头所表示的,这在内容元数据中指定。如果应用程序指定它有兴趣被所有设备的平台为内容而调用一次,那么,该应用程序例如经由真/假数据,即经由“假”响应,指定不想要每一设备调用。当指定关于全部的内容(假)时,标注为八-A(8A)和九-A(9A)的箭头示出这些操作。
作为选择,当应用程序想要个别地为每个设备而被回叫(“真”响应)以便根据设备特征来提供内容时,标注为八-B(8B)和九-B(9B)的箭头示出这些操作。当发生这种情况时,为每个设备重复请求和获得内容过程(例如,标注为十(10)和十一(11)的箭头),为每个设备授权应用程序来发送内容。
如图4中所表示的,可以提供生存期管理器434,来监听客户机应用程序和设备的激活状态中的变化,并通知客户机应用程序。通过在不同的过程中共同创建注册类,然后利用适当的参数来调用Startup(启动)方法,可以起动客户机应用程序。应用程序可以实现API集,该API集提供关于辅助显示应用程序的生存期相关功能。平台的组件负责根据被连接的设备集来开始和停止应用程序。作为选择,应用程序可以管理其自己的生存期;当设备被连接或断开时,应用程序获得通知,并且,当它没有设备要向其提供内容时,应用程序经常可能正在运行。
如图4中所表示的,由生存期管理器434来起动客户机过程(除非已在运行)。客户机过程负责与管理客户机应用程序及其在设备上的内容相关联的逻辑,并且是主计算机系统对运行于辅助显示设备上的设备应用程序的相对物。如上所述,客户机代码306通过向平台注册来启动与辅助显示平台的通信。这个调用将辅助显示客户机API以及便携式设备API装载入客户机进程的地址空间。便携式设备API跨越进程边界处理与连接到辅助显示设备的驱动程序的通信。
驱动程序进程由用户模式驱动程序框架进程创建。驱动程序展示与便携式设备API进行通信的设备驱动程序接口。客户机API将不会直接与这些进程交互。当安装客户机应用程序时,它指定作为GUID的应用程序Id。这个应用程序Id应该是实现IAuxiliaryDisplayApplication(辅助显示器应用程序)接口的COM组件的CLSID。生存期管理器434使用应用程序Id来共同创建客户机应用程序的进程外(out-of-proc)COM服务器实例。它调用IAuxiliaryDisplayApplication接口上的方法,从而指出:客户机应用程序何时具有至少1个设备来对话(启动)、以及何时没有设备来对话(关闭)。另外,为了在面对应用程序崩溃时具有健壮性,可以使用“心跳”方法来检验应用程序是否仍然在运行。
注意,应该由ISV在其自己的进程中共同创建IAuxiliaryDisplayRegistrar的实例,以便与API集304进行通信。这个途径允许应用程序彼此隔离,同时,保留在应用程序的进程中运行API的好处。
应用程序可以支持多个内容格式,但是,客户机API(IAuxiliaryDisplayContentManager)的每个实例只支持单一内容格式。如上所述,当安装应用程序时,它提供它支持的端点优先级排序列表。在内部,在设备展示端点与应用程序较佳端点之间进行映射,以获得关于设备的内容格式的最佳匹配。基本上,通过向下观察该列表直到发现匹配,在可用时选择最高优先级内容格式。如果应用程序与设备之间有任何共同的端点,则控制面板示出复选框。但是,客户机API确定在运行时使用的实际端点,因为该列表可以改变。客户机应用程序为它支持的每个端点调用IAuxiliaryDisplayRegistrar∷Register一次;应用程序为每个内容格式获得一个IAuxiliaryDisplayContentManager接口。在一项当前的实现中,每个设备只从这些接口中的至多一个接口接收内容。这样,应用程序可以具有一个中央数据源,从而与多个API接口对话,这多个API接口与多个设备对话,其中的每个设备支持不同的内容格式。这个途径保持API内的隔离,这使它用起来易懂、简单,同时,允许ISV按直观方式支持多个内容格式。在控制面板中,每个应用程序可以作为单行出现,而不管它支持多少内容格式。
转向可以被应用程序发送到辅助设备的通知的解释,平台支持辅助显示器上的通知(或警报)的显示。例如,可以发送关于诸如会议提示、电子邮件警报、密友登录、系统警报等重要事件的通知,用于显示在辅助设备上。在一项实现中,通知通常实时地出现在任何现存的设备应用程序之上,并为用户提供解散它们的方法(在自动期满之前)。被发送到辅助显示平台的通知可以包含标题、消息主体和图标,并与截止时间相关联。该截止时间(例如,绝对或相对时间)为设备提供以下指导:如果用户还没有与它交互,则它何时可以移除通知。
从应用程序306的观点出发,而不管设备性能如何,通知通常可以使用同一通知API。这样,诸如图像、图标、控件(例如,按钮)、菜单等标题、文本和可任选信息可以被指定为参数。不能制图的设备将具有被剥夺除文本以外的任何东西的信息,甚至文本也可以被修改成适合特定设备显示,例如通过随时间的推移而交替行。注意,内容通常可以被下载到增强型设备上的高速缓存,或经要求而被下载,并且,设备本身随后将按需要处理该内容。这允许在该系统上运行能够提供内容的多个客户机应用程序,一个设备应用程序在某时运行于辅助显示器上。通知将故意利用当前运行的设备应用程序。通知可以被安排用于按任何合适的排序呈现(例如,按FIFO(先进先出)方式),虽然可以容易地理解这一点,但是,在各种类型的通知之中可能有不同的优先级(例如,与常见的或老的通知相比,可以给紧急的、新近的或做标记的通知更高的优先级)。
图9描述了客户机应用程序306如何与CRegistrar对象762和CNotificationManager对象766一起运作以便将通知发送到一个或多个设备。一般而言,当应用程序304想要发送通知给辅助显示器时,该应用程序经由对CRegistrar对象762的RegisterNotifications请求来注册通知。成功的注册将CNotificationManager对象766的实例(例如,作为指针)返回到应用程序。通常在图9中经由标注为一(1)和二(2)的箭头来表示这一点。
如通常在图8中经由标注为三(3)的箭头所表示的,应用程序306通过调用CNotificationManager对象766上的方法来启动该程序。如通常在图9中经由标注为四(4)和五(5)的箭头所表示的,CNotificationManager对象766随后回叫到应用程序304(或如在图7中由应用程序指定的CNotification对象768),以获得关于通知的标识符。如通常在图9中经由标注为六(6)至十一(11)的箭头所表示的,然后作出关于标题、消息(文本)、图标/图像和截止时间的随后的回叫。
如通常在图9中经由标注为十二(12)的箭头所表示的,利用该信息,CNotificationManager对象766将通知发送到一个或多个被连接的设备。在一项当前的实现中,授权应用程序与其通信的每个设备接收通知,但是,具有一种选择性机制是可行的,在该机制中,客户机应用程序可以有选择地指定:只有其经授权的设备中的某些设备可接收通知。具有这样一种机制也是可行的,在该机制中,以不同方式格式化的通知信息被发送到不同类型的设备(类似于通常参照图8描述的每一设备内容区别机制)。
除发送通知以外,应用程序同样可以请求撤回通知或撤回其所有通知。例如,用户可以解散主计算机系统上的通知,并且,应用程序可以决定:应该从一个或多个辅助设备那里撤回通知。
对于事件,应用程序可以指定用于从平台接收各种类型的事件的接口。根据控制面板配置表格或类似物,平台将与设备有关的事件发送到被适当授权的应用程序。事件可以包括关于设备添加和移除或连接和断开的事件通知(包括无线越界、设备崩溃)、以及响应于关于被连接设备的属性(例如,屏幕大小、颜色深浅度、数据高速缓存的存在等)的询问的事件。事件发生机制也指定关于按键的通知事件,并扩展到自定义端点。当辅助设备需要它不容易获得的一个内容时,也生成内容-请求事件。
辅助设备上的应用程序也能够生成诸如设备导航事件(例如,内容丢失、需要刷新等等)、选择事件(用户在对话中按压按钮、选择显示图标、解散通知等等)、以及上下文菜单动作等事件。其他事件可能是占先的,例如,播放音频应用程序的音轨七的设备可以预期需要音轨八的数据,并预先发送关于该数据的请求。辅助设备应用程序生成的事件传播回到在主计算机系统上运行的客户机应用程序(当在线时)。
事件的语义和内容由端点来定义。一般而言,事件标识它来自那里的设备、它来自那里的设备应用程序/端点、以及伴随事件的数据。例如(使用简单内容格式端点),当用户从一个内容行进到另一个内容时,导航事件被发送回到主计算机系统,以报告用户做了什么。应用程序可以选择按合适的方式响应于这个事件。
接口和概述
以下陈述在整个API集内使用的公用类型的定义:
typedef GUID APPLICATION_ID;typedef GUID ENDPOINT_ID;typedef GUID DEVICE_ID;typedef REFGUID REFAPPLICATION_ID;typedef REFGUID REFENDPOINT_ID;typedef REFGUID REFDEVICE_ID;typedef ENDPOINT_ID *PENDPOINT_ID;typedef APPLICATION_ID *PAPPLICATION_ID;typedef DEVICE_ID *PDEVICE_ID;typedef unsigned long CONTENT_ID;typedef CONTENT_ID *PCONTENT_ID;typedef unsigned long NOTIFICATION_ID;typedef NOTIFICATION_ID*PNOTIFICATION_ID; |
以下包含关于辅助显示平台的接口定义文件的一个例子(这些接口在以上描述,并通常在以下概括):
//------------------------------------------------------------------//<见版权放弃声明>////模块:// AuxiliaryDisplay.idl////描述://这是关于辅助显示器API的接口定义文件。//它定义ISV所使用的公用接口。////------------------------------------------------------------------import″oaidl.idl″;import″propidl.idl″;//包括IDL中没有定义的辅助显示器类型#include″AuxiliaryDisplayTypes.h″//前向声明该文件中的接口interface IAuxiliaryDisplayContentManager;interface IAuxiliaryDisplayNotificationManager;interface IAuxiliaryDisplayNotification;interface IAuxiliaryDisplayContent;interface IAuxiliaryDisplayEvents;interface IAuxiliaryDisplayCapabilities;[object,uuid(c07d3735-5d3f-423a-a4a4-4dbf023236e6),helpstring(″IAuxiliaryDisplayApplication Interface″),pointer_default(unique)]interface IAuxiliaryDisplayApplication:IUnknown{HRESULT Startup([in]REFAPPLICATION_ID in_applicationId);HRESULT Shutdown ([in]REFAPPLICATION_ID in_applicationId);HRESULT KeepAlive([in]REFAPPLICATION_ID in_applicationId);};[object,uuid(e22331ee-9e7d-4922-9fc2-ab7aa41ce491),helpstring(″IAuxiliaryDisplayRegistrar Interface″),pointer_default(unique) |
]interface IAuxiliaryDisplayRegistrar:IUnknown{HRESULT Register([in] REFAPPLICATION_ID in_applicationId,[in] REFENDPOINT_ID in_endpointId,[out] IAuxiliaryDisplayContentManager **out_ppIContent);HRESULT RegisterNotifications([in] REFAPPLICATION_ID in_applicationId,[out] IAuxiliaryDisplayNotificationManager**out_ppINotification);};[object,uuid(63cea909-f2b9-4302-b5e1-c68e6d9ab833),helpstring(″IAuxiliaryDisplayNotificationManagerInterface″),pointer_default(unique)]interface IAuxiliaryDisplayNotificationManager:IUnknown{HRESULT Show([in] IAuxiliaryDisplayNotification*in_pINotification);HRESULT Revoke([in] const NOTIFICATION_ID in_notificationId);HRESULT RevokeAll();};[object,uuid(03c93300-8ab2-41c5-9b79-46127a30e148),helpstring(″IAuxiliaryDisplayNotification Interface″),pointer_default(unique)]interfaceIAuxiliaryDisplayNotification:IUnknown{[propget]HRESULT NotificationId([out,retval] PNOTIFICATION_ID out_pNotificationId);[propput]HRESULT NotificationId([in] NOTIFIcATION_ID in_notificationId);[propget]HRESULT Title([out,string,retval]LPWSTR*out_ppwszTitle); |
[propput]HRESULT Title([in,string] LPWSTR in_pwszTitle);[propget]HRESULT Message([out,string,retval] LPWSTR*out_ppwszMessage);[propput]HRESULT Message([in,string] LPWSTR in_pwszMessage);[propget]HRESULT Image([out,retval] HICON*out_phIcon);[propput]HRESULT Image([in] HICON in_hIcon);[propget]HRESULT ExpirationTime([out,retval] SYSTEMTIME *out_pTime);[propput]HRESULT Expirat ionTime([in,unique] SYSTEMTIME *in_pTime);};[object,uuid(a5d5b66b-eef9-41db-8d7e-e17c33ab10b0),helpstring(″IAuxiliaryDisplayContentManager Interface″),pointer_default(unique)]interface IAuxiliaryDisplayContentManager :IUnknown{HRESULT Add ([in] IAuxiliaryDisplayContent *in_pIContent);HRESULT Remove ([in] const CONTENT_ID in_contentId);HRESULT RemoveAll();HRESULT SetEventSink([in,unique] IAuxiliaryDisplayEvents*in_pIEvents |
);HRESULT GetDevices([out]DWORD *out_pdwNumDevices,[out,size_is(,*out_pdwNumDevices)]IAuxiliaryDisplayCapabilities ** out_ppIDevices);};[object,uuid(c18552ed-74ff-4fec-be07-4cfed29d4887),helpstring(″IAuxiliaryDisplayContentInterface″),pointer_default(unique)]interface IAuxiliaryDisplayContent:IUnknown{HRESULT GetContent([in,unique] IAuxiliaryDisplayCapabilities*in_pICapabilities,[out] DWORD * out_pdwSize,[out,size_is(,*out_pdwSize)]BYTE ** out_ppbData);[propget]HRESULT ContentId([out] PCONTENT_ID out_pcontentId);[propget]HRESULT DifferentiateContent([out]BOOL *out_pfDi fferentiateContent);};[object,uuid(61feca4c-deb4-4a7e-8d75-51f1132d615b),helpstring(″IAuxiliaryDisplayEvents Interface″),pointer_default(unique)]interface IAuxiliaryDisplayEvents:IUnknown{HRESULT ContentMissing([in] const CONTENT_ID in_contentId,[out] IAuxiliaryDisplayContent **out_ppIContent);HRESULT ApplicationEvent([in] IAuxiliaryDisplayCapabilities *in_pICapabilities,[in] const DWORD in_dwEventId,[in] const DWORD in_dwEventSize,[in,size_is(in_dwEventSize)]const BYTE*in_pbEventData);HRESULT DeviceAdded([in] IAuxiliaryDisplayCapabilities *in_pIDevice |
);HRESULT DeviceRemoved([in]IAuxiliaryDisplayCapabilities * in_pIDevice);};[object,uuid(535e1379-c09e-4a54-a511-597bab3a72b8),helpstring(″IAuxiliaryDisplayCapabilities Interface″),pointer_default(unique)]interface IAuxiliaryDisplayCapabilities:IUnknown{HRESULT GetCapability([in] REFPROPERTYKEY in_keyCapability,[in,out] PROPVARIANT*out_pValue);};//---------------------------------------------------------//---------------------------------------------------------[uuid(d5cf4ale-69af-4f68-894a-8b54985253ee),version(1.0),helpstring(″MicrosoftAuxiliaryDisplayApi Type Library 1.0″)]library AuxiliaryDisplayApiLib{importlib(″stdole2.tlb″);[uuid(e20543b9-f785-4ea2-981e-c4ffa76bbc7c),helpstring(″AuxiliaryDisplayRegistrar Class″)]coclass AuxiliaryDisplayRegistrar{[default]interface IAuxiliaryDisplayRegistrar;};[uuid(0ce3e86f-d5cd-4525-a766-1abab1a752f5),helpstring(″AuxiliaryDisplayNotification Class″)]coclass AuxiliaryDisplayNotification{[default]interface IAuxiliaryDisplayNotification;};}; |
IAuxiliaryDisplayApplication接口被生存期管理器用来创建客户机应用程序并与其交互。如果它们希望使用生存期管理,则ISV负责在其客户机应用程序中实现这个接口。调用HRESULT Startup(REFAPPLICATION_ID_in_applicationId)方法,来用信号通知:客户机应用程序应该开始与设备进行通信。它指定:有一个或多个设备是给定的应用程序能够向其发送数据的。第一个参数是将要被起动的应用程序的应用程序ID,并且被包括在同一COM对象处理关于多个应用程序的数据的情况中。调用HRESULT Shutdown(REFAPPLICATION_ID_in_applicationId)方法,来用信号通知:客户机应用程序应该停止与设备通信。在Shutdown(关闭)调用之后,生存期管理器释放对客户机应用程序的引用,并且(合乎理想的是)应用程序停歇。HRESULT KeepAlive(REFAPPLICATION_ID_in_applicationId)方法被用作“心跳”。生存期管理器偶尔将会调用它,并期望接收S_OK响应。如果调用(例如,远程过程调用或RPC)超时,或者调用由于某个其他的原因而失败,那么,将重新起动应用程序。
如上所述,IAuxiliaryDisplayRegistrar接口被ISV的客户机应用程序用来启动与辅助显示子系统的“会话”。ISV的应用程序共同创建这个类的实例,并且调用Register方法来获得它随后可以用来为设备提供内容的IAuxiliaryDisplayContentManager接口。被返回的接口在客户机应用程序的生存期内有效。设备可以在后台来来去去,由平台执行管理。如上所述,是API内部构件确定是否授权应用程序与设备对话;如果没有授权应用程序与设备对话,那么,在一项实现中,接口仍然被返回,但是,它将不会向任何设备发送数据(并且,GetDevices返回0)。HRESULT Register(REFAPPLICATION_ID_in_applicationId,REFENDPOINT_ID in_endpointId,IAuxiliaryDisplayContentManager**out_pContent)方法向辅助显示子系统注册ISV的应用程序,并允许客户机应用程序向设备发送内容。第一个参数是应用程序ID,它唯一地标识例如由GUID表示的应用程序。第二个参数是GUID,表示应用程序希望与其通信的设备上的端点。提供这个,以便ISV的应用程序可以支持多个端点(内容格式),因为每个端点对应于单一类型的内容。注意,ISV的应用程序为它希望发送的每个内容格式使用不同的IAuxiliaryDisplayContentManager接口。第三个参数是输出参数,包含ISV应用程序用来发送内容的接口。HRESULT RegisterNotifications(REFAPPLICATION_ID_in_applicationId,IAuxiliaryDisplayNotificationManager**out_pNotification)方法允许ISV应用程序将本身注册为将通知提供给辅助显示器的应用程序。ISV应用程序提供其应用程序ID,并取回对CNotificationManager对象766的IAuxiliaryDisplayNotificationManager接口的指针,它随后被用来管理子系统中的通知。
IAuxiliaryDisplayNotificationManager接口允许ISV应用程序在辅助显示器上显示和隐藏通知。HRESULT Show(IAuxiliaryDisplayNotification*in_pNotification)方法使通知被显示在支持通知的被连接的经授权的辅助设备上。该参数是实现IAuxiliaryDisplayNotification接口的类的实例。该接口本质上包含示出通知所必要的有关的部分。HRESULT Revoke(const NOTIFICATION_ID in_notificationId)方法允许ISV应用程序取消所有适当的设备上的单一通知。如上所述,该参数包括从调用被返回到Show(显示)的cookie。如果通知当前正被显示或正在待决(要么是被延迟的通知,要么被另一个通知阻止),那么,只移除它。HRESULT RevokeAll()方法允许ISV移除所有未决通知。
IAuxiliaryDisplayNotification接口提供用于存储和检索通知的关键部分的方法。[propget]HRESULT NotificationId(PNOTIFICATION_ID in_pnotificationId)和[propput]HRESULT NotificationId(NOTIFICATION_ID in_notificationId)方法允许API/ISV设置/检索通知ID。默认值是0。该值唯一地标识应用程序内的通知。[propget]HRESULT Title(LPWSTR*out_ppwszTitle)和[propput]HRESULT Title(LPWSTR in_pwszTitle)方法允许API/ISV设置/检索通知的当前标题。可能有默认值(例如,“Notifcation”)。[propget]HRESULT Message(LPWSTR*out_ppwszMessage)和[propput]HRESULT Message(LPWSTR in_pwszMessage)方法允许API/ISV设置/检索通知的当前消息主体。这是向用户显示的消息的大部分。[propget]HRESULT Image(HICON*out_phIcon)和[propput]HRESULT Image(HICON in_hIcon)方法允许API/ISV设置/检索被显示为通知的一部分的图像。该图像将根据设备比例缩放到合适,并可以用标准格式来提供。[propget]HRESULTExpirationTime(PSYSTEMTIME out_pExpirationTime)和[propput]HRESULTExpirationTime(PSYSTEMTIME in_pExpirationTime)方法允许API/ISV设置/检索通知应该到期的时间。默认值是“0”,从而指出:通知将永远不会到期(并且,用户需要解散它)。在一项实现中,时间被指定为绝对时间;不管通知是否已被显示,它都将在截止时间自毁。应该由设备或驱动程序上的固件来适当地兑现截止时间。
IAuxiliaryDisplayContentManager接口是允许ISV将内容发送到辅助显示器的接口。这个接口是普通的,并接受被指定用于任何端点的任何类型的内容,但是,这个接口的每个特定实例只接受关于单一端点(和因而单一类型)的内容。HRESULT Add(IAuxiliaryDisplayContent*in_pContent)方法允许ISV将内容加入它正在其上被显示的设备的高速缓存。第一个参数是指向从其中拉出内容的ISV所实现的接口的指针。HRESULT Remove(const CONTENT_ID in_contentId)方法允许ISV从任何设备中移除一个特定内容。该参数是将要被移除的内容的内容ID。如果该项目存在于任何当前被连接的设备的高速缓存中,则将移除它。不保证它在任何设备的高速缓存中,也不保证它用于当前被断开的设备。HRESULT RemoveAll()方法允许ISV从所有设备上的高速缓存中移除与ISV的应用程序相关联的全部内容。HRESULT SetEventSink(IAuxiliaryDisplayEvents*in_pEvents)方法允许ISV应用程序指定要使用的回叫接口从设备接收事件。该参数包含指向实现IAuxiliaryDisplayEvents接口的类的实例的指针。如果这个值是“零”或无效,则不执行对ISV应用程序的回叫。HRESULT GetDevices(DWORD*out_pdwNumDevices,IAuxiliaryDisplayCapabilities**out_ppDevices)方法允许ISV应用程序列举已为那个应用程序授权的当前被连接的设备。这个方法将指针叔祖返回到IAuxiliaryDisplayCapabilities对象,这些IAuxiliaryDisplayCapabilities对象提供关于每个经授权的设备的性能的一些信息。DWORD参数包含被返回的设备数量。应用程序可以使用这个方法来确定应用程序需要多少设备和什么类型的设备来生成内容;如果应用程序关心根据性能来区别其内容,那么,这个方法允许应用程序确定那一点并预先生成适当的内容。作为选择,这个方法返回计数器对设备性能的实现是可行的。
IAuxiliaryDisplayContent接口由ISV应用程序实现,并被API用来回叫和从应用程序拉出内容。HRESULT GetContent(IAuxiliaryDisplayCapabilities*in_pCapabilities,DWORD*out-pdwSize,BYTE**out_ppbData)方法被API调用,以便从ISV应用程序中检索内容。调用这个的方式取决于DifferentiateContent(区别内容)属性的值;如果应用程序指出它关心设备性能,则每一设备回叫这个方法一次,第一个参数是指向适当的IAuxiliaryDisplayCapabilities接口的指针。如果应用程序指出它不关心每一设备性能,那么,这个方法只被调用一次,并且,第一个参数是“零”指针。第二个参数包含用户将设置成指向其数据的字节指针。第三个参数是ISV用被返回的内容的尺寸填充的输出指针。ISV应用程序使用CoTaskMenAlloc来分配内存,以便从这个方法调用返回;结果,当完成时,API的责任是释放数据。[propget]HRESULT ContentId(PCONTENT_ID out_pcontentId)方法被API调用,以检索与实际内容相关联的内容ID。不管ISV应用程序是否根据设备性能来区别内容,这个方法都被调用一次。出于可管理的目的而在这个接口上提供它,以便使ISV应用程序更容易地跟踪与任何特定内容相关联的内容ID。[propget]HRESULT DifferentiateContent(BOOL*out_pfDifferentiateContent)方法被API调用,以检索指出ISV应用程序是否希望根据设备性能来区别其内容的标记。本质上,它被用来确定:GetContent是每一设备被调用一次,还是每一所有适当的设备被调用一次。如果值是“真”,则这指出ISV应用程序想要每一设备被回叫一次;如果值是“假”,则它指出ISV想要每一内容项目被回叫一次。
IAuxiliaryDisplayEvents接口由ISV应用程序实现,并被API集用来回叫具有事件的应用程序。如果ISV应用程序不关心事件,则它不需要实现这个接口。但是,ISV应用程序将最有可能这样做。当某个数据在设备上被要求、但不存在时,由设备生成HRESULT ContentMissing(const CONTENT_ID in_contentId,IAuxiliaryDisplayContent**out pContent)事件。第一个参数包含失去的内容的内容ID,第二个参数是允许ISV提供那个失去的内容的输出参数。在内部,这被处理,如同当处理第二个参数时ISV调用IAuxiliaryDisplayContentManager∷Add一样;内容可以被发送到所有设备,或只被发送到具有内容请求的设备。注意,ISV应用程序无法确定什么设备生成事件。HRESULT ApplicationEvent(IAuxiliaryDisplayCapabilities*in_pCapabilities,const DWORD in_dwEventId,constDWORD in_dwEventSize,const BYTE*in_pbEventData)事件由设备应用程序生成,并包含端点专用事件信息。第一个参数是描述事件起源于那里的设备的接口指针。第二个参数是事件ID,它对于那个特定端点而言是唯一的。每个端点可以定义事件ID和相关联的数据的集合,它可以由ISV应用程序来解释。例如,可以提供助手对象,以便为来自简单内容格式的应用程序事件解码。第三个参数包含事件数据的大小,第四个参数包含指向实际数据的指针。HRESULT DeviceAdded(IAuxiliaryDisplayCapabilities*in_pDevice)事件由API生成,并通知ISV应用程序:应用程序现在正被显示在额外的设备上。第一个参数包含指向那个新设备的性能的指针。注意,这个事件的发生可以作为用户经由辅助显示控制面板启用应用程序的结果,而不只是作为新设备被连接的结果。HRESULT DeviceRemoved(IAuxiliaryDisplayCapabilities*in_pDevice)事件由API生成,并通知ISV应用程序:应用程序不再被显示在设备上。第一个参数包含指向正被移除的设备的性能的指针。注意,这个事件的发生可以作为用户经由辅助显示控制面板禁用应用程序”的结果,而不只是作为设备被移除的结果。
IAuxiliaryDisplayCapabilities接口由API实施,并为ISV应用程序提供关于其上正显示应用程序的各种设备的有用信息。这个接口的目的是:提供足够的信息,以允许ISV应用程序使其内容(如果适当的话)配合不同设备的特定特征。提供公用性能ID(PROPERTYKEYs)的基本集合,但允许IHV可扩展性。HRESULTGetCapability (REFPROPERTYKEY in_pkeyCapability,PROPVARIANT *out_pvarData)方法提供用于询问设备性能的普通机制。第一个参数是表示要获得的性能的PROPERTYKEY。第二个参数是指向适当初始化的PROPVARIANT的指针。被返回的数据的类型取决于与那个特定属性关联的类型。调用者的责任是释放最后得到的数据。
结论
从前述内容中可见,本发明提供一种包括接口集的辅助显示平台,通过该接口集,客户机应用程序可以简单地、一致地与各种辅助显示器交互,而不管各种设备实施之间的差异如何。该交互包括显示从客户机应用程序发送的信息,包括将要被高速缓存或呈现在设备上的内容和通知;设备也可以将事件和数据发送到应用程序。为了提供信息并接收事件,客户机应用程序不需要处理每个设备的特定性能,但如果需要的话,可以询问设备性能,以便在每个设备上显示定制的信息。这样,本发明提供了当代计算中所需要的众多好处和优点。
本发明容许各种修改和选择性构造,但其某些说明性实施例在附图中示出并在以上加以详细描述。但是,应该理解:并不意在将本发明局限于所揭示的一个或多个具体形式,而相反,意在包括处于本发明的精神和范围以内的所有修改、选择性构造和等效技术方案。
Claims (20)
1.在具有主计算机系统和与其耦合的至少一个辅助设备的计算环境中的一种方法,包括:
提供抽象层,通过所述抽象层,所述主计算机系统上的客户机应用程序可以提供用于独立于任何特定设备实现而发送到一个或多个辅助设备的信息;以及
在所述抽象层接收针对将信息从客户机应用程序发送到辅助设备的请求,并且作为响应,根据每个设备的特定设备实现来将所述应用程序所提供的信息发送到至少一个设备。
2.如权利要求1所述的方法,其特征在于,所述要发送的信息对应于内容,并且其中,发送所述信息包括以设备无关格式从所述客户机应用程序中拉出所述信息。
3.如权利要求1所述的方法,其特征在于,所述抽象层包括对象的API集,其中,所述对象中的一个包括内容管理器对象,并且其中,接收所述请求包括在被提供给所述应用程序的内容管理器对象的接口处接收调用,并回叫到所述应用程序,以获得所述要发送的信息。
4.如权利要求1所述的方法,其特征在于,所述要发送的信息对应于通知,并且其中,发送所述信息包括以设备无关格式从所述客户机应用程序中拉出所述信息。
5.如权利要求1所述的方法,其特征在于,所述抽象层包括对象的API集,其中,所述对象中的一个包括通知管理器对象,并且其中,接收所述请求包括在被提供给所述应用程序的通知管理器对象的接口处接收调用,并回叫到所述应用程序,以获得所述要发送的通知相关信息。
6.如权利要求1所述的方法,其特征在于,还包括在注册调用期间,从客户机应用程序接收指定的端点。
7.如权利要求6所述的方法,其特征在于,还包括响应于所述注册调用而评估是否授权所述客户机应用程序使用所指定的端点来向设备发送信息。
8.至少一个具有计算机可执行指令的计算机可读介质,当所述指令被执行时,实现如权利要求1所述的方法。
9.在具有主计算机系统和与其耦合的辅助设备的计算环境中的一种系统,包括:
所述主计算机系统上的辅助平台,所述辅助平台包括客户机API集,所述客户机API集包括:
注册对象,它从运行于所述主计算机系统上的客户机应用程序接收调用,所述调用标识所述应用程序并请求将内容发送到辅助设备的端点,所述注册对象被配置成例示内容管理器对象,并响应于所述调用,将指向所述内容管理器对象的指针返回到所述应用程序;以及
所述内容管理器对象被配置成响应于来自所述应用程序的调用从所述应用程序获得内容,并将所述应用程序所提供的内容传达给所述端点。
10.如权利要求9所述的系统,其特征在于,所述注册对象评估是否授权所述客户机应用程序使用所指定的端点来向设备发送信息。
11.如权利要求9所述的系统,其特征在于,还包括通知管理器对象,所述通知管理器对象由所述注册对象响应于来自所述客户机应用程序的、针对在辅助显示设备上显示通知的注册请求而例示,所述通知管理器对象被配置成响应于来自所述应用程序的调用而从所述应用程序获得通知数据,并将所述应用程序所提供的通知数据传达给所述端点。
12.如权利要求10所述的系统,其特征在于,所述通知数据包括包含标题、消息、图像数据和截止时间的集合中的数据的至少一个项。
13.如权利要求9所述的系统,其特征在于,所述客户机应用程序根据对应于所述端点的合约来向所述辅助设备传达内容,并且其中,所述内容管理器不与所述内容交互。
14.如权利要求9所述的系统,其特征在于,从所述应用程序获得的内容是由对于所述应用程序唯一的内容标识符来标识的。
15.如权利要求9所述的系统,其特征在于,还包括另一客户机应用程序,其中,所述客户机API集相对于辅助设备通信将所述客户机应用程序彼此隔离。
16.如权利要求9所述的系统,其特征在于,还包括另一端点,其中,所述客户机应用程序根据单独的合约来向每个端点传达内容,每个合约对应于每个端点。
17.如权利要求16所述的系统,其特征在于,所述端点对应于不同的辅助设备上的不同程序。
18.如权利要求9所述的系统,其特征在于,还包括生存期管理器,所述生存期管理器将生存期相关通知提供给与所述辅助设备的操作状态相对应的客户机管理器。
19.在具有主计算机系统和与其耦合的至少一个辅助设备的计算环境中的一种系统,包括:
接口,通过所述接口,所述主计算机系统上的客户机应用程序可以提供用于独立于任何特定设备实现而发送到一个或多个辅助设备的信息;
用于经由所述接口注册用于将内容或通知从客户机应用程序发送到辅助设备的客户应用程序的装置;
用于获得所述客户机应用程序所提供的信息的装置,所述信息对应于所述内容或通知;以及,
用于将所述信息发送到至少一个辅助设备的装置。
20.如权利要求19所述的系统,其特征在于,还包括用于经由所述接口注册用于从辅助设备接收事件的客户机应用程序的装置、用于从辅助设备接收事件的装置、以及用于将事件传播到客户机应用程序的装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/053,186 US7784065B2 (en) | 2005-02-07 | 2005-02-07 | Interface for consistent program interaction with auxiliary computing devices |
US11/053,186 | 2005-02-07 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1818860A true CN1818860A (zh) | 2006-08-16 |
Family
ID=36588918
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2006100046053A Pending CN1818860A (zh) | 2005-02-07 | 2006-01-28 | 用于与辅助计算设备的一致程序交互的接口 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7784065B2 (zh) |
EP (1) | EP1688838A2 (zh) |
JP (1) | JP2007048259A (zh) |
KR (1) | KR20060090168A (zh) |
CN (1) | CN1818860A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102609300A (zh) * | 2010-12-23 | 2012-07-25 | 微软公司 | 用于com聚集的受保护和虚拟接口 |
Families Citing this family (52)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8479189B2 (en) | 2000-11-17 | 2013-07-02 | Hewlett-Packard Development Company, L.P. | Pattern detection preprocessor in an electronic device update generation system |
US7409685B2 (en) | 2002-04-12 | 2008-08-05 | Hewlett-Packard Development Company, L.P. | Initialization and update of software and/or firmware in electronic devices |
US20040235520A1 (en) | 2003-05-20 | 2004-11-25 | Cadiz Jonathan Jay | Enhanced telephony computer user interface allowing user interaction and control of a telephone using a personal computer |
US7974613B1 (en) * | 2003-06-16 | 2011-07-05 | Hewlett-Packard Development Company, L.P. | Device capability determination for a mobile device |
US8555273B1 (en) | 2003-09-17 | 2013-10-08 | Palm. Inc. | Network for updating electronic devices |
US7216221B2 (en) | 2003-09-30 | 2007-05-08 | Microsoft Corporation | Method and system for unified audio control on a personal computer |
US7904895B1 (en) | 2004-04-21 | 2011-03-08 | Hewlett-Packard Develpment Company, L.P. | Firmware update in electronic devices employing update agent in a flash memory card |
US8453065B2 (en) | 2004-06-25 | 2013-05-28 | Apple Inc. | Preview and installation of user interface elements in a display environment |
US8526940B1 (en) | 2004-08-17 | 2013-09-03 | Palm, Inc. | Centralized rules repository for smart phone customer care |
US7711868B2 (en) | 2004-11-23 | 2010-05-04 | Microsoft Corporation | Waking a main computer system to pre-fetch data for an auxiliary computing device |
US7743336B2 (en) | 2005-10-27 | 2010-06-22 | Apple Inc. | Widget security |
US9104294B2 (en) | 2005-10-27 | 2015-08-11 | Apple Inc. | Linked widgets |
US8543824B2 (en) | 2005-10-27 | 2013-09-24 | Apple Inc. | Safe distribution and use of content |
US7752556B2 (en) | 2005-10-27 | 2010-07-06 | Apple Inc. | Workflow widgets |
US7707514B2 (en) | 2005-11-18 | 2010-04-27 | Apple Inc. | Management of user interface elements in a display environment |
US20070244793A1 (en) * | 2006-04-14 | 2007-10-18 | Swaptree, Inc. | Automated Transaction System and Method with Electronic Notification |
US20070244769A1 (en) * | 2006-04-14 | 2007-10-18 | Swaptree, Inc. | User interaction for trading system and method |
US20070255624A1 (en) * | 2006-04-14 | 2007-11-01 | Swaptree, Inc. | Automated Trading System and Method |
US7742978B2 (en) * | 2006-04-14 | 2010-06-22 | Swaptree, Inc. | Multi-transaction system and method |
US20070244770A1 (en) * | 2006-04-14 | 2007-10-18 | Swaptree, Inc. | Automated trading system and method database |
US20070244772A1 (en) * | 2006-04-14 | 2007-10-18 | Swaptree, Inc. | Marketing system and methods in automated trading context |
US20070283239A1 (en) * | 2006-05-30 | 2007-12-06 | Robert Paul Morris | Methods, systems, and computer program products for providing a user interaction model for use by a device |
EP2025095A2 (en) | 2006-06-08 | 2009-02-18 | Hewlett-Packard Development Company, L.P. | Device management in a network |
WO2008014454A2 (en) | 2006-07-27 | 2008-01-31 | Hewlett-Packard Development Company, L.P. | User experience and dependency management in a mobile device |
US8869027B2 (en) | 2006-08-04 | 2014-10-21 | Apple Inc. | Management and generation of dashboards |
US8629814B2 (en) | 2006-09-14 | 2014-01-14 | Quickbiz Holdings Limited | Controlling complementary bistable and refresh-based displays |
TWI329265B (en) * | 2007-01-16 | 2010-08-21 | Asustek Comp Inc | Portable computer |
US8316308B2 (en) * | 2007-06-08 | 2012-11-20 | Google Inc. | Adaptive user interface for multi-source systems |
US8954871B2 (en) | 2007-07-18 | 2015-02-10 | Apple Inc. | User-centric widgets and dashboards |
US20090021486A1 (en) * | 2007-07-19 | 2009-01-22 | Apple Inc. | Dashboard Surfaces |
US8590012B2 (en) * | 2007-08-27 | 2013-11-19 | Microsoft Corporation | Network access control based on program state |
US7926072B2 (en) * | 2007-10-01 | 2011-04-12 | Spring Design Co. Ltd. | Application programming interface for providing native and non-native display utility |
US20090172710A1 (en) * | 2007-12-28 | 2009-07-02 | Arman Toorians | Method and system for enabling a mini program on a computing device to access an auxiliary system |
US8151256B2 (en) * | 2008-01-31 | 2012-04-03 | Oracle America, Inc. | Platform independent registry framework |
US8365202B2 (en) * | 2008-02-04 | 2013-01-29 | Microsoft Corporation | Framework for computing device with auxiliary display |
US9448814B2 (en) * | 2008-02-19 | 2016-09-20 | Google Inc. | Bridge system for auxiliary display devices |
US9501963B2 (en) * | 2008-07-18 | 2016-11-22 | Hewlett-Packard Development Company, L.P. | Color profiling of monitors |
EP2352016A4 (en) | 2008-10-06 | 2016-04-27 | Univ Tsukuba | DEVICE AND METHOD FOR MEASURING ELECTRON SPIN |
US8713200B2 (en) * | 2009-03-31 | 2014-04-29 | Buc Mobile, Inc. | System and method for broadcasting rich media to devices over multiple carriers |
CN102549555B (zh) * | 2009-10-07 | 2015-04-22 | 惠普发展公司,有限责任合伙企业 | 主机存储器的基于通知协议的端点高速缓存 |
US20110185369A1 (en) * | 2010-01-25 | 2011-07-28 | Canon Kabushiki Kaisha | Refresh of auxiliary display |
US8457118B2 (en) | 2010-05-17 | 2013-06-04 | Google Inc. | Decentralized system and method for voice and video sessions |
US20140055495A1 (en) * | 2012-08-22 | 2014-02-27 | Lg Cns Co., Ltd. | Responsive user interface engine for display devices |
US8954878B2 (en) | 2012-09-04 | 2015-02-10 | Google Inc. | Information navigation on electronic devices |
US9508161B2 (en) * | 2012-12-18 | 2016-11-29 | Blackberry Limited | Device and method for processing notification data |
US9075985B2 (en) * | 2013-05-31 | 2015-07-07 | Microsoft Technology Licensing, Llc | Restricted transmogrifying driver platform |
US9875150B2 (en) | 2015-06-02 | 2018-01-23 | Apple Inc. | Method and system for processing notifications amongst applications of a data processing system |
US10678955B2 (en) * | 2016-06-21 | 2020-06-09 | Intel Corporation | Technologies for secure input/output device activation |
US10334515B2 (en) * | 2017-01-13 | 2019-06-25 | ENK Wireless, Inc. | Conveying information via auxiliary device selection |
US11223587B2 (en) * | 2020-06-04 | 2022-01-11 | Statum Systems Inc. | Messaging system comprising an auxiliary device communicatively coupled with a client device |
JP7430659B2 (ja) * | 2021-03-04 | 2024-02-13 | Jbアドバンスト・テクノロジー株式会社 | サービス連携システム |
US20240004727A1 (en) * | 2022-06-30 | 2024-01-04 | Microsoft Technology Licensing, Llc | Notification delay and auto-dismiss functionality |
Family Cites Families (199)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4860342A (en) | 1987-04-09 | 1989-08-22 | Danner David L | Computer-telephone interface method and apparatus |
US5159445A (en) | 1990-12-31 | 1992-10-27 | At&T Bell Laboratories | Teleconferencing video display system for improving eye contact |
JPH05300499A (ja) | 1992-04-17 | 1993-11-12 | Toshiba Corp | テレビ電話装置 |
US5388268A (en) | 1992-09-18 | 1995-02-07 | Hewlett-Packard Company | Methods of indicating states of software processes cooperating on a single task |
US5487181A (en) | 1992-10-28 | 1996-01-23 | Ericsson Ge Mobile Communications Inc. | Low power architecture for portable and mobile two-way radios |
US5657414A (en) | 1992-12-01 | 1997-08-12 | Scientific-Atlanta, Inc. | Auxiliary device control for a subscriber terminal |
US5568540A (en) | 1993-09-13 | 1996-10-22 | Active Voice Corporation | Method and apparatus for selecting and playing a voice mail message |
JPH07154763A (ja) | 1993-11-26 | 1995-06-16 | Fujitsu Ltd | 在席テレビ会議装置 |
US5493692A (en) * | 1993-12-03 | 1996-02-20 | Xerox Corporation | Selective delivery of electronic messages in a multiple computer system based on context and environment of a user |
US5546538A (en) | 1993-12-14 | 1996-08-13 | Intel Corporation | System for processing handwriting written by user of portable computer by server or processing by the computer when the computer no longer communicate with server |
US5491800A (en) * | 1993-12-20 | 1996-02-13 | Taligent, Inc. | Object-oriented remote procedure call networking system |
US5548779A (en) * | 1993-12-21 | 1996-08-20 | Taligent | System for providing system services for a device to a client using stack definition and stack description of a stack having top, intermediate, and bottom service objects |
US5519772A (en) | 1994-01-31 | 1996-05-21 | Bell Communications Research, Inc. | Network-based telephone system having interactive capabilities |
US5533115A (en) | 1994-01-31 | 1996-07-02 | Bell Communications Research, Inc. | Network-based telephone system providing coordinated voice and data delivery |
WO1996002049A1 (en) | 1994-07-08 | 1996-01-25 | Algorhythms, Inc. | Computer on-screen telephone having a telephone construction kit and method of operation |
US5675810A (en) | 1994-09-07 | 1997-10-07 | Compaq Computer Corporation | Reducing power usage in a personal computer |
US5831606A (en) | 1994-12-13 | 1998-11-03 | Microsoft Corporation | Shell extensions for an operating system |
US5745761A (en) * | 1994-12-15 | 1998-04-28 | International Business Machines Corporation | Advanced graphics driver architecture with extension capability |
US6545775B1 (en) | 1995-07-21 | 2003-04-08 | Canon Kabushiki Kaisha | Control system and units removably attachable to the same |
JP3459149B2 (ja) | 1995-11-06 | 2003-10-20 | シャープ株式会社 | 電子メール転送システム |
WO1997017765A2 (en) | 1995-11-07 | 1997-05-15 | Cooper R Ross | Internet answering machine |
EP0777394A1 (en) | 1995-12-01 | 1997-06-04 | ALCATEL BELL Naamloze Vennootschap | Method and apparatus for electronic mail transmission as short messages towards a mobile radio terminal |
US5764901A (en) | 1995-12-21 | 1998-06-09 | Intel Corporation | Record and playback in a data conference |
US5896534A (en) * | 1996-01-26 | 1999-04-20 | Dell Usa, L.P. | Operating system independent apparatus and method for supporting input/output devices unsupported by executing programs |
JP3288050B2 (ja) | 1996-03-13 | 2002-06-04 | 株式会社エヌ・ティ・ティ・ドコモ | メール着信通知システムおよびメール着信通知方法 |
US5768164A (en) | 1996-04-15 | 1998-06-16 | Hewlett-Packard Company | Spontaneous use display for a computing system |
US6044408A (en) * | 1996-04-25 | 2000-03-28 | Microsoft Corporation | Multimedia device interface for retrieving and exploiting software and hardware capabilities |
US5802305A (en) | 1996-05-17 | 1998-09-01 | Microsoft Corporation | System for remotely waking a sleeping computer in power down state by comparing incoming packet to the list of packets storing on network interface card |
US5959622A (en) | 1996-05-31 | 1999-09-28 | Intel Corporation | Still image capture under computer control in response to user-instructed trigger |
US6542150B1 (en) | 1996-06-28 | 2003-04-01 | Cirrus Logic, Inc. | Method and apparatus for asynchronous display of graphic images |
US6483905B1 (en) | 1996-08-13 | 2002-11-19 | Lextron Systems, Inc. | Electronic document answering machine |
US5978837A (en) | 1996-09-27 | 1999-11-02 | At&T Corp. | Intelligent pager for remotely managing E-Mail messages |
US5732216A (en) | 1996-10-02 | 1998-03-24 | Internet Angles, Inc. | Audio message exchange system |
US6144363A (en) | 1996-12-16 | 2000-11-07 | Video Road Digital Inc. | Message status display |
KR100423134B1 (ko) | 1997-03-10 | 2004-05-17 | 삼성전자주식회사 | 화상회의 시스템의 카메라/마이크 장치 |
US5991822A (en) | 1997-03-17 | 1999-11-23 | International Business Machines Corporation | System for modifying functions of static device driver using a registered driver extension extended dynamically by providing an entry point for the driver extension |
US5907604A (en) | 1997-03-25 | 1999-05-25 | Sony Corporation | Image icon associated with caller ID |
US6101610A (en) | 1997-03-28 | 2000-08-08 | International Business Machines Corporation | Computer system having thermal sensing with dual voltage sources for sensor stabilization |
US6006285A (en) | 1997-04-30 | 1999-12-21 | Compaq Computer Corporation | Computer system capable of playing audio CDs in a CD-ROM drive independent of an operating system |
US5991836A (en) * | 1997-05-02 | 1999-11-23 | Network Computing Devices, Inc. | System for communicating real time data between client device and server utilizing the client device estimating data consumption amount by the server |
CA2290380A1 (en) | 1997-05-21 | 1998-11-26 | James A. Bajzath, Jr. | System and method for implementing call waiting functions over a network |
US6073187A (en) | 1997-06-20 | 2000-06-06 | Compaq Computer Corporation | Controls and indicators available to a user for a secondary operational mode of a portable computer which is open or closed state of the computer case |
US5987106A (en) | 1997-06-24 | 1999-11-16 | Ati Technologies, Inc. | Automatic volume control system and method for use in a multimedia computer system |
FI105872B (fi) | 1997-08-28 | 2000-10-13 | Nokia Mobile Phones Ltd | Menetelmä ja järjestelmä sanomien välittämiseksi |
US5999613A (en) | 1997-09-25 | 1999-12-07 | U. S. West, Inc. | Method and system for processing incoming calls during calls-in-progress |
US6169911B1 (en) | 1997-09-26 | 2001-01-02 | Sun Microsystems, Inc. | Graphical user interface for a portable telephone |
US6516356B1 (en) * | 1997-09-30 | 2003-02-04 | International Business Machines Corporation | Application interface to a media server and a method of implementing the same |
US6295556B1 (en) * | 1997-11-18 | 2001-09-25 | Microsoft Corporation | Method and system for configuring computers to connect to networks using network connection objects |
US6380968B1 (en) | 1998-01-06 | 2002-04-30 | Intel Corporation | Method and apparatus for controlling a remote video camera in a video conferencing system |
US6390371B1 (en) * | 1998-02-13 | 2002-05-21 | Micron Technology, Inc. | Method and system for displaying information uniformly on tethered and remote input devices |
US6362440B1 (en) | 1998-03-27 | 2002-03-26 | International Business Machines Corporation | Flexibly interfaceable portable computing device |
US6233611B1 (en) * | 1998-05-08 | 2001-05-15 | Sony Corporation | Media manager for controlling autonomous media devices within a network environment and managing the flow and format of data between the devices |
US7209949B2 (en) | 1998-05-29 | 2007-04-24 | Research In Motion Limited | System and method for synchronizing information between a host system and a mobile data communication device |
US6438585B2 (en) | 1998-05-29 | 2002-08-20 | Research In Motion Limited | System and method for redirecting message attachments between a host system and a mobile data communication device |
US6237846B1 (en) | 1998-06-29 | 2001-05-29 | Sony Corporation | Body wearable keyboard |
US6438216B1 (en) | 1998-07-30 | 2002-08-20 | Siemens Information And Communication Networks, Inc. | Nonintrusive call notification method and system using content-specific information |
US6417849B2 (en) | 1998-07-31 | 2002-07-09 | Hewlett-Packard Company | Single logical screen in X windows with direct hardware access to the frame buffer for 3D rendering |
US6918123B1 (en) * | 1998-10-02 | 2005-07-12 | Koninklijke Philips Electronics N.V. | Calls identify scenario for control of software objects via property routes |
US6088806A (en) * | 1998-10-20 | 2000-07-11 | Seiko Epson Corporation | Apparatus and method with improved power-down mode |
US6240168B1 (en) | 1998-10-29 | 2001-05-29 | Picazo Communications | Method and apparatus for controlling a computer to implement telephone functions with a displayed telephone of variable size |
US6980641B1 (en) | 1998-10-29 | 2005-12-27 | Intel Corporation | Method and apparatus for controlling a computer to implement telephone functions with an enhanced minidialer function |
US6671743B1 (en) | 1998-11-13 | 2003-12-30 | Creative Technology, Ltd. | Method and system for exposing proprietary APIs in a privileged device driver to an application |
US6118856A (en) | 1998-12-28 | 2000-09-12 | Nortel Networks Corporation | Method and apparatus for automatically forwarding an email message or portion thereof to a remote device |
US6806867B1 (en) | 1998-12-31 | 2004-10-19 | A.T.X. International, Inc. | Palm pad system |
US6215420B1 (en) | 1999-01-06 | 2001-04-10 | Coach Master Int'l Corp. | Keyboard (I) |
GB9901859D0 (en) | 1999-01-29 | 1999-03-17 | Ridgeway Systems & Software Lt | Audio-video telephony |
US7103167B2 (en) | 2002-05-20 | 2006-09-05 | Callwave, Inc. | Systems and methods for call screening |
US6519335B1 (en) | 1999-04-08 | 2003-02-11 | Lucent Technologies Inc. | Apparatus, method and system for personal telecommunication incoming call screening and alerting for call waiting applications |
US7068641B1 (en) | 1999-05-05 | 2006-06-27 | Nortel Networks Limited | Telephony and data network services at a telephone |
US6346934B1 (en) | 1999-05-17 | 2002-02-12 | Gateway, Inc. | Programmable remote device control apparatus and method |
AU5728500A (en) | 1999-06-11 | 2001-01-02 | Microsoft Corporation | Data driven remote device control model with general programming interface-to-network messaging adapter |
JP2001043062A (ja) | 1999-07-27 | 2001-02-16 | Nec Corp | パーソナルコンピュータ、その音量調整方法及び記録媒体 |
US20010040551A1 (en) | 1999-07-29 | 2001-11-15 | Interlink Electronics, Inc. | Hand-held remote computer input peripheral with touch pad used for cursor control and text entry on a separate display |
US6208373B1 (en) | 1999-08-02 | 2001-03-27 | Timothy Lo Fong | Method and apparatus for enabling a videoconferencing participant to appear focused on camera to corresponding users |
GB2353184A (en) | 1999-08-13 | 2001-02-14 | Nokia Mobile Phones Ltd | Disabling a touch sensitive display screen when a call is established |
US6628194B1 (en) | 1999-08-31 | 2003-09-30 | At&T Wireless Services, Inc. | Filtered in-box for voice mail, e-mail, pages, web-based information, and faxes |
US6484019B1 (en) | 1999-10-18 | 2002-11-19 | Mannix V. Aklian | Combined computer keyboard and radio apparatus |
US6603855B1 (en) | 1999-10-21 | 2003-08-05 | Agere Systems Inc. | Cordless phone notification of extended off-hook using parallel set detection |
US6546262B1 (en) | 1999-11-12 | 2003-04-08 | Altec Lansing Technologies, Inc. | Cellular telephone accessory device for a personal computer system |
US6691233B1 (en) | 1999-11-18 | 2004-02-10 | Ecrio Inc. | Battery operated ink capture device that operates in a normal power mode during active use and a minimum power mode during absence of active use |
US6513128B1 (en) | 1999-11-30 | 2003-01-28 | 3Com Corporation | Network interface card accessible during low power consumption mode |
US7000237B1 (en) * | 1999-12-21 | 2006-02-14 | Intel Corporation | Method for communicating occurrence of events in a storage medium |
US6757372B1 (en) | 2000-01-10 | 2004-06-29 | Cisco Technology, Inc. | User interface for a network-enabled telephone |
WO2001059569A2 (en) * | 2000-02-09 | 2001-08-16 | Apriva, Inc. | Communication systems, components, and methods with programmable wireless devices |
US7346075B1 (en) * | 2000-02-25 | 2008-03-18 | International Business Machines Corporation | Portable networking interface method and apparatus for distributed switching system |
US6731316B2 (en) | 2000-02-25 | 2004-05-04 | Kargo, Inc. | Graphical layout and keypad response to visually depict and implement device functionality for interactivity with a numbered keypad |
JP3448003B2 (ja) | 2000-03-09 | 2003-09-16 | 株式会社東芝 | 移動通信端末 |
US6816881B1 (en) * | 2000-03-13 | 2004-11-09 | International Business Machines Corporation | Method and apparatus for inter-application communication in wireless networks |
US7243130B2 (en) | 2000-03-16 | 2007-07-10 | Microsoft Corporation | Notification platform architecture |
KR100358370B1 (ko) | 2000-03-24 | 2002-10-25 | 공원일 | 다기능이 구비된 하나로 키보드 |
JP2001306440A (ja) * | 2000-04-24 | 2001-11-02 | Sony Corp | 電子情報内容自動配信サービスシステム、情報処理装置、記録媒体及び電子情報内容自動配信方法 |
US7227511B2 (en) | 2000-04-24 | 2007-06-05 | Microsoft Corporation | Method for activating an application in context on a remote input/output device |
US8843590B2 (en) * | 2000-05-31 | 2014-09-23 | Ebm/Ip, Llc | Systems, methods and computer program products for facilitating display of content within application programs executing on electronic devices |
WO2001097014A2 (en) | 2000-06-12 | 2001-12-20 | Preworx (Proprietary) Limited | System for controlling a display of the user interface of a software application |
US20020019812A1 (en) | 2000-06-16 | 2002-02-14 | Board Karen Eleanor | System and service for receiving, customizing, and re-broadcasting high-speed financial data to users operating wireless network-capable devices |
US6721779B1 (en) * | 2000-07-07 | 2004-04-13 | Softwired Ag | Messaging proxy system |
US7302637B1 (en) | 2000-07-24 | 2007-11-27 | Research In Motion Limited | System and method for abbreviating information sent to a viewing device |
US20020015020A1 (en) | 2000-07-29 | 2002-02-07 | Farzad Mobin | Radio-style hollow appliance for interactive use with a computer |
EP1191424A3 (en) | 2000-09-06 | 2004-11-10 | Sony Corporation | Information processing apparatus |
US6938174B2 (en) | 2000-10-06 | 2005-08-30 | International Business Machines Corporation | Method and system with adaptive data transfer policy based on a power state of a computing device |
US6507356B1 (en) | 2000-10-13 | 2003-01-14 | At&T Corp. | Method for improving video conferencing and video calling |
EP1205843A3 (en) | 2000-11-13 | 2004-10-20 | Canon Kabushiki Kaisha | User interfaces |
US6976216B1 (en) | 2000-11-17 | 2005-12-13 | Streamzap, Inc. | Computer system with remote key press events directed to a first application program and local key press events directed to a second application program |
US7171475B2 (en) * | 2000-12-01 | 2007-01-30 | Microsoft Corporation | Peer networking host framework and hosting API |
US20020069217A1 (en) | 2000-12-04 | 2002-06-06 | Hua Chen | Automatic, multi-stage rich-media content creation using a framework based digital workflow - systems, methods and program products |
US7224801B2 (en) | 2000-12-27 | 2007-05-29 | Logitech Europe S.A. | Wireless secure device |
US20020087225A1 (en) | 2001-01-03 | 2002-07-04 | Howard Gary M. | Portable computing device having a low power media player |
US6897851B2 (en) | 2001-01-05 | 2005-05-24 | International Business Machines Corporation | Methods and apparatus for formatted entry of electronic ink |
JP2002247187A (ja) | 2001-02-16 | 2002-08-30 | Soft Front:Kk | 電話回線網とコンピュータ通信ネットワークの両方を利用できる電話システム |
US7120129B2 (en) * | 2001-03-13 | 2006-10-10 | Microsoft Corporation | System and method for achieving zero-configuration wireless computing and computing device incorporating same |
US7380250B2 (en) * | 2001-03-16 | 2008-05-27 | Microsoft Corporation | Method and system for interacting with devices having different capabilities |
US8117313B2 (en) | 2001-03-19 | 2012-02-14 | International Business Machines Corporation | System and method for adaptive formatting of image information for efficient delivery and presentation |
US6862695B2 (en) | 2001-03-30 | 2005-03-01 | Giga-Byte Technology Co., Ltd. | Method and device for identifying failed devices in computer |
US7292588B2 (en) | 2001-05-01 | 2007-11-06 | Milley Milton E | Wireless network computing |
US7475356B2 (en) | 2001-05-11 | 2009-01-06 | Xerox Corporation | System utilizing mixed resolution displays |
US7546540B2 (en) | 2001-05-11 | 2009-06-09 | Xerox Corporation | Methods of using mixed resolution displays |
US6718183B1 (en) | 2001-06-05 | 2004-04-06 | Bellsouth Intellectual Property Corporation | System and method for reducing data quality degradation due to encoding/decoding |
US20030056207A1 (en) * | 2001-06-06 | 2003-03-20 | Claudius Fischer | Process for deploying software from a central computer system to remotely located devices |
JP2002366284A (ja) | 2001-06-08 | 2002-12-20 | Alps Electric Co Ltd | 携帯電子機器用キーボード装置及び充電装置 |
JP2003008736A (ja) | 2001-06-22 | 2003-01-10 | Pioneer Electronic Corp | 携帯情報端末機 |
US20060236221A1 (en) | 2001-06-27 | 2006-10-19 | Mci, Llc. | Method and system for providing digital media management using templates and profiles |
US7017162B2 (en) * | 2001-07-10 | 2006-03-21 | Microsoft Corporation | Application program interface for network software platform |
US7581231B2 (en) * | 2001-07-10 | 2009-08-25 | Microsoft Corporation | Computing system and method for allowing plurality of applications written in different programming languages to communicate and request resources or services via a common language runtime layer |
US6931007B2 (en) | 2001-07-25 | 2005-08-16 | Longboard, Inc. | System and method of serving data messages |
US6952830B2 (en) | 2001-08-16 | 2005-10-04 | Occam Networks, Inc. | System and method to uniformly access devices |
JP3680774B2 (ja) | 2001-08-27 | 2005-08-10 | ヤマハ株式会社 | 色相により利得設定値を表示するための表示制御装置 |
JP2003075167A (ja) | 2001-09-04 | 2003-03-12 | Sony Corp | ナビゲーション装置、地図の表示方法および画像表示装置 |
US6912283B2 (en) | 2001-09-24 | 2005-06-28 | Robert F. Meyerson | Teledata space and docking station with modular and integrated display |
US6970556B2 (en) | 2001-09-24 | 2005-11-29 | Wall Daniel G | Multi-media communication system having programmable speed dial control indicia |
US6671356B2 (en) | 2001-09-24 | 2003-12-30 | Teleware, Inc. | Multi-media communication management system with subscriber messaging integration services |
US20030074590A1 (en) | 2001-10-12 | 2003-04-17 | Fogle Steven L. | Computer system with improved entry into powersave and lock modes and method of use therefor |
US7519911B2 (en) | 2001-11-02 | 2009-04-14 | At&T Intellectual Property Ii, L.P. | Systems and methods for managing and aggregating media formats |
US6907482B2 (en) * | 2001-12-13 | 2005-06-14 | Microsoft Corporation | Universal graphic adapter for interfacing with hardware and means for encapsulating and abstracting details of the hardware |
US20030112325A1 (en) | 2001-12-13 | 2003-06-19 | Digeo, Inc. | Camera positioning system and method for eye-to-eye communication |
US20040110490A1 (en) | 2001-12-20 | 2004-06-10 | Steele Jay D. | Method and apparatus for providing content to media devices |
US7636326B2 (en) | 2001-12-26 | 2009-12-22 | Siemens Communications, Inc. | Private communications network including connected public communications devices and method of operation thereof |
US8010903B2 (en) | 2001-12-28 | 2011-08-30 | International Business Machines Corporation | System and method for visualizing and navigating dynamic content in a graphical user interface |
US6978439B2 (en) | 2002-01-10 | 2005-12-20 | Microsoft Corporation | Cross-platform software development with a software development peripheral |
US6690778B2 (en) | 2002-01-16 | 2004-02-10 | Matsushita Electric Industrial Co., Ltd. | Method and apparatus for automatically adjusting an electronic device output in response to an incoming telephone call |
US6741232B1 (en) | 2002-01-23 | 2004-05-25 | Good Technology, Inc. | User interface for a data processing apparatus |
US20030146903A1 (en) | 2002-02-01 | 2003-08-07 | Leland Yi | Wired keyboard with built-in web camera |
US6658095B1 (en) | 2002-03-19 | 2003-12-02 | Nortel Networks Limited | Customized presence information delivery |
US7036110B2 (en) | 2002-03-21 | 2006-04-25 | Sun Microsystems, Inc. | Mechanism to manage the lifecycle of a resource adapter |
US20030188041A1 (en) | 2002-04-01 | 2003-10-02 | Fillmore James A. | Distributed event notification system and method |
US7243355B2 (en) * | 2002-04-04 | 2007-07-10 | Verizon Busniess Global Llc | Method, system and computer program product for a lightweight directory access protocol client application program interface |
US7680849B2 (en) | 2004-10-25 | 2010-03-16 | Apple Inc. | Multiple media type synchronization between host computer and media device |
US6950119B2 (en) | 2002-04-15 | 2005-09-27 | Sumitomo Electric Industries, Ltd. | Videoconference system, terminal equipment included therein and data delivery method |
US20030197685A1 (en) | 2002-04-23 | 2003-10-23 | Leland Yi | Wireless keyboard with a built-in web camera |
US20040001087A1 (en) | 2002-06-27 | 2004-01-01 | Warmus James L. | Methods and apparatus for electronic distribution of customized content via a broadcast signal |
US7478407B2 (en) * | 2002-07-11 | 2009-01-13 | Oracle International Corporation | Supporting multiple application program interfaces |
TWI336848B (en) * | 2002-08-26 | 2011-02-01 | Interdigital Tech Corp | Wireless transmit/receive unit and method for providing a communication path between a plurality of operating systems in a wireless device |
US7272660B1 (en) | 2002-09-06 | 2007-09-18 | Oracle International Corporation | Architecture for general purpose near real-time business intelligence system and methods therefor |
US20040052341A1 (en) | 2002-09-18 | 2004-03-18 | I-Hau Yeh | System for automatic notification of caller ID, e-mail identification and short message |
US7523397B2 (en) * | 2002-09-30 | 2009-04-21 | Microsoft Corporation | Centralized alert and notifications repository, manager, and viewer |
US20040135819A1 (en) | 2002-10-28 | 2004-07-15 | Shalong Maa | Computer remote control |
US7106472B2 (en) | 2002-10-31 | 2006-09-12 | Hewlett-Packard Development Company, L.P. | Print driver for an extended printing device |
US7739693B2 (en) * | 2002-11-25 | 2010-06-15 | Sap Ag | Generic application program interface for native drivers |
US20040103144A1 (en) * | 2002-11-26 | 2004-05-27 | Hussein Sallam | Systems and methods for communicating with devices as Web Services |
US6937950B2 (en) | 2002-12-26 | 2005-08-30 | International Business Machines Corporation | Animated graphical object notification system |
US9753642B2 (en) | 2003-01-16 | 2017-09-05 | Ca, Inc. | System and method for mouseless navigation of web applications |
US20040155956A1 (en) | 2003-02-03 | 2004-08-12 | Libbey Kent Alexander | System for maintaining eye contract during videoconferencing |
GB2398199A (en) * | 2003-02-10 | 2004-08-11 | Nokia Corp | A system for transferring content audio and video data from a provider to a personal digital assistant |
CN1795643B (zh) | 2003-03-12 | 2012-04-04 | 朗恩通信管理有限公司 | 通过切换将局域电话系统扩展到广域网 |
US7231229B1 (en) | 2003-03-16 | 2007-06-12 | Palm, Inc. | Communication device interface |
EP1627524A4 (en) | 2003-03-20 | 2009-05-27 | Ge Security Inc | SYSTEMS AND METHODS FOR PROCESSING IMAGES OF MULTIPLE RESOLUTIONS |
US6888562B2 (en) | 2003-03-26 | 2005-05-03 | Broadcom Corporation | Integral eye-path alignment on telephony and computer video devices using a pinhole image sensing device |
US7146488B2 (en) | 2003-04-16 | 2006-12-05 | Hewlett-Packard Development Company, L.P. | System and method for expanding processor functionality |
US7096391B2 (en) | 2003-04-29 | 2006-08-22 | Hewlett-Packard Development Company, L.P. | Error message suppression system and method |
US7493177B2 (en) | 2003-05-05 | 2009-02-17 | Microsoft Corporation | Apparatus, systems and methods relating to improved lighting and notifications in a computing system |
US7443971B2 (en) | 2003-05-05 | 2008-10-28 | Microsoft Corporation | Computer system with do not disturb system and method |
US7424740B2 (en) | 2003-05-05 | 2008-09-09 | Microsoft Corporation | Method and system for activating a computer system |
US20040240650A1 (en) | 2003-05-05 | 2004-12-02 | Microsoft Corporation | Real-time communications architecture and methods for use with a personal computer system |
US7221331B2 (en) | 2003-05-05 | 2007-05-22 | Microsoft Corporation | Method and system for auxiliary display of information for a computing device |
US20040222978A1 (en) | 2003-05-05 | 2004-11-11 | Bear Eric Gould | Control and communications panel for a computer system |
US7551199B2 (en) | 2003-05-05 | 2009-06-23 | Microsoft Corporation | Computer camera system and method for reducing parallax |
US7827232B2 (en) | 2003-05-05 | 2010-11-02 | Microsoft Corporation | Record button on a computer system |
US7372371B2 (en) | 2003-05-05 | 2008-05-13 | Microsoft Corporation | Notification lights, locations and rules for a computer system |
US7509651B2 (en) * | 2003-05-23 | 2009-03-24 | Hewlett-Packard Development Company, L.P. | System and method for providing event notifications to information technology resource managers |
US6902332B2 (en) | 2003-07-31 | 2005-06-07 | Microsoft Corporation | Universal remote computer keyboard |
US20050055067A1 (en) * | 2003-09-10 | 2005-03-10 | Tsung-I Yu | Medium and low frequency electro-stimulated massaging pants |
US7548255B2 (en) | 2003-09-30 | 2009-06-16 | Microsoft Corporation | Method and system for capturing video on a personal computer |
US7194611B2 (en) | 2003-09-30 | 2007-03-20 | Microsoft Corporation | Method and system for navigation using media transport controls |
US7216221B2 (en) | 2003-09-30 | 2007-05-08 | Microsoft Corporation | Method and system for unified audio control on a personal computer |
US7440556B2 (en) | 2003-09-30 | 2008-10-21 | Microsoft Corporation | System and method for using telephony controls on a personal computer |
US7509658B2 (en) * | 2004-01-30 | 2009-03-24 | Research In Motion Limited | System and method for adaptable provisioning of generic application content |
US20050182822A1 (en) | 2004-02-17 | 2005-08-18 | Daniel Stuart W. | Imaging device with memory device interface |
US7395051B2 (en) | 2004-02-23 | 2008-07-01 | Research In Motion Limited | Cellular communications system for providing non-real time subscription data and related methods |
US20050193396A1 (en) * | 2004-02-27 | 2005-09-01 | Stafford-Fraser James Q. | Computer network architecture and method of providing display data |
US7558884B2 (en) | 2004-05-03 | 2009-07-07 | Microsoft Corporation | Processing information received at an auxiliary computing device |
US8381136B2 (en) | 2004-05-24 | 2013-02-19 | Scenera Technologies, Llc | Handheld electronic device supporting multiple display mechanisms |
US20060048062A1 (en) | 2004-09-01 | 2006-03-02 | Adamson Dale F | Software and method providing graphic user interface for graphics adapter configuration |
US20060061516A1 (en) | 2004-09-23 | 2006-03-23 | Campbell Robert G | Connecting multiple monitors to a computer system |
US7711868B2 (en) | 2004-11-23 | 2010-05-04 | Microsoft Corporation | Waking a main computer system to pre-fetch data for an auxiliary computing device |
US7549154B2 (en) | 2004-11-23 | 2009-06-16 | Microsoft Corporation | Extensible architecture for auxiliary displays |
US7634780B2 (en) | 2004-11-23 | 2009-12-15 | Microsoft Corporation | Method and system for exchanging data between computer systems and auxiliary displays |
US7581034B2 (en) | 2004-11-23 | 2009-08-25 | Microsoft Corporation | Sending notifications to auxiliary displays |
US7284878B2 (en) * | 2004-12-03 | 2007-10-23 | Acuity Brands, Inc. | Lumen regulating apparatus and process |
US7853674B2 (en) * | 2005-01-24 | 2010-12-14 | Research In Motion Limited | System and method for provisioning component applications |
US20060242590A1 (en) | 2005-04-21 | 2006-10-26 | Microsoft Corporation | Simple content format for auxiliary display devices |
-
2005
- 2005-02-07 US US11/053,186 patent/US7784065B2/en not_active Expired - Fee Related
-
2006
- 2006-01-11 EP EP06100231A patent/EP1688838A2/en not_active Withdrawn
- 2006-01-18 KR KR1020060005308A patent/KR20060090168A/ko not_active Application Discontinuation
- 2006-01-28 CN CNA2006100046053A patent/CN1818860A/zh active Pending
- 2006-02-07 JP JP2006030255A patent/JP2007048259A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102609300A (zh) * | 2010-12-23 | 2012-07-25 | 微软公司 | 用于com聚集的受保护和虚拟接口 |
CN102609300B (zh) * | 2010-12-23 | 2014-09-24 | 微软公司 | 用于com聚集的受保护和虚拟接口 |
Also Published As
Publication number | Publication date |
---|---|
KR20060090168A (ko) | 2006-08-10 |
US20060176271A1 (en) | 2006-08-10 |
EP1688838A2 (en) | 2006-08-09 |
US7784065B2 (en) | 2010-08-24 |
JP2007048259A (ja) | 2007-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1818860A (zh) | 用于与辅助计算设备的一致程序交互的接口 | |
JP5323304B2 (ja) | コンピュータシステムと補助ディスプレイの間でデータを交換するための方法およびシステム | |
US7581034B2 (en) | Sending notifications to auxiliary displays | |
JP4907964B2 (ja) | 補助ディスプレイの拡張可能なアーキテクチャ | |
JP4794205B2 (ja) | コンテキスト認識型補助ディスプレイおよびアプリケーション | |
CN1782956A (zh) | 唤醒主计算机系统以预取辅助计算设备的数据 | |
EP1594046A2 (en) | System architecture with auxiliary display device | |
KR20060047711A (ko) | 보조 정보의 오프라인 디스플레이 및 네비게이션을 위하여데이터를 캐싱하는 방법 및 시스템 | |
CN107209624A (zh) | 用于设备个性化的用户交互模式提取 | |
TW530202B (en) | Computer peripheral equipment monitor and computer system equipped with the monitor | |
US20060232494A1 (en) | Automatic cross-display coordination | |
CN105378655A (zh) | 用于目标和未连接的设备的驱动程序安装 | |
JP2010287205A (ja) | 電子装置、コンピュータ実行システム及びその応用プログラムの表示制御方法 | |
TWI264894B (en) | System and method for monitoring and managing connection manager activity | |
US20100113163A1 (en) | Gaming apparatus including an electronic gaming machine and a digital nameplace device | |
US20110234604A1 (en) | Electronic paper display and method for booting up electronic paper display | |
TWI530859B (zh) | 頁面管理方法與頁面管理系統 | |
CN112087366B (zh) | 账号管理方法、装置和即时通信系统 | |
CN114630163A (zh) | 显示设备及快速开机方法 | |
TW201104560A (en) | Device and method of a display backlight persistently on for a mobile apparatus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20060816 |