專利名稱:使用潛在傳送表面來修改文檔的技術(shù)的制作方法
使用潛在傳送表面來修改文檔的技術(shù)背景諸如文字處理應(yīng)用程序等的應(yīng)用程序傳統(tǒng)上是安裝在個人計算機上的、向存儲 在本地或基于網(wǎng)絡(luò)的文件中的文檔提供豐富的編輯和格式化功能的獨立軟件程序。這些 應(yīng)用程序一般非常大,從而需要許多兆字節(jié)的驅(qū)動器空間來進行安裝。然而,最近的趨 勢是可能不能訪問同一獨立應(yīng)用程序的遠程的不同用戶對文檔的協(xié)作開發(fā),并且其中這 些文檔可以存儲在可以通過因特網(wǎng)訪問的遠程網(wǎng)絡(luò)上。這造成了對可以經(jīng)由常規(guī)萬維網(wǎng) (“web” )瀏覽器傳遞的應(yīng)用程序的開發(fā),從而允許遠程文檔由用戶在不需要安裝傳統(tǒng) 獨立應(yīng)用程序的情況下通過網(wǎng)絡(luò)來編輯。提供基于web的應(yīng)用程序功能的一種技術(shù)涉及開發(fā)利用許多web瀏覽器程序中 可用的編輯特征的網(wǎng)頁。這種技術(shù)具有小而快的優(yōu)點,并且開發(fā)工作非常少。然而,這 些web瀏覽器所提供的有限編輯特征一般不能與傳統(tǒng)的獨立應(yīng)用程序的特征豐富能力相 比。此外,可用的編輯特征在不同的web瀏覽器程序之間可能不同,從而使得難以跨所 有web瀏覽器來提供一致的用戶體驗。提供基于web的應(yīng)用程序功能的另一技術(shù)是使用諸如來自 SUNMICROSYSTEMS 公司的 JAVA、來自 ADOBE SYSTEMS 公司的 FLASH、或異步 JavaScript與XML( “AJAX”)等跨瀏覽器運行時技術(shù)來實現(xiàn)在瀏覽器內(nèi)執(zhí)行的完整的
應(yīng)用程序。盡管允許開發(fā)者完全控制該應(yīng)用程序的特征和能力,但該方法一般涉及相當(dāng) 大的開發(fā)工作并且需要實現(xiàn)低層編輯功能,如按照用戶所鍵入的將文本呈現(xiàn)在窗口中、 將閃爍的光標(biāo)移動通過文本、或用戶鍵入的窗口的內(nèi)容的恒定回流。另外,因為應(yīng)用程 序是以基于瀏覽器的運行時技術(shù)來執(zhí)行的,所以在執(zhí)行時它通常很慢并且可能不能提供 充分響應(yīng)的用戶界面。本發(fā)明的改進正是針對這些和其它考慮事項而需要的。概述提供本概述是為了以簡化的形式介紹將在以下詳細描述中進一步描述的一些概 念。本概述并非旨在標(biāo)識所要求保護的主題的關(guān)鍵特征或必要特征,也不旨在用于幫助 確定所要求保護的主題的范圍。各實施例一般涉及用于從遠程設(shè)備通過網(wǎng)絡(luò)修改、改變或以其他方式編輯文檔 的技術(shù)。在一實施例中,例如,一種裝置可包括具有web瀏覽器的客戶機設(shè)備??蛻魴C 設(shè)備可使用web瀏覽器通過網(wǎng)絡(luò)從服務(wù)器檢索應(yīng)用程序,并在客戶機設(shè)備處執(zhí)行應(yīng)用程 序以使用web瀏覽器窗口來呈現(xiàn)文檔。用戶隨后可經(jīng)由web瀏覽器窗口來編輯文檔,且 一旦文檔被修改,將修改的文檔存儲在服務(wù)器處??蛻魴C設(shè)備可使用新穎且增強的文檔編輯子系統(tǒng)來一般地管理文檔的編輯操 作。在一實施例中,例如,文檔編輯子系統(tǒng)可包括用于將潛在傳送表面嵌入到文檔中的 傳送表面創(chuàng)建模塊。傳送控制模塊可通信耦合到傳送表面創(chuàng)建模塊。傳送控制模塊可用 于接收傳送文檔的媒體內(nèi)容的傳送請求,并響應(yīng)于該傳送請求使用潛在傳送表面來傳送 媒體內(nèi)容。傳送請求的示例可包括但不限于,復(fù)制傳送請求、剪切傳送請求、粘貼傳送請求、粘貼特殊傳送請求等。對其他實施例也予以描述并要求保護。通過閱讀以下詳細描述并查閱相關(guān)聯(lián)的附圖,這些和其他特征和優(yōu)點將是顯而 易見的??梢岳斫?,前述一般描述和以下詳細描述均僅是說明性的,且不限制所要求保 護的各方面。附圖簡述
圖1示出第一系統(tǒng)的一實施例。圖2示出文檔編輯子系統(tǒng)的一實施例。圖3示出第二系統(tǒng)的一實施例。圖4示出邏輯流程的一實施例。圖5示出計算體系結(jié)構(gòu)的一實施例。圖6示出了制品的一實施例。詳細描述各實施例包括被安排成執(zhí)行特定操作、功能或服務(wù)的物理或邏輯結(jié)構(gòu)。這些結(jié) 構(gòu)可包括物理結(jié)構(gòu)、邏輯結(jié)構(gòu)或兩者的組合。物理或邏輯結(jié)構(gòu)使用硬件元件、軟件元件 或兩者的組合來實現(xiàn)。然而,參考特定硬件或軟件元件對各實施例的描述旨在作為示例 而非限制。使用硬件還是軟件元件來實際實施一實施例的決定取決于多個外部因素,諸 如所需計算速率、功率級、熱容忍度、處理周期預(yù)算、輸入數(shù)據(jù)率、輸出數(shù)據(jù)率、存儲 器資源、數(shù)據(jù)總線速度、以及其他設(shè)計或性能約束。此外,物理或邏輯結(jié)構(gòu)可具有對應(yīng) 的物理或邏輯連接以便在這些結(jié)構(gòu)之間以電子信號或消息的形式傳遞信息。連接可包括 如適于信息或特定結(jié)構(gòu)的有線和/或無線連接。值得注意的是,任何對“一個實施例” 或“一實施例”的引用都意味著結(jié)合該實施例所描述的特定的特征、結(jié)構(gòu)、或特性被包 括在至少一個實施例中。出現(xiàn)在說明書中各個地方的短語“在一個實施例中”不必全都 指的是同一實施例。各實施例一般涉及被安排成由客戶機設(shè)備使用諸如web瀏覽器等的合適的通信 界面來執(zhí)行的基于服務(wù)器或基于web的應(yīng)用程序?;趙eb的應(yīng)用程序允許操作者在不 需要客戶機設(shè)備實現(xiàn)獨立應(yīng)用程序的情況下從客戶機設(shè)備在線創(chuàng)建并編輯文檔。此外, 基于web的應(yīng)用程序允許與其他操作者的實時協(xié)作。應(yīng)用程序可包括能夠創(chuàng)建、修改、處理以及以其他方式管理文檔的任何類型的 應(yīng)用程序。文檔的示例可包括但不限于,文字處理文檔、電子表格文檔、個人信息管 理器文檔、演示文檔、筆記文檔、數(shù)據(jù)庫文檔、發(fā)布文檔、數(shù)據(jù)條目文檔、圖文檔、項 目文檔、表格文檔、因特網(wǎng)文檔、標(biāo)記語言文檔、超文本標(biāo)記語言(HTML)文檔、可擴 展HTML (XHTML)、可擴展標(biāo)記語言(XML)文檔、通用標(biāo)記語言(GML)文檔、標(biāo)準(zhǔn) GML(SGML)文檔、輕量標(biāo)記語言(LML)文檔、用戶界面標(biāo)記語言(UIML)、矢量圖 標(biāo)記語言(VGML)文檔、基于web的文檔、在線文檔、網(wǎng)頁等等。應(yīng)用程序的示例可 包括但不限于與華盛頓州雷蒙德市微軟公司制作的MICROSOFT OFFICE生產(chǎn)性套件 包括在一起的任何應(yīng)用程序。在一實施例中,例如,應(yīng)用程序可包括諸如MICROSOFT WORD等的文字處理程序。MICROSOFT WORD應(yīng)用程序可被實現(xiàn)為MICROSOFT OFFICE LIVE或GOOGLE APPS所提供的基于web的應(yīng)用程序。然而,各實施例不限 于該示例。
在一實施例中,諸如文字處理程序等的應(yīng)用程序是以跨瀏覽器運行時技術(shù)來實 現(xiàn)的并且提供可與傳統(tǒng)的獨立文字處理程序的編輯特征相比的一組豐富的編輯特征。編 輯特征可包括涉及各端點之間的媒體內(nèi)容的傳送的任何命令、指令或偽指令。編輯特征 的示例可包括但不限于,復(fù)制命令、剪切命令、粘貼命令、粘貼特殊命令等。各端點之 間的傳送的示例可包括但不限于,文檔和系統(tǒng)剪貼板之間、兩個不同文檔之間、應(yīng)用程 序之間、系統(tǒng)程序和應(yīng)用程序之間、軟件對象之間等的媒體內(nèi)容的傳送。應(yīng)用程序可使 用被設(shè)計成支持該應(yīng)用程序的文檔編輯子系統(tǒng)來實現(xiàn)編輯特征。文檔編輯子系統(tǒng)可在網(wǎng) 絡(luò)的各個部分中實現(xiàn),諸如服務(wù)器執(zhí)行的基于web的應(yīng)用程序的一部分、客戶機設(shè)備執(zhí) 行的基于web的應(yīng)用程序、諸如web瀏覽器等的通信界面、另一網(wǎng)絡(luò)可訪問的或客戶機 可訪問的設(shè)備、或這些選項的組合。常規(guī)的基于web的編輯工具由于若干原因是不令人滿意的。例如,現(xiàn)有的基于 web的編輯工具通常具有實現(xiàn)編輯特征的有限能力,尤其是對于導(dǎo)入和導(dǎo)出數(shù)據(jù)到系統(tǒng) 剪貼板而言。這部分地由于web瀏覽器本身所施加的安全限制。因此編輯文檔依賴于 web瀏覽器所提供的編輯命令。例如,當(dāng)向用戶提供可編輯HTML表面時,隨后可以將 任何任意媒體內(nèi)容粘貼到該表面中。在這種情況下,文字處理程序?qū)τ诓僮髡哒迟N的任 意媒體內(nèi)容的樣式、格式化、以及布局具有有限的控制。此外,難以檢測這種編輯操作 并過濾在所有web瀏覽器中都起作用且現(xiàn)有應(yīng)用程序正在使用的內(nèi)容。對將媒體內(nèi)容復(fù) 制到系統(tǒng)剪貼板中存在類似的問題。web瀏覽器使用的選擇模型通常是有限的。例如, 操作者無法做出對文檔的不同部分的同時選擇,或做出對橫跨諸如內(nèi)聯(lián)幀(IFrame)等的 任何嵌入式內(nèi)容的選擇。此外,從源文檔(例如,呈現(xiàn)為網(wǎng)頁的文檔)復(fù)制的媒體內(nèi)容 可能對于目標(biāo)端點而言是不合適的格式。為了解決這些和其他問題,各實施例包括被安排成提供可與獨立文字處理程序 相比的一組增強的編輯特征的文檔編輯子系統(tǒng)。代替使用web瀏覽器所提供的編輯特征 來實現(xiàn)低層編輯功能,文字處理程序可利用文檔編輯子系統(tǒng)來實現(xiàn)各種編輯特征。具體 地,文檔編輯子系統(tǒng)可利用潛在傳送表面來實現(xiàn)各種編輯特征。潛在傳送表面被嵌入在 文檔中并被隱藏從而操作者無法查看。潛在傳送表面可用作文檔和系統(tǒng)剪貼板之間正在 傳送的媒體內(nèi)容的中間存儲結(jié)構(gòu)。在一方面,潛在傳送表面可被實現(xiàn)為HTML IFRAME 元素等。根據(jù)本文呈現(xiàn)的一個方面,可以使用潛在傳送表面來編輯web瀏覽器內(nèi)的文 檔。就此,在web瀏覽器中執(zhí)行的文字處理程序在瀏覽器窗口中顯示文檔。只要文檔編 輯子系統(tǒng)接收到編輯請求(例如,剪切傳送請求、復(fù)制傳送請求、粘貼傳送請求、粘貼 特殊傳送請求等),它就利用嵌入式潛在傳送表面來方便或執(zhí)行該編輯請求。一般地,文 檔編輯子系統(tǒng)將媒體內(nèi)容傳送到潛在傳送表面、處理媒體內(nèi)容、并隨后將已處理的媒體 內(nèi)容傳送給目標(biāo)對象(例如,文檔或系統(tǒng)剪貼板)。中間處理階段允許所選媒體內(nèi)容被變 換或轉(zhuǎn)換成適合于諸如響應(yīng)于復(fù)制傳送請求或剪切傳送請求的系統(tǒng)剪貼板、響應(yīng)于粘貼 傳送請求或粘貼特殊請求的文檔等的目標(biāo)端點的各種格式。各實施例不限于該上下文。應(yīng)當(dāng)理解,上述主題也可被實現(xiàn)為計算機控制的裝置、計算機進程、計算系統(tǒng) 或諸如計算機可讀介質(zhì)等制品。通過閱讀下面的詳細描述并審閱相關(guān)聯(lián)的附圖,這些及 各種其他特征將變得顯而易見。
6
圖1示出系統(tǒng)100的框圖。系統(tǒng)100可包括被設(shè)計成由單實體環(huán)境或多實體分 布式環(huán)境實現(xiàn)的各種元件。視給定的一組設(shè)計參數(shù)或性能約束的需要,每一元件可被實 現(xiàn)為硬件元件、軟件元件、或其任意組合。硬件元件的示例可以包括設(shè)備、組件、處理 器、微處理器、電路、電路元件(例如,晶體管、電阻器、電容器、電感器等)、集成電 路、專用集成電路(ASIC)、可編程邏輯器件(PLD)、數(shù)字信號處理器(DSP)、現(xiàn)場可編 程門陣列(FPGA)、存儲器單元、邏輯門、寄存器、半導(dǎo)體器件、芯片、微芯片、芯片 組等。軟件元件的示例可以包括任何軟件組件、程序、應(yīng)用軟件、計算機程序、應(yīng)用程 序、系統(tǒng)程序、機器程序、操作系統(tǒng)軟件、中間件、固件、軟件模塊、例程、子例程、 函數(shù)、方法、接口、軟件接口、應(yīng)用程序接口(API)、指令集、計算代碼、計算機代碼、 代碼段、計算機代碼段、文字、值、符號、或其任意組合。如此處所使用的,術(shù)語“系統(tǒng)”、“子系統(tǒng)”、“組件”和“模塊”旨在指示 計算機相關(guān)的實體,包括硬件、硬件和軟件的組合、軟件、或執(zhí)行中的軟件。例如,組 件可被實現(xiàn)成,在處理器上運行的進程、處理器、硬盤驅(qū)動器、多個(光和/或磁存儲介 質(zhì)的)存儲驅(qū)動器、對象、可執(zhí)行代碼、執(zhí)行的線程、程序、和/或計算機。作為說明, 運行在服務(wù)器上的應(yīng)用程序和服務(wù)器都可以是組件。一個或多個組件可以駐留在進程和 /或執(zhí)行的線程內(nèi),且組件可以視給定實現(xiàn)所需而位于一臺計算機上和/或分布在兩臺或 更多的計算機之間。各實施例不限于該上下文。圖1中示出的實施例示出使用潛在傳送表面130來編輯文檔的系統(tǒng)100的不同方 面。系統(tǒng)100包括計算機120,計算機120包括能夠執(zhí)行操作系統(tǒng)和一個或多個應(yīng)用程序 的標(biāo)準(zhǔn)臺式或膝上型計算機系統(tǒng)。計算機120在操作上連接到顯示器104、鼠標(biāo)108、以 及鍵盤110,以允許用戶102與在計算機120上執(zhí)行的系統(tǒng)和應(yīng)用程序進行交互。計算機 120通過諸如網(wǎng)絡(luò)160等一個或多個局域網(wǎng)和廣域網(wǎng)來互連到服務(wù)器計算機162。應(yīng)該理 解,可利用比圖1中示出的多得多的網(wǎng)絡(luò)連接。計算機120可用于執(zhí)行web瀏覽器122,web瀏覽器122在操作上經(jīng)由網(wǎng)絡(luò)160 連接到服務(wù)器計算機162所執(zhí)行的web服務(wù)器164。在一實施例中,web瀏覽器122是 能夠顯示HTML文檔的應(yīng)用程序,如來自微軟公司的INTERNET EXPLORER 、來自 MOZILLA的FIREFOX、或來自APPLE公司的SAFARI等等。然而,本領(lǐng)域技術(shù)人員可 以明白,可以使用能夠呈現(xiàn)標(biāo)記語言并執(zhí)行腳本邏輯的任何類型的應(yīng)用程序來實現(xiàn)web 瀏覽器122。服務(wù)器計算機162可用作web服務(wù)器且包括能夠向web瀏覽器122提供文檔 的任何軟件程序。服務(wù)器計算機162還連接到包含文檔和應(yīng)用程序140的數(shù)據(jù)存儲168, 這將在以下更詳細地描述。根據(jù)一實施例,這些文檔可包括要提供給web瀏覽器122的 文檔128。例如,文檔128可包括web瀏覽器122所呈現(xiàn)的HTML文檔。在計算機120 的用戶102請求時,web瀏覽器122可用于從web服務(wù)器164檢索文檔128并將其呈現(xiàn)在 顯示器104的窗口 106中以呈現(xiàn)給用戶102。如上所簡要討論的,系統(tǒng)100還包括諸如文字處理程序等的應(yīng)用程序140。應(yīng)用 程序140可用于允許計算機120的用戶102編輯窗口 106中的文檔128的內(nèi)容。根據(jù)一 實施例,應(yīng)用程序140能夠在web瀏覽器122所提供的運行時環(huán)境內(nèi)執(zhí)行。例如,可以 使用AJAX開發(fā)技術(shù)來創(chuàng)建應(yīng)用程序140。在一實施例中,從web服務(wù)器164中檢索應(yīng)用程序140連同要編輯的文檔128。
7在替換實施例中,應(yīng)用程序140可駐留在計算機120本地。應(yīng)用程序140包括應(yīng)用程序模 塊148,應(yīng)用程序模塊148包括用于向用戶102提供給定的一組功能(例如,文字處理) 的應(yīng)用程序邏輯。在一實施例中,應(yīng)用程序140維護在內(nèi)部文檔圖像150中編輯的文檔的 內(nèi)容。在其他實施例中,應(yīng)用程序140維護在文檔128中直接編輯的文檔的內(nèi)容。顯示 呈現(xiàn)器124呈現(xiàn)文檔128以供顯示。例如,顯示呈現(xiàn)器124可被實現(xiàn)為HTML呈現(xiàn)器。在一實施例中,應(yīng)用程序140包括監(jiān)視來自用戶輸入處理器126的用戶輸入事件 的事件處理模塊146。如以下將參考圖2詳細描述的,事件處理模塊146可用于檢測用 戶102將插入指針置于并移動到文檔128 (如在窗口 106中顯示的)中的一個或多個位置 處。事件處理模塊146還可用于在編輯文檔內(nèi)容期間監(jiān)視用戶輸入事件。例如,事件處 理模塊146可在準(zhǔn)備編輯命令時檢測對文檔128中的媒體內(nèi)容的一個或多個部分的選擇。計算機120可使用被安排成一般管理諸如文檔128等的文檔的編輯操作和編輯特 征的改進的文檔編輯子系統(tǒng)200。具體地,文檔編輯子系統(tǒng)200可利用潛在傳送表面130 來支持或?qū)崿F(xiàn)各種編輯特征。文檔編輯子系統(tǒng)200按照保持其不可見或隱藏從而用戶102 無法查看的方式將潛在傳送表面130嵌入到文檔128中。文檔編輯子系統(tǒng)200可將潛在 傳送表面130用作文檔128和系統(tǒng)剪貼板之間正在傳送的媒體內(nèi)容的中間存儲結(jié)構(gòu)。潛在傳送表面130可包括適于與顯示呈現(xiàn)器124所使用的給定標(biāo)記語言一起使用 以在顯示器104上的瀏覽器窗口 106中呈現(xiàn)文檔128以便呈現(xiàn)給用戶102的可編輯幀。 此外,潛在傳送表面是隱藏的、潛在的或不可見的,所以用戶120在查看瀏覽器窗口 106 中的文檔128的同時無法查看或感知該可編輯幀。在一實施例中,例如,潛在傳送表面 130可被實現(xiàn)為HTML IFRAME元素等。也可以使用對用戶102不可見的且適于與特定 文檔一起使用的任何可編輯幀來作為潛在傳送表面130。各實施例不限于該上下文。潛在傳送表面130可用作用戶102粘貼到文檔128中的媒體內(nèi)容的暫存或臨時存 儲,以及呈現(xiàn)用于復(fù)制或剪切命令的所選內(nèi)容的地方。使用不可見的或潛在的傳送表面 130允許每一文檔128臨時地存儲正被傳送給文檔128或正從文檔128傳送的媒體內(nèi)容。 文檔編輯子系統(tǒng)200可監(jiān)視潛在傳送表面130,并檢測媒體內(nèi)容何時已經(jīng)被暫存入潛在傳 送表面130。文檔編輯子系統(tǒng)200隨后可將潛在傳送表面130所存儲的媒體內(nèi)容變換或 轉(zhuǎn)換成適于目標(biāo)端點(例如,系統(tǒng)剪貼板或文檔)的格式。以此方式,文檔編輯子系統(tǒng) 200和潛在傳送表面130允許應(yīng)用程序140控制正使用粘貼命令或粘貼特殊命令從系統(tǒng)剪 貼板142插入到文檔128中的媒體內(nèi)容,以及正使用復(fù)制命令或剪切命令從文檔128復(fù)制 或移動到系統(tǒng)剪貼板142的媒體內(nèi)容的格式化。這種類型的模型和典型web瀏覽器實現(xiàn) 的編輯特征所提供的默認(rèn)行為之間的區(qū)別在于文檔編輯子系統(tǒng)200維持對所選媒體內(nèi)容 的完全控制,這允許文檔編輯子系統(tǒng)200操縱媒體內(nèi)容的樣式、格式化、布局和其他格 式化方面,而不是限于web瀏覽器所提供的那些編輯特征和控制。在一實施例中,例如,文檔編輯子系統(tǒng)200可使用潛在傳送表面130來處理粘 貼和粘貼特殊命令。具體地,文檔編輯子系統(tǒng)200可將潛在傳送表面130實現(xiàn)為在顯示 器104的窗口 106中呈現(xiàn)為網(wǎng)頁的文檔128上的新HTML元素。通過程序上將焦點放置 在潛在傳送表面130中,觸發(fā)粘貼命令的用戶動作會把媒體內(nèi)容放置在潛在傳送表面130 中。術(shù)語“焦點”指的是給定文檔中的插入點或當(dāng)前選擇的位置??梢员O(jiān)視潛在傳送 表面130的內(nèi)容來檢測粘貼操作何時發(fā)生。當(dāng)發(fā)生粘貼操作時,可以檢查潛在傳送表面130的內(nèi)容并將其變換成適于文檔128的格式。在變換了數(shù)據(jù)之后,將其插入到文檔128 的用戶視圖中。以此方式,可以維持對出現(xiàn)在網(wǎng)頁上的媒體內(nèi)容的控制,且可以保留關(guān) 于已經(jīng)對文檔128做出的編輯的信息。在一實施例中,例如,文檔編輯子系統(tǒng)200還可使用潛在傳送表面130來處理復(fù) 制、移動和剪切命令。當(dāng)用戶102使用諸如鍵盤或鼠標(biāo)等的輸入設(shè)備來選擇文檔128中 的某些媒體內(nèi)容時,文檔編輯子系統(tǒng)200確定用戶想要選擇什么媒體內(nèi)容。文檔編輯子 系統(tǒng)200隨后改變所選媒體內(nèi)容的格式化來指示其被選擇(例如,文本上的藍色背景)。 文檔編輯子系統(tǒng)200將潛在傳送表面130的內(nèi)容設(shè)為代表用戶102所選擇的確切數(shù)據(jù)的 HTML代碼或其他代碼的運行。文檔編輯子系統(tǒng)200通過程序?qū)⑽臋n128中的焦點設(shè)為 指向潛在傳送表面130的內(nèi)容。結(jié)果,當(dāng)用戶102執(zhí)行復(fù)制命令時,系統(tǒng)剪貼板142將 由文檔編輯子系統(tǒng)200所生成的媒體內(nèi)容來填充。圖2示出了文檔編輯子系統(tǒng)200的更詳細的框圖。文檔編輯子系統(tǒng)200可包括多 個組件和/或模塊。在圖2中示出的所示實施例中,文檔編輯子系統(tǒng)200可包括編輯管 理器組件220、存儲組件230、和輸入/輸入(I/O)組件240。這些組件和/或模塊可使 用硬件元件、軟件元件或硬件元件和軟件元件的組合來實現(xiàn)。雖然如圖2所示的文檔編 輯子系統(tǒng)200具有呈特定拓撲結(jié)構(gòu)的有限數(shù)量的元件,但可以理解,文檔編輯子系統(tǒng)200 視給定實現(xiàn)所需可包括呈替換拓撲結(jié)構(gòu)的更多或更少的元件。編輯管理器組件220可被安排成接收事件消息隊列222處的各種輸入事件消息 202。事件消息隊列222可包括用于處理事件消息的一個或多個隊列。在一實施例中, 例如,事件消息隊列222可處理帶有不同優(yōu)先級的事件消息。事件處理模塊146可使用 事件消息隊列222來處理各種事件消息202。編輯管理器組件202可包括控制邏輯224??刂七壿?24可被安排成基于配置信 息206來控制編輯管理器組件220的操作。例如,控制邏輯224可執(zhí)行算法、邏輯流或 狀態(tài)機來對響應(yīng)于各種輸入事件消息202從各種輸入子系統(tǒng)接收的輸入數(shù)據(jù)執(zhí)行各種操 作??刂七壿?24可基于配置信息206來處理輸入數(shù)據(jù)??刂七壿?24還可生成各種輸 出事件消息204,并將輸出事件消息204發(fā)送到事件調(diào)度器和分派器226。編輯管理器組件220可包括事件調(diào)度器和分派器226。事件調(diào)度器和分派器226 可被安排成啟動對其他外部實體的事件,并分派編輯管理器組件220中的內(nèi)部事件和消 息。例如,事件調(diào)度器和分派器226將響應(yīng)于輸入事件消息202的各種輸出事件消息204 發(fā)送給系統(tǒng)100的其他系統(tǒng)、子系統(tǒng)、組件或模塊。在一實施例中,文檔編輯子系統(tǒng)200可包括存儲組件230。存儲組件230可被安 排成與數(shù)據(jù)存儲和邏輯一起來管理用于編輯管理器組件220的存儲操作。存儲組件230可 將編輯管理器組件220所使用的臨時或非事務(wù)信息存儲在臨時數(shù)據(jù)存儲232中。例如, 臨時或非事務(wù)信息可在臨時數(shù)據(jù)存儲232中被存儲為可擴展標(biāo)記語言(XML)、二進制文 件、或某一其他格式。存儲組件230可將編輯管理器組件220所使用的持久或事務(wù)信息 存儲在永久數(shù)據(jù)存儲234中。數(shù)據(jù)存儲232、234可分別包括單獨的數(shù)據(jù)存儲,或構(gòu)成諸 如存儲區(qū)域網(wǎng)絡(luò)(SAN)等的更大數(shù)據(jù)存儲陣列的一部分的多個數(shù)據(jù)存儲。此外,存儲組 件230和數(shù)據(jù)存儲232、234在需要滿足系統(tǒng)等待時間和容量參數(shù)的情況下可實現(xiàn)適當(dāng)?shù)?數(shù)據(jù)緩存和高速緩存的技術(shù)和結(jié)構(gòu)。存儲組件230還管理用于日志記錄和審計存儲的操作。在一實施例中,文檔編輯子系統(tǒng)200可包括I/O組件240。I/O組件240可被 安排成與緩沖區(qū)和邏輯一起來管理在整個文檔編輯子系統(tǒng)200內(nèi)移動信息的傳輸和I/O操 作。例如,I/O組件240可包括從輸入子系統(tǒng)接收并存儲輸入數(shù)據(jù)208的一個或多個輸 入數(shù)據(jù)緩沖區(qū)242。編輯管理器組件220中的一個或多個模塊可處理輸入數(shù)據(jù)208來形成 已處理的數(shù)據(jù),并將其發(fā)送到一個或多個輸出數(shù)據(jù)緩沖區(qū)246。輸出數(shù)據(jù)緩沖區(qū)246可被 安排成存儲輸出數(shù)據(jù)并將其發(fā)送給輸出子系統(tǒng)。數(shù)據(jù)管理器244可實現(xiàn)邏輯和網(wǎng)絡(luò)接口 (例如,web服務(wù)接口)來控制并管理數(shù)據(jù)收集服務(wù)和數(shù)據(jù)分發(fā)服務(wù)。I/O組件240可實 現(xiàn)一個或多個變換緩沖區(qū)248來將輸入數(shù)據(jù)208和/或已處理的數(shù)據(jù)從一種格式、數(shù)據(jù)模 式或協(xié)議變換成替換格式、數(shù)據(jù)模式或協(xié)議。在通用操作中,文檔編輯子系統(tǒng)200可利用計算機120所執(zhí)行的web瀏覽器122 來實現(xiàn)應(yīng)用程序140的各種編輯特征。更具體地,文檔編輯子系統(tǒng)200可使用潛在傳送 表面130來支持編輯特征。這可以通過使用若干編輯模塊228-1-p來實現(xiàn)。在圖2示 出的說明實施例中,編輯模塊228-1-p可包括傳送表面創(chuàng)建模塊228-1、傳送控制模塊 228-2、以及媒體內(nèi)容變換模塊228-3。雖然在圖2中作為示例而非限制地示出特定數(shù)量 的編輯模塊228-1-p,但可以理解,視給定實現(xiàn)所需的各組創(chuàng)新市場運作,可以實現(xiàn)更多 或更少的模塊。各實施例不限于該上下文。傳送表面創(chuàng)建模塊228-1 —般可用于創(chuàng)建潛在傳送表面130并將其嵌入到文檔 128中。潛在傳送表面130可用作允許文檔編輯子系統(tǒng)200控制到和從基于web的應(yīng)用 程序140的媒體內(nèi)容的導(dǎo)入和導(dǎo)出的臨時存儲結(jié)構(gòu)。潛在傳送表面130是由應(yīng)用程序140 控制的但實際上對應(yīng)用程序140的用戶102不可見的可編輯幀(例如,IFrame)。潛在傳 送表面130用作用戶102、web瀏覽器122、應(yīng)用程序、或某一其他實體或?qū)ο蟀l(fā)出的編 輯命令的中間目的地位置。傳送表面創(chuàng)建模塊228-1可在各個階段處創(chuàng)建潛在傳送表面130。例如,傳送表 面創(chuàng)建模塊228-1可在用戶102啟動應(yīng)用程序140時創(chuàng)建潛在傳送表面130。在另一示例 中,傳送表面創(chuàng)建模塊228-1可在顯示呈現(xiàn)器124在瀏覽器窗口 106中呈現(xiàn)文檔128時創(chuàng) 建潛在傳送表面130。在任一情形中,一旦創(chuàng)建了潛在傳送表面130,應(yīng)用程序140維持 對其的引用。潛在傳送表面130可包括適于與顯示呈現(xiàn)器124所使用的給定標(biāo)記語言一起使用 來在顯示器104上的瀏覽器窗口 106中呈現(xiàn)文檔128以供向用戶102呈現(xiàn)的可編輯幀。在 一實施例中,例如,潛在傳送表面130可被實現(xiàn)為HTMLIFRAME元素等。此外,潛在 傳送表面是隱藏的或不可見的,所以用戶120在查看瀏覽器窗口 106中的文檔128的同時 無法查看或感知該可編輯幀。傳送控制模塊228-2可通信耦合到傳送表面創(chuàng)建模塊228_1。傳送控制模塊 228-2 —般可被安排成使用潛在傳送表面130來控制文檔編輯子系統(tǒng)200的傳送操作。 在一實施例中,例如,傳送控制模塊228-2可接收事件處理模塊146所截取的傳送文檔 128的媒體內(nèi)容的傳送請求。隨后傳送控制模塊228-2響應(yīng)于該傳送請求可以使用潛在傳 送表面130來協(xié)調(diào)媒體內(nèi)容的傳送。傳送請求的示例可包括但不限于,諸如復(fù)制傳送請 求、剪切傳送請求、粘貼傳送請求、粘貼特殊傳送請求等的任何合適的編輯命令。
10
傳送控制模塊228-2可用于響應(yīng)于復(fù)制傳送請求或剪切傳送請求將媒體內(nèi)容從 文檔128傳送到潛在傳送表面130。傳送控制模塊228-2為文檔編輯子系統(tǒng)200提供選 擇和復(fù)制支持。傳送控制模塊228-2跟蹤并處理用戶102的鍵盤和鼠標(biāo)動作來確定用戶 102已經(jīng)選擇了文檔128中的什么媒體內(nèi)容。作為對比,常規(guī)的web瀏覽器通常選擇基 于web的應(yīng)用程序的內(nèi)容。然而,傳送控制模塊228-2在此時介入并維持對用戶102正 試圖選擇文檔128上的哪些對象(文本、圖像等)的跟蹤。傳送控制模塊228-2會在視 覺上用某種可感知的方式將此向用戶102顯示,諸如改變文本上的背景顏色、加亮圖像 周圍的邊框、以及其他適當(dāng)?shù)膱D形用戶界面(GUI)技術(shù)。幾乎在同一時刻,傳送控制模塊228-2會將所選媒體內(nèi)容呈現(xiàn)在潛在傳送表面 130中。這可以通過例如在潛在傳送表面130內(nèi)部創(chuàng)建適當(dāng)?shù)腍TML樹來實現(xiàn)。這允許 應(yīng)用程序140按照與目標(biāo)端點所使用的當(dāng)前格式化特征兼容的方式來呈現(xiàn)媒體內(nèi)容。例 如,假設(shè)文檔128上的選擇包括表格內(nèi)部的文本串。取決于目標(biāo),傳送控制模塊228-2 可任選地選擇是否將周圍表格作為呈現(xiàn)在潛在傳送表面130中的媒體內(nèi)容的一部分來包 括。例如,當(dāng)周圍表格被用于頁面上的元素的邏輯關(guān)聯(lián)時,傳送控制模塊228-2可包 括周圍表格,如果周圍表格僅用于布局目的,則傳送控制模塊228-2排除周圍表格,等寸。一旦傳送控制模塊228-2確定潛在傳送表面130所存儲的所選內(nèi)容的呈現(xiàn),則傳 送控制模塊228-2可使用javascript代碼或某一其他合適的技術(shù)來指示web瀏覽器122將 媒體內(nèi)容標(biāo)記為已選擇。視覺上,該動作對用戶102隱藏。相反,用戶102將只看到如 上所述的選擇指示的可視元素。此時,用戶102可通過按下鍵盤快捷方式、使用右擊上 下文菜單、瀏覽器編輯菜單等來決定是否發(fā)出復(fù)制命令或剪切命令。當(dāng)發(fā)出復(fù)制/剪切 命令時,傳送控制模塊228-2會將已變換的媒體內(nèi)容從潛在傳送表面130傳送到系統(tǒng)剪貼 板142。以此方式,傳送控制模塊228-2可用于精確地確定什么媒體內(nèi)容要被傳遞到系統(tǒng) 剪貼板142,而非限于web瀏覽器122所提供的編輯特征。傳送控制模塊228-2可用于響應(yīng)于粘貼傳送請求將媒體內(nèi)容從系統(tǒng)剪貼板傳送 到潛在傳送表面130,并將任何已變換的媒體內(nèi)容從潛在傳送表面?zhèn)魉偷轿臋n128。傳送 控制模塊228-2為文檔編輯子系統(tǒng)200提供粘貼和過濾支持。在web瀏覽器122或獨立 應(yīng)用程序中,文檔128的焦點在任何給定時刻只能存在于一個位置。如前所述,傳送控 制模塊228-2將焦點置于潛在傳送表面130內(nèi)部來允許復(fù)制或剪切操作。類似地,潛在傳 送表面130還可用作粘貼和粘貼特殊操作的目標(biāo)。當(dāng)用戶發(fā)出粘貼或粘貼特殊命令時, 傳送控制模塊228-2通過顯式通知或定期檢查潛在傳送表面130的內(nèi)容來檢測這種情況。 當(dāng)傳送控制模塊228-2檢測潛在傳送表面130中的媒體內(nèi)容時,傳送控制模塊228-2可發(fā) 出用于媒體內(nèi)容變換模塊228-3的偽指令。媒體內(nèi)容變換模塊228-3可通信耦合到傳送控制模塊228_2。媒體內(nèi)容變換模 塊228-3 —般可用于將潛在傳送表面130所存儲的媒體內(nèi)容從第一格式變換成第二格式。 這可以通過例如使用數(shù)據(jù)管理器244和變換緩沖區(qū)248來實現(xiàn)。因為潛在傳送表面130是文檔128的隱藏元素,所以用戶120最初不能在給出編 輯命令之后立即查看媒體內(nèi)容。這允許媒體內(nèi)容變換模塊228-3有時間將潛在傳送表面 中的媒體內(nèi)容從源格式轉(zhuǎn)換或變換成目的地格式。結(jié)果,應(yīng)用程序140響應(yīng)于粘貼/粘
11貼特殊命令來維持對文檔128的樣式和布局的控制,或?qū)奈臋n128傳送到系統(tǒng)剪貼板 142的媒體內(nèi)容的樣式和布局的控制。媒體內(nèi)容變換模塊228-3解析傳送到潛在傳送表面 130中的媒體內(nèi)容,并將該媒體內(nèi)容轉(zhuǎn)換成該媒體內(nèi)容所表示的一種適當(dāng)?shù)臄?shù)據(jù)表示。例 如,當(dāng)文本被傳送到潛在傳送表面130時,在存儲器中創(chuàng)建TextRunNode (文本串節(jié)點)。 如果所粘貼的媒體內(nèi)容中的文本用指示加粗文本的HTML<B>標(biāo)簽來格式化,則媒體內(nèi) 容變換模塊228-3會在TextRunNode上設(shè)置指示文本呈現(xiàn)為粗體的屬性,等等。這對于 一般應(yīng)用程序140,尤其是文檔編輯子系統(tǒng)200所支持的所有各種類型的HTML節(jié)點進 行。一旦完成變換操作,媒體內(nèi)容變換模塊228-3通知傳送控制模塊228-2,傳送控制模 塊228-2隨后更新實際文檔128來包括以用戶102可見的方式新呈現(xiàn)的媒體內(nèi)容。通過在編輯操作中間介入,文檔編輯子系統(tǒng)200提供應(yīng)用用戶102和/或應(yīng)用程 序140所需的任何格式化的機會。例如,所傳送的媒體內(nèi)容可被變換成匹配當(dāng)前為文檔 128實現(xiàn)的默認(rèn)外觀,以剝離不需要的媒體內(nèi)容,等等。以此方式,應(yīng)用程序140可維持 對文檔128的布局和格式化的嚴(yán)格控制。圖3示出系統(tǒng)300的一實施例。系統(tǒng)300示出執(zhí)行編輯命令時涉及的某些元件 之間的邏輯數(shù)據(jù)流。如圖3所示,文檔編輯子系統(tǒng)200可經(jīng)由web瀏覽器122從用戶102接收對所選 內(nèi)容332的復(fù)制傳送請求310。傳送控制模塊228-2可接收復(fù)制傳送請求310,并將所選 內(nèi)容332從文檔128傳送到潛在傳送表面130。潛在傳送表面130可將所選內(nèi)容332存儲 為臨時內(nèi)容334?;蛘?,可使用web瀏覽器122的編輯控件來選擇并傳送所選內(nèi)容332。 在這種情況下,文檔編輯子系統(tǒng)200可經(jīng)由事件處理模塊146來截取來自web瀏覽器122 的控制偽指令。在任一情形中,傳送控制模塊228-2可檢測潛在傳送表面130具有準(zhǔn)備 變換的媒體內(nèi)容,并相應(yīng)地通知媒體內(nèi)容變換模塊228-3。媒體內(nèi)容變換模塊228-3從傳送控制模塊228_2接收通知并啟動變換操作。媒 體內(nèi)容變換模塊228-3為臨時內(nèi)容334確定適當(dāng)?shù)母袷?。這可以用多個不同的方式來實 現(xiàn)。例如,媒體內(nèi)容變換模塊228-3可存儲對應(yīng)于不同目標(biāo)端點的不同變換模塊。媒體 內(nèi)容變換模塊228-3可為臨時內(nèi)容334確定目標(biāo)端點、檢索相應(yīng)的變換模塊、并使用所檢 索的變換模塊將臨時內(nèi)容334變換成適于不同目標(biāo)端點的不同格式。當(dāng)媒體內(nèi)容的目的 地為多個端點或當(dāng)其與傳統(tǒng)系統(tǒng)一起使用時,這可能是合適的。另外地或另選地,媒體 內(nèi)容變換模塊228-3可將臨時內(nèi)容334變換成對于所有目標(biāo)端點可接受的標(biāo)準(zhǔn)或通用格 式。當(dāng)媒體內(nèi)容的目的地是具有相同能力的端點時,這可能是合適的。媒體內(nèi)容變換模 塊228-3可使用變換緩沖區(qū)248來支持變換操作。一旦完成變換操作,媒體內(nèi)容變換模塊228-3通知傳送控制模塊228-2。傳送控 制模塊228-2將已變換的媒體內(nèi)容傳送到諸如系統(tǒng)剪貼板142等的目標(biāo)端點。系統(tǒng)剪貼 板142現(xiàn)在存儲諸如HTML代碼串等格式的內(nèi)容336,其被設(shè)計成按照與最初從文檔128 復(fù)制或剪切的所選內(nèi)容332類似的方式來呈現(xiàn)所存儲的內(nèi)容336。類似地,文檔編輯子系統(tǒng)200可經(jīng)由web瀏覽器122從用戶102接收對所存儲的 內(nèi)容322的粘貼傳送請求312。傳送控制模塊228-2可接收粘貼傳送請求312,并將所存 儲的內(nèi)容332從系統(tǒng)剪貼板142傳送到潛在傳送表面130。潛在傳送表面130可將所選內(nèi) 容332存儲為臨時內(nèi)容324?;蛘?,web瀏覽器122的編輯控件可用于傳送所存儲的內(nèi)容322。在這種情況下,文檔編輯子系統(tǒng)200可經(jīng)由事件處理模塊146截取來自web瀏覽器 122的控制偽指令。在任一情形中,傳送控制模塊228-2可檢測潛在傳送表面130具有準(zhǔn) 備變換的媒體內(nèi)容,并相應(yīng)地通知媒體內(nèi)容變換模塊228-3。媒體內(nèi)容變換模塊228-3從傳送控制模塊228_2接收通知并啟動變換操作。媒 體內(nèi)容變換模塊228-3為臨時內(nèi)容324確定適當(dāng)?shù)母袷?。這可以通過參考復(fù)制傳送請求 310所描述的類似的方式來實現(xiàn),但伴有某些例外。然而,因為在這種情況下臨時內(nèi)容 324的目標(biāo)端點是文檔128,媒體內(nèi)容變換模塊228-3可將所存儲的內(nèi)容322的不同格式 變換成文檔128當(dāng)前所使用的特定格式。這可導(dǎo)致更多的多對一類型的格式變換操作而 不是多對多類型的格式變換操作。一旦完成變換操作,媒體內(nèi)容變換模塊228-3通知傳送控制模塊228-2。傳送控 制模塊228-2將已變換的媒體內(nèi)容傳送到諸如文檔128等的目標(biāo)端點。文檔128隨后按 照與文檔128兼容的樣式和格式為用戶102顯示所粘貼的內(nèi)容326。上述實施例的操作可參考一個或多個邏輯流程來進一步描述??梢岳斫猓?非另外指明,否則代表性的邏輯流程不一定要按所呈現(xiàn)的次序或者按任何特定次序來執(zhí) 行。而且,關(guān)于邏輯流程描述的各種活動可按串行或并行的方式執(zhí)行。視給定一組設(shè)計 和性能約束所需,邏輯流程可使用所述實施例的一個或多個硬件元件和/或軟件元件或 替換元件來實現(xiàn)。例如,邏輯流程可被實現(xiàn)為供邏輯設(shè)備(例如,通用或?qū)S糜嬎銠C) 執(zhí)行的邏輯(例如,計算機程序指令)。圖4示出邏輯流程400的一個實施例。邏輯流程400可表示由在此所描述的一 個或多個實施方式所執(zhí)行的操作中的部分或全部。在圖4示出的所示實施例中,在框402處,邏輯流程400可以將潛在傳送表面嵌 入到文檔中。例如,傳送表面創(chuàng)建模塊228-1可創(chuàng)建潛在傳送表面130并將其嵌入到文 檔128中。這可以在啟動應(yīng)用程序140或為應(yīng)用程序140生成新文檔期間發(fā)生。傳送創(chuàng) 建模塊228-1可為潛在傳送表面130創(chuàng)建引用,并將該引用傳送到傳送控制模塊228-2。邏輯流程400可在框404處接收傳送文檔的媒體內(nèi)容的傳送請求。例如,傳送 控制模塊228-1可接收將文檔128的媒體內(nèi)容(322、332)傳送到諸如文檔128、系統(tǒng)剪貼 板142、或其他端點等的目標(biāo)端點的傳送請求(310、312)。傳送控制模塊228-1可經(jīng)由 事件處理模塊146來截取來自web瀏覽器122的傳送請求。邏輯流程400在框406處響應(yīng)于該傳送請求可以使用潛在傳送表面來傳送媒體內(nèi) 容。例如,傳送控制模塊228-1響應(yīng)于傳送請求(310、312)可使用潛在傳送表面130來 傳送媒體內(nèi)容(322、332)。在許多情況下,媒體內(nèi)容(322、332)可包括具有與目標(biāo)端點 (128、142)兼容的格式的已變換的媒體內(nèi)容(324、344)。圖5還示出適于實現(xiàn)各種實施例的計算體系結(jié)構(gòu)510的更詳細的框圖,如計算機 120、服務(wù)器計算機162等等。在基本配置中,計算體系結(jié)構(gòu)510通常包括至少一個處理 單元532和存儲器534。存儲器534可以使用能夠存儲數(shù)據(jù)的任何機器可讀或計算機可 讀介質(zhì)來實現(xiàn),包括易失性和非易失性存儲器。例如,存儲器534可以包括只讀存儲器 (ROM)、隨機存取存儲器(RAM)、動態(tài)RAM (DRAM)、雙數(shù)據(jù)率DRAM (DDRAM)、 同步DRAM (SDRAM)、靜態(tài)RAM (SRAM)、可編程ROM (PROM)、可擦除可編程 ROM (EPROM)、電可擦除可編程ROM(EEPROM)、閃存、諸如鐵電聚合物存儲器等聚合物存儲器、奧氏存儲器、相變或鐵電存儲器、硅-氧化物-氮化物-氧化物-硅 (SONOS)存儲器、磁卡或光卡、或適于存儲信息的任何其它類型的介質(zhì)。如圖5所示, 存儲器534可存儲各種軟件程序,諸如一個或多個軟件程序536-1-t和附帶數(shù)據(jù)。取決 于實現(xiàn),軟件程序536-1-t的示例可包括系統(tǒng)程序536-1 (例如,操作系統(tǒng))、應(yīng)用程序 536-2 (例如,web瀏覽器122、應(yīng)用程序140等)、文檔編輯子系統(tǒng)200等。計算體系結(jié)構(gòu)510還可具有除其基本配置之外的附加特征和/或功能。例如, 計算體系結(jié)構(gòu)510可包括可移動存儲538和不可移動存儲540,這些存儲還可包括如上所 述的各種類型的機器可讀或計算機可讀介質(zhì)。計算體系結(jié)構(gòu)510還可具有一個或多個輸 入設(shè)備544,如鍵盤、鼠標(biāo)、筆、語音輸入設(shè)備、觸摸輸入設(shè)備、測量設(shè)備、傳感器等。 計算體系結(jié)構(gòu)510還可包括一個或多個輸出設(shè)備542,諸如顯示器、揚聲器、打印機等。計算體系結(jié)構(gòu)510還可包括允許計算體系結(jié)構(gòu)510與其他設(shè)備進行通信的一個或 多個通信連接546。通信連接546可表示,例如用于通信組件116-1-v的通信接口。通信 連接546可以包括各種類型的標(biāo)準(zhǔn)通信元件,如一個或多個通信接口、網(wǎng)絡(luò)接口、網(wǎng)絡(luò) 接口卡(NIC)、無線電、無線發(fā)射機/接收機(收發(fā)機)、有線和/或無線通信介質(zhì)、物理 連接器等。通信介質(zhì)通常以諸如載波或其他傳輸機制等已調(diào)制數(shù)據(jù)信號來體現(xiàn)計算機可 讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其他數(shù)據(jù),并包括任意信息傳送介質(zhì)。術(shù)語“已調(diào)制數(shù) 據(jù)信號”指的是其一個或多個特征以在信號中編碼信息的方式被設(shè)定或更改的信號。作 為示例而非限制,通信介質(zhì)包括有線通信介質(zhì)和無線通信介質(zhì)。有線通信介質(zhì)的示例可 以包括導(dǎo)線、電纜、金屬線、印刷電路板(PCB)、背板、交換光纖、半導(dǎo)體材料、雙絞 線、同軸電纜、光纖、所傳播的信號等。無線通信介質(zhì)的示例可以包括聲學(xué)、射頻(RF) 頻譜、紅外和其他無線介質(zhì)。此處使用的術(shù)語機器可讀介質(zhì)和計算機可讀介質(zhì)旨在包括 存儲介質(zhì)和通信介質(zhì)兩者。圖6示出了適用于存儲包括邏輯流程400在內(nèi)的用于各實施例的邏輯的制品600 的圖示。如圖所示,制品600可包括用于存儲邏輯604的存儲介質(zhì)602。存儲介質(zhì)602的 示例可包括能夠存儲電子數(shù)據(jù)的一種或多種類型的計算機可讀存儲介質(zhì),包括易失性存 儲器或非易失性存儲器、可移動或不可移動存儲器、可擦除或不可擦除存儲器、可寫或 可重寫存儲器等。邏輯604的示例可包括各種軟件元件,諸如軟件組件、程序、應(yīng)用軟 件、計算機程序、應(yīng)用程序、系統(tǒng)程序、機器程序、操作系統(tǒng)軟件、中間件、固件、軟 件模塊、例程、子例程、函數(shù)、方法、過程、軟件接口、應(yīng)用程序接口(API)、指令集、 計算代碼、計算機代碼、代碼段、計算機代碼段、文字、值、符號、或其任意組合。例如,在一個實施例中,制品600和/或計算機可讀存儲介質(zhì)602可存儲包括 可執(zhí)行計算機程序指令的邏輯604,這些指令在被計算機執(zhí)行時使該計算機執(zhí)行根據(jù)所述 實施例的方法和/或操作??蓤?zhí)行計算機程序指令可包括任何合適類型的代碼,諸如源 代碼、已編譯代碼、已解釋代碼、可執(zhí)行代碼、靜態(tài)代碼、動態(tài)代碼等。可執(zhí)行計算機 程序指令可根據(jù)用于指示計算機執(zhí)行特定功能的預(yù)定義的計算機語言、方式或句法來實 現(xiàn)。這些指令可使用任何合適的高級、低級、面向?qū)ο?、可視、已編譯和/或已解釋編 程語言來實現(xiàn),諸如 C、C++、Java、BASIC、Perl、Matlab、Pascal、Visual BASIC、匯 編語言等。各實施例可以使用硬件元件、軟件元件或兩者的組合來實現(xiàn)。硬件元件的示例
14可以包括如先前關(guān)于邏輯設(shè)備所提供的任何示例,且還可以包括微處理器、電路、電路 元件(例如,晶體管、電阻器、電容器、電感器等等)、集成電路、邏輯門、寄存器、 半導(dǎo)體器件、芯片、微芯片、芯片組等等。軟件元件的示例可以包括軟件組件、程序、 應(yīng)用軟件、計算機程序、應(yīng)用程序、系統(tǒng)程序、機器程序、操作系統(tǒng)軟件、中間件、固 件、軟件模塊、例程、子例程、函數(shù)、方法、過程、軟件接口、應(yīng)用程序接口(API)、指 令集、計算代碼、計算機代碼、代碼段、計算機代碼段、文字、值、符號、或其任意組 合。確定一實施例是否使用硬件元件和/或軟件元件來實現(xiàn)可視給定實現(xiàn)所需根據(jù)任何 數(shù)量的因素而變化,這些因素如所需計算速率、功率級、耐熱性、處理周期預(yù)算、輸入 數(shù)據(jù)速率、輸出數(shù)據(jù)速率、存儲器資源、數(shù)據(jù)總線速度以及其他設(shè)計或性能約束。一些實施例可使用表述“耦合的”和“連接的”及其派生詞來描述。這些術(shù)語 不必旨在互為同義詞。例如,一些實施例可使用術(shù)語“連接的”和/或“耦合的”來 描述以指示兩個或更多元件彼此有直接的物理或電接觸。然而,術(shù)語“耦合的”還可以 意味著兩個或更多元件彼此不直接接觸,而仍彼此合作或交互。要強調(diào)的是,提供了本發(fā)明的摘要以符合37C.F.R.1.72(b)節(jié),該節(jié)要求可使讀 者快速確定本技術(shù)公開的特性的摘要。提交摘要的同時要明白,將不用它來解釋或限制 權(quán)利要求的范圍或含義。另外,在前面的詳細描述中,可以看到,出于將本公開連成一 個整體的目的而將各種特征組合在一起放在單個實施方式中。此公開方法將不被解釋為 反映所要求保護的實施方式要求比每個權(quán)利要求中明確陳述的更多特征的意圖。相反, 如所附權(quán)利要求書所反映,發(fā)明性的主題存在于比單個已公開實施方式的所有特征少的 特征中。從而,據(jù)此將所附權(quán)利要求結(jié)合進詳細描述中,其中每個權(quán)利要求獨立地代表 一個單獨的實施方式。在所附權(quán)利要求書中,術(shù)語“包括”和“其中”分別用作術(shù)語
“包含”和“其特征在于”的易懂的英文等價詞。而且,術(shù)語“第一”、“第二”、 “第三”等等只用作標(biāo)記,而不旨在將數(shù)字要求強加于其對象上。盡管用結(jié)構(gòu)特征和/或方法動作專用的語言描述了本主題,但可以理解,所附 權(quán)利要求書中定義的主題不必限于上述具體特征或動作。相反,上文所描述的具體特征 和動作是作為實現(xiàn)權(quán)利要求的示例形式來公開的。
1權(quán)利要求
1.一種方法,包括將潛在傳送表面(130)嵌入(402)到文檔(128)中;接收(404)傳送所述文檔的媒體內(nèi)容的傳送請求(310、312);以及響應(yīng)于所述傳送請求使用所述潛在傳送表面來傳送(406)所述媒體內(nèi)容。
2.如權(quán)利要求1所述的方法,其特征在于,包括在完成所述傳送請求之前將所述媒體 內(nèi)容傳送到用于中間數(shù)據(jù)變換操作的所述潛在傳送表面。
3.如權(quán)利要求1或2所述的方法,其特征在于,包括將所述潛在傳送表面所存儲的所 述媒體內(nèi)容從第一格式變換成第二格式。
4.如權(quán)利要求1到3中任一項所述的方法,其特征在于,包括接收將所述媒體內(nèi)容從 所述文檔復(fù)制到系統(tǒng)剪貼板(142)的復(fù)制傳送請求,或?qū)⑺雒襟w內(nèi)容從所述文檔移動 到系統(tǒng)剪貼板(142)的剪切傳送請求。
5.如權(quán)利要求1到4中任一項所述的方法,其特征在于,包括響應(yīng)于復(fù)制傳送請求或 剪切傳送請求將所述媒體內(nèi)容從所述文檔傳送到所述潛在傳送表面。
6.如權(quán)利要求1到5中任一項所述的方法,其特征在于,包括將已變換的媒體內(nèi)容從 所述潛在傳送表面?zhèn)魉偷较到y(tǒng)剪貼板(142)。
7.如權(quán)利要求1到6中任一項所述的方法,其特征在于,包括接收將所述媒體內(nèi)容從 系統(tǒng)剪貼板(142)粘貼到所述文檔的粘貼傳送請求。
8.如權(quán)利要求1到7中任一項所述的方法,其特征在于,包括響應(yīng)于粘貼傳送請求將 所述媒體內(nèi)容從系統(tǒng)剪貼板(142)粘貼到所述潛在傳送表面。
9.一種包括包含指令的機器或計算機可讀存儲介質(zhì)的制品,所述指令在被執(zhí)行時使 得一系統(tǒng)能夠?qū)崿F(xiàn)如權(quán)利要求1到8中的任一項所述的方法。
10.—種裝置,包括用于管理用于文檔(128)的編輯操作的文檔編輯子系統(tǒng)(200),所述文檔編輯子系統(tǒng) 包括用于將潛在傳送表面(130)嵌入到所述文檔中的傳送表面創(chuàng)建模塊(228-1);以及通信耦合到所述傳送表面創(chuàng)建模塊的傳送控制模塊(228-2),所述傳送控制模塊用于 接收傳送所述文檔的媒體內(nèi)容的傳送請求(310、312),并響應(yīng)于所述傳送請求使用所述 潛在傳送表面來傳送所述媒體內(nèi)容。
11.如權(quán)利要求10所述的裝置,其特征在于,所述傳送控制模塊用于在完成所述傳送 請求之前將所述媒體內(nèi)容傳送到用于中間數(shù)據(jù)變換操作的所述潛在傳送表面。
12.如權(quán)利要求10或11所述的裝置,其特征在于,包括通信耦合到所述傳送控制模 塊的媒體內(nèi)容變換模塊(228-3),所述媒體內(nèi)容變換模塊用于將所述潛在傳送表面所存儲 的所述媒體內(nèi)容從第一格式變換成第二格式。
13.如權(quán)利要求10到12中的任一項所述的裝置,其特征在于,所述傳送控制模塊用 于響應(yīng)于復(fù)制傳送請求或剪切傳送請求將所述媒體內(nèi)容從所述文檔傳送到所述潛在傳送 表面,并將已變換的媒體內(nèi)容從所述潛在傳送表面?zhèn)魉偷较到y(tǒng)剪貼板(142)。
14.如權(quán)利要求10到13中的任一項所述的裝置,其特征在于,所述傳送控制模塊用 于響應(yīng)于粘貼傳送請求將所述媒體內(nèi)容從系統(tǒng)剪貼板(142)傳送到所述潛在傳送表面, 并將已變換的媒體內(nèi)容從所述潛在傳送表面?zhèn)魉偷剿鑫臋n。
15.如權(quán)利要求10到14中的任一項所述的裝置,其特征在于,包括具有web瀏覽器 (122)的客戶機設(shè)備(120),所述客戶機設(shè)備使用所述web瀏覽器通過網(wǎng)絡(luò)(160)從服務(wù) 器(162)檢索應(yīng)用程序(140),在所述客戶機設(shè)備處執(zhí)行所述應(yīng)用程序以使用web瀏覽器 窗口來呈現(xiàn)所述文檔,并使用所述文檔編輯子系統(tǒng)來編輯所述文檔。
全文摘要
描述了使用潛在傳送表面來修改文檔的技術(shù)。一種裝置可包括包含用于將潛在傳送表面嵌入到文檔中的傳送表面創(chuàng)建模塊的文檔編輯子系統(tǒng)。傳送控制模塊可通信耦合到傳送表面創(chuàng)建模塊。傳送控制模塊可用于接收傳送文檔的媒體內(nèi)容的傳送請求,并響應(yīng)于該傳送請求使用潛在傳送表面來傳送媒體內(nèi)容。對其他實施例也予以描述并要求保護。
文檔編號G06F17/21GK102016833SQ200980115711
公開日2011年4月13日 申請日期2009年4月3日 優(yōu)先權(quán)日2008年4月28日
發(fā)明者E·百利, P·麥克唐納德 申請人:微軟公司