專利名稱:提供文檔預(yù)覽的方法、系統(tǒng)和裝置的制作方法
相關(guān)申請(qǐng)的交叉引用本專利申請(qǐng)與同時(shí)提交題為“Method And Computer-Readable Medium ForPreviewing And Performing Actions On Attachments To Electronic MailMessages”(代理人案號(hào)為60046.432US01)的美國(guó)專利申請(qǐng)有關(guān),后者通過引用被特別地包含于此。
背景技術(shù):
當(dāng)使用具有現(xiàn)代圖形操作系統(tǒng)的計(jì)算機(jī)系統(tǒng)時(shí),通常期望瀏覽文件的預(yù)覽。文檔預(yù)覽是對(duì)文件的只讀重現(xiàn),它模仿當(dāng)用與文件相關(guān)聯(lián)的應(yīng)用程序打開該文件時(shí)會(huì)看到的東西。一些應(yīng)用程序允許用戶看到文件的靜態(tài)圖像,但是靜態(tài)圖像不是用戶可以翻頁通過或?qū)Ш降恼鎸?shí)預(yù)覽。其他程序需要用戶啟動(dòng)與該文件相關(guān)聯(lián)的應(yīng)用程序來觀看其內(nèi)容。例如,在電子郵件(“e-mail”)客戶端應(yīng)用程序中,有時(shí)期望看到附加在e-mail上的一個(gè)或多個(gè)文件的預(yù)覽。然而當(dāng)前的e-mail應(yīng)用程序需要用戶啟動(dòng)與所附文檔相關(guān)聯(lián)的應(yīng)用程序來瀏覽該文件。這個(gè)過程對(duì)用戶來說會(huì)是耗時(shí)且令人沮喪的。
也期望在各種環(huán)境中瀏覽文檔預(yù)覽。例如,可能期望在應(yīng)用程序的環(huán)境中瀏覽文檔預(yù)覽,諸如上述的e-mail客戶端應(yīng)用程序。也可能期望在操作系統(tǒng)的環(huán)境中瀏覽文檔預(yù)覽,諸如圖形桌面外殼。例如,當(dāng)用戶利用外殼導(dǎo)航含有文檔的文件夾時(shí),用戶可能期望快速瀏覽文檔預(yù)覽而無需啟動(dòng)相關(guān)聯(lián)的應(yīng)用程序。類似地,可能期望快速用于打開文件的對(duì)話框環(huán)境中快速瀏覽文檔預(yù)覽。在這種方式中,用戶能夠?yàn)g覽文檔預(yù)覽并快速地檢查文件內(nèi)容而無需打開與文檔相關(guān)聯(lián)的應(yīng)用程序。然而,為了預(yù)覽使用當(dāng)前系統(tǒng)的文件,每個(gè)應(yīng)用程序和操作系統(tǒng)必須為預(yù)覽文檔實(shí)現(xiàn)它們自己的代碼。
也可能期望提供在各種環(huán)境中快速預(yù)覽文檔而不影響計(jì)算機(jī)系統(tǒng)的響應(yīng)性的裝置。此外,在預(yù)覽文檔時(shí)遇到的任何錯(cuò)誤不應(yīng)該影響主操作系統(tǒng)或應(yīng)用程序的性能或穩(wěn)定性。本發(fā)明的各種實(shí)施例是關(guān)于這些和其它考慮而作出的。
發(fā)明內(nèi)容
依照本發(fā)明的實(shí)施例,用于提供文檔預(yù)覽的方法、系統(tǒng)和裝置解決了上述和其它的問題。本發(fā)明的實(shí)施例提供了操作系統(tǒng)程序和應(yīng)用程序可以利用以提供對(duì)文件的快速預(yù)覽而無需啟動(dòng)與文檔相關(guān)聯(lián)的應(yīng)用程序的通用裝置。本發(fā)明的各個(gè)實(shí)施例提供的裝置允許對(duì)預(yù)覽翻頁和導(dǎo)航。實(shí)施例也提供了不會(huì)嚴(yán)重地影響計(jì)算機(jī)系統(tǒng)性能和穩(wěn)定性的預(yù)覽設(shè)施。
依照本發(fā)明的一個(gè)方面,提供了生成文檔預(yù)覽的方法。依照該方法,提供了展現(xiàn)可由期望顯示文檔預(yù)覽的主應(yīng)用程序調(diào)用的預(yù)覽處理器界面的預(yù)覽處理器。例如,電子郵件客戶機(jī)應(yīng)用程序會(huì)包括一主應(yīng)用程序,并且可以調(diào)用預(yù)覽處理器界面來顯示作為一電子郵件消息的附件的文檔預(yù)覽。通過預(yù)覽處理器界面,預(yù)覽處理器可操作用于標(biāo)識(shí)用于顯示文檔預(yù)覽的預(yù)覽器,用于加載預(yù)覽器并指示預(yù)覽器建立和顯示預(yù)覽。
為了建立和顯示預(yù)覽,主應(yīng)用程序會(huì)調(diào)用預(yù)覽處理器界面,請(qǐng)求載入要預(yù)覽的文件。請(qǐng)求會(huì)包括到該文件的路徑和到預(yù)覽應(yīng)該被顯示的窗口的句柄。響應(yīng)于接收請(qǐng)求,預(yù)覽處理器可以標(biāo)識(shí)適當(dāng)?shù)念A(yù)覽器來為文檔生成預(yù)覽??梢酝ㄟ^查詢主應(yīng)用程序所提供的可選界面、通過搜索經(jīng)注冊(cè)的預(yù)覽器的注冊(cè)表或通過其它方法來標(biāo)識(shí)預(yù)覽器。
一旦為文檔類型標(biāo)識(shí)了預(yù)覽器,預(yù)覽處理器會(huì)調(diào)用由預(yù)覽器展現(xiàn)的界面以指示預(yù)覽器載入文檔。預(yù)覽處理器也會(huì)調(diào)用預(yù)覽界面以在主應(yīng)用程序所標(biāo)識(shí)的窗口的次窗口中示出文檔預(yù)覽。會(huì)在獨(dú)立的處理空間中執(zhí)行預(yù)覽器,以不影響主應(yīng)用程序的性能。為了類似的原因,預(yù)覽處理器和預(yù)覽器之間的通信會(huì)在背景線程上發(fā)生。
一些可任選界面會(huì)由主應(yīng)用程序?qū)崿F(xiàn)以為預(yù)覽器所使用。特別地,會(huì)由主應(yīng)用程序提供信標(biāo)界面,預(yù)覽器會(huì)通過信標(biāo)界面詢問主應(yīng)用程序以允許載入生成文檔預(yù)覽所需的支持文檔。會(huì)由主應(yīng)用程序?qū)崿F(xiàn)進(jìn)度界面,預(yù)覽器會(huì)通過進(jìn)度界面來提供進(jìn)度指示符,諸如載入文檔和生成預(yù)覽的進(jìn)度。也會(huì)提供界面,預(yù)覽器通過該界面獲取定位生成文檔預(yù)覽所需的附加文件的界面。
本發(fā)明的實(shí)施例會(huì)被實(shí)現(xiàn)為計(jì)算機(jī)進(jìn)程、計(jì)算機(jī)系統(tǒng)或制造物品,諸如計(jì)算機(jī)程序產(chǎn)品或計(jì)算機(jī)可讀介質(zhì)。計(jì)算機(jī)程序產(chǎn)品可以是計(jì)算機(jī)系統(tǒng)可讀的計(jì)算機(jī)存儲(chǔ)介質(zhì)并編碼用于執(zhí)行計(jì)算機(jī)進(jìn)程的計(jì)算機(jī)程序指令。計(jì)算機(jī)程序產(chǎn)品也可以是在計(jì)算機(jī)系統(tǒng)可讀的載波器上的傳播信號(hào)并解碼用于執(zhí)行計(jì)算機(jī)進(jìn)程的計(jì)算機(jī)程序指令。
通過閱讀一下詳細(xì)描述和查看相關(guān)聯(lián)的附圖,表征本發(fā)明的這些和各種其它特征以及優(yōu)勢(shì)將變得顯而易見。
圖1是說明本發(fā)明的各個(gè)實(shí)施例中所使用和提供的計(jì)算機(jī)系統(tǒng)的計(jì)算機(jī)系統(tǒng)構(gòu)架圖;圖2是說明本發(fā)明的實(shí)施例所提供的各個(gè)軟件組件和界面的各方面的軟件構(gòu)架圖;以及圖3-5是說明由本發(fā)明的實(shí)施例所提供的用于提供文檔預(yù)覽的各個(gè)軟件組件操作的流程圖。
具體實(shí)施例方式
將參見附圖描述本發(fā)明的各個(gè)方面,其中相同的號(hào)碼表示相同的元件。特別地,圖1和相應(yīng)的討論意在提供對(duì)實(shí)現(xiàn)本發(fā)明實(shí)施例的適當(dāng)計(jì)算環(huán)境的簡(jiǎn)要、一般描述。雖然會(huì)在編程模塊的一般環(huán)境中描述本發(fā)明(其中會(huì)結(jié)合在個(gè)人計(jì)算機(jī)上的操作系統(tǒng)上運(yùn)行的程序模塊來執(zhí)行本發(fā)明),本領(lǐng)域的技術(shù)人員會(huì)認(rèn)識(shí)到本發(fā)明也可以結(jié)合其它類型的計(jì)算機(jī)系統(tǒng)和編程模塊來實(shí)現(xiàn)。
通常,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、組件、數(shù)據(jù)結(jié)構(gòu)等。此外,本發(fā)明的技術(shù)人員會(huì)理解也可以用其它計(jì)算機(jī)配置實(shí)現(xiàn)本發(fā)明,所述計(jì)算機(jī)配置包括手持式設(shè)備、多處理器系統(tǒng)、基于多處理器或可編程消費(fèi)電子產(chǎn)品、微型計(jì)算機(jī)、大型計(jì)算機(jī)等。本發(fā)明還可以在分布式計(jì)算環(huán)境中實(shí)現(xiàn),其中在分布式計(jì)算環(huán)境中任務(wù)由通過一通信網(wǎng)絡(luò)鏈接的遠(yuǎn)程處理設(shè)備執(zhí)行。在分布式計(jì)算環(huán)境中,程序模塊可以位于包含存儲(chǔ)器設(shè)備的本地和遠(yuǎn)程計(jì)算機(jī)存儲(chǔ)介質(zhì)中。
參見圖1,將描述在本發(fā)明的各個(gè)實(shí)施例中所使用的計(jì)算機(jī)2的說明性計(jì)算機(jī)構(gòu)架。圖1中所示的計(jì)算機(jī)構(gòu)架說明了通用桌上型或膝上型計(jì)算機(jī),包括中央處理器5(“CPU”)、系統(tǒng)存儲(chǔ)器7、包括隨機(jī)存取存儲(chǔ)器9(“RAM”)和只讀存儲(chǔ)器(“ROM”)11和將存儲(chǔ)器耦合到CPU5的系統(tǒng)總線12。包含有助于例如在啟動(dòng)過程中在計(jì)算機(jī)內(nèi)部的元件之間傳輸信息的基本例程的基本輸入/輸出系統(tǒng)存儲(chǔ)在ROM11中。計(jì)算機(jī)2還包括用于存儲(chǔ)操作系統(tǒng)16、應(yīng)用程序和其它程序模塊的大容量存儲(chǔ)設(shè)備14,這會(huì)在下文中詳細(xì)描述。
大容量存儲(chǔ)設(shè)備15通過連接到總線12的大容量存儲(chǔ)控制器(未示出)連接到CPU5。大容量存儲(chǔ)設(shè)備14和器相關(guān)聯(lián)的計(jì)算機(jī)可讀介質(zhì)為計(jì)算機(jī)12提供了非易失性存儲(chǔ)。雖然這里所包含的對(duì)計(jì)算機(jī)可讀介質(zhì)的描述指大容量存儲(chǔ)設(shè)備,諸如硬盤或CD-ROM驅(qū)動(dòng)器,本領(lǐng)域的技術(shù)人員應(yīng)該理解計(jì)算機(jī)可讀介質(zhì)可以是計(jì)算機(jī)2能夠訪問的任何可用介質(zhì)。
通過舉例而非限制,計(jì)算機(jī)可讀介質(zhì)可以包括計(jì)算機(jī)存儲(chǔ)介質(zhì)和通信介質(zhì)。計(jì)算機(jī)存儲(chǔ)介質(zhì)包含以任一方法或技術(shù)實(shí)現(xiàn)的用于信息存儲(chǔ)的易失性和非易失性介質(zhì)、移動(dòng)和不可移動(dòng)介質(zhì),所述信息諸如計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù)。計(jì)算機(jī)存儲(chǔ)介質(zhì)包含但不限于RAM、ROM、EPROM、EEPROM、閃存或其它固態(tài)存儲(chǔ)器技術(shù)、CD-ROM、數(shù)字通用盤(“DVD”)或其它光學(xué)存儲(chǔ)器、磁帶盒、磁帶、磁帶存儲(chǔ)器或者其它磁存儲(chǔ)設(shè)備、或者任何其它能夠用來存儲(chǔ)所需信息并且能夠由計(jì)算機(jī)2訪問的介質(zhì)。
依照本發(fā)明的各種實(shí)施例,計(jì)算機(jī)2會(huì)在使用通過諸如Internet等網(wǎng)絡(luò)18到遠(yuǎn)程計(jì)算機(jī)的邏輯連接在網(wǎng)絡(luò)環(huán)境中操作。計(jì)算機(jī)2可以通過連接到總線12的網(wǎng)絡(luò)接口單元20連接到網(wǎng)絡(luò)18。應(yīng)該理解網(wǎng)絡(luò)接口單元20也可以被用于連接到其它類型的網(wǎng)絡(luò)和遠(yuǎn)程計(jì)算機(jī)系統(tǒng)。計(jì)算機(jī)2也可以包括用于接收和處理來自多個(gè)其它設(shè)備的輸入的輸入/輸出控制器22,所述其它設(shè)備諸如鍵盤、鼠標(biāo)或電子筆(圖1中未示出)。類似地,輸入/輸出控制器22會(huì)提供到顯示屏、打印機(jī)或其它類型的輸出設(shè)備的輸出。
如上面簡(jiǎn)要提到的,多個(gè)程序模塊和數(shù)據(jù)文件會(huì)存儲(chǔ)在計(jì)算機(jī)2的大容量存儲(chǔ)設(shè)備14和RAM 9中,包括適用于控制網(wǎng)絡(luò)個(gè)人計(jì)算機(jī)操作的操作系統(tǒng)16,諸如來自Washington Redmond的微軟公司的WINDOWS XP操作系統(tǒng)。大容量存儲(chǔ)設(shè)備14和RAM 9也可以存儲(chǔ)一個(gè)或多個(gè)程序模塊。特別地,大容量存儲(chǔ)設(shè)備14和RAM 9會(huì)存儲(chǔ)主應(yīng)用程序26。主應(yīng)用程序26包含期望向用戶提供文檔32預(yù)覽的任何類型的程序。依照本發(fā)明的實(shí)施例,主應(yīng)用程序26包括來自微軟公司的OUTLOOK個(gè)人信息管理器應(yīng)用程序。可以通過本發(fā)明的各個(gè)實(shí)施例為附在e-mail消息上的文件生成和顯示預(yù)覽。然而,應(yīng)該理解,主應(yīng)用程序26可以包含文字處理器應(yīng)用程序、電子數(shù)據(jù)表應(yīng)用程序、演示應(yīng)用程序、操作系統(tǒng)16或任何其它類型的程序。這些程序會(huì)使用上述裝置在例如文件打開對(duì)話框、操作系統(tǒng)外殼或任何其它的位置中提供文檔預(yù)覽。
大容量存儲(chǔ)設(shè)備14和RAM 9也被用于存儲(chǔ)預(yù)覽處理器程序28。預(yù)覽處理器28是用于提供文檔預(yù)覽的裝置。如下面要詳細(xì)描述的,預(yù)覽處理器28實(shí)現(xiàn)諸如主應(yīng)用程序26可以調(diào)用以生成文檔預(yù)覽的界面。由預(yù)覽處理器28提供的界面將文檔預(yù)覽的提供從主應(yīng)用程序26抽象出來。
依照本發(fā)明的實(shí)施例,預(yù)覽處理器28會(huì)使用一個(gè)或多個(gè)預(yù)覽器程序30來生成實(shí)際的文件32預(yù)覽。預(yù)覽器會(huì)向預(yù)覽處理器28、主應(yīng)用程序26或操作系統(tǒng)16注冊(cè)為特定類型文件的預(yù)覽器。有關(guān)經(jīng)注冊(cè)的預(yù)覽器的信息由預(yù)覽處理器28、主應(yīng)用程序26或操作系統(tǒng)來維護(hù),所述信息是關(guān)于經(jīng)注冊(cè)的預(yù)覽器的身份和位置。操作系統(tǒng)16會(huì)在注冊(cè)表24中存儲(chǔ)這一信息。應(yīng)該理解主應(yīng)用程序26自身會(huì)被注冊(cè)為不同類型的文檔的預(yù)覽器。關(guān)于主應(yīng)用程序26、預(yù)覽處理器28和預(yù)覽器30的附加細(xì)節(jié)將關(guān)于圖2-5在下面描述。
現(xiàn)在參見圖2,將提供關(guān)于本發(fā)明的實(shí)施例所使用的各種軟件組件的附加細(xì)節(jié)。如圖2所示,主應(yīng)用程序26通過使用預(yù)覽處理器28所實(shí)現(xiàn)的預(yù)覽處理器界面42與預(yù)覽處理器28通信。反過來,預(yù)覽處理器28會(huì)經(jīng)由主應(yīng)用程序所實(shí)現(xiàn)的預(yù)覽主界面40與主應(yīng)用程序通信。預(yù)覽處理器也會(huì)通過使用預(yù)覽界面50與預(yù)覽器30A-30D通信。應(yīng)該理解主應(yīng)用程序26會(huì)實(shí)現(xiàn)預(yù)覽器3D并以這里所描述的關(guān)于預(yù)覽器30A-30C相似的方式與預(yù)覽處理器28通信。也應(yīng)該理解預(yù)覽處理器28會(huì)從注冊(cè)表24檢索以標(biāo)識(shí)適當(dāng)?shù)念A(yù)覽器及其位置。
如上簡(jiǎn)述的,預(yù)覽器30A-30C的每一個(gè)用于生成一個(gè)或多個(gè)文檔類型的預(yù)覽。文檔32A-32C一般存儲(chǔ)在預(yù)覽器30A-30C可以訪問的位置中的大容量存儲(chǔ)設(shè)備14上。當(dāng)預(yù)覽處理器28發(fā)出載入請(qǐng)求時(shí),這個(gè)位置被傳遞給預(yù)覽器30A-30C。這個(gè)過程會(huì)在下面詳細(xì)描述。
預(yù)覽器30A-30C會(huì)通過使用一個(gè)或多個(gè)可選界面直接與主應(yīng)用程序26通信。特別地,進(jìn)程界面44會(huì)被用于向主應(yīng)用程序26提供進(jìn)程指示符。進(jìn)程指示符于是會(huì)被顯示給用戶以提供例如預(yù)覽顯示進(jìn)程的圖形指示。信標(biāo)界面46會(huì)被預(yù)覽器30A-30C用于獲取主應(yīng)用程序26的允許以載入與文檔相關(guān)聯(lián)的支持文件。例如,如果要被預(yù)覽的文檔是超文本鏈接標(biāo)示語言(“HTML”)文檔,會(huì)需要載入圖形和其它參考文件以提供預(yù)覽。在載入?yún)⒖嘉募?,預(yù)覽器會(huì)請(qǐng)求主應(yīng)用程序26授權(quán)通過信標(biāo)界面46來載入?yún)⒖嘉募Unknow界面48會(huì)被預(yù)覽器30A-30C用于提供執(zhí)行各種功能的界面,諸如定位生成文檔預(yù)覽所需的支持文件。如本發(fā)明的技術(shù)人員所公知的,IUnknow界面48讓客戶端獲取給定對(duì)象上到其它界面的指針。
為了提供預(yù)覽,主應(yīng)用程序26將處理傳遞到預(yù)覽處理器28的窗口52。預(yù)覽處理器接著在主應(yīng)用程序創(chuàng)建的窗口內(nèi)創(chuàng)建子窗口(或次窗口)。當(dāng)預(yù)覽器已被標(biāo)識(shí)和實(shí)例化時(shí),對(duì)子窗口的句柄接著被傳遞到適當(dāng)?shù)念A(yù)覽器30A-30C。為了在窗口中再現(xiàn)預(yù)覽56,預(yù)覽器在窗口52中創(chuàng)建次窗口54。因?yàn)闉轭A(yù)覽指示的用戶輸入會(huì)被預(yù)覽器接收,預(yù)覽器會(huì)用于處理某些類型的輸入并將其它類型的處理傳遞到預(yù)覽處理器28,隨后到主應(yīng)用程序26。在這種方式中,預(yù)覽器接收到的實(shí)際意在主應(yīng)用程序26的輸入會(huì)由主應(yīng)用程序26處理。
再參見圖2,將提供關(guān)于預(yù)覽處理器界面42、預(yù)覽主界面40和預(yù)覽器界面50的附加細(xì)節(jié)。預(yù)覽處理器界面42提供“初始化”方法,主應(yīng)用程序26在創(chuàng)建預(yù)覽處理器28的實(shí)例后調(diào)用所述“初始化”方法。初始化方法允許預(yù)覽處理器28在窗口52上將自己初始化。傳遞到初始化方法的參數(shù)是主應(yīng)用程序26的實(shí)例、到預(yù)覽主界面40的指針以及會(huì)被用于定義預(yù)覽處理器28的操作的一個(gè)或多個(gè)標(biāo)記。也會(huì)在界面42上提供設(shè)置窗口方法,所述界面取得預(yù)覽應(yīng)該在其中被再現(xiàn)的窗口52的句柄。
預(yù)覽處理器界面42也提供“載入”方法。當(dāng)接收到生成文檔預(yù)覽的請(qǐng)求時(shí),由主應(yīng)用程序26調(diào)用載入方法,所述文檔預(yù)覽諸如用戶選擇要預(yù)覽的一個(gè)或一組文件。當(dāng)調(diào)用該方法時(shí),預(yù)覽處理器28保存要預(yù)覽的文件的名稱并調(diào)用后臺(tái)線程以預(yù)覽該文件。后臺(tái)線程接著確保實(shí)際上是有文件要預(yù)覽、獲取文件的擴(kuò)展名并試圖為該擴(kuò)展名定位預(yù)覽器30A-30C。如果定位了預(yù)覽器,就使用該預(yù)覽器預(yù)覽文件。載入方法將到要預(yù)覽的文件的完整路徑來作為參數(shù)。下面將描述關(guān)于載入方法的操作的附加細(xì)節(jié)。
預(yù)覽處理器界面42也包括“顯示”方法。通過調(diào)用載入方法將文件成功地載入到預(yù)覽器中后,主應(yīng)用程序26調(diào)用顯示方法。如果主應(yīng)用程序26要將文件再現(xiàn)到預(yù)覽中,它就調(diào)用顯示方法。預(yù)覽處理器界面42也包括“顯示出錯(cuò)消息”方法。如果載入或顯示方法返回出錯(cuò)代碼且主應(yīng)用程序26要預(yù)覽處理器28顯示代碼的出錯(cuò)消息就調(diào)用顯示出錯(cuò)消息方法。顯示出錯(cuò)消息獲取不能被載入或顯示為參數(shù)的文件的出錯(cuò)代碼和文件名。
預(yù)覽處理器界面42也包括一“窗口已改變”方法。這一方法在被傳到設(shè)置窗口方法的窗口52以某些方式改變時(shí)被調(diào)用。例如,如果窗口52的大小改變,主應(yīng)用程序26可以調(diào)用該方法來通知預(yù)覽處理器28有關(guān)于這一變化。然后,預(yù)覽處理器28可以調(diào)用適當(dāng)?shù)念A(yù)覽器來更新子窗口52和預(yù)覽56的大小。預(yù)覽處理器界面42也包括一“未初始化”方法,該方法在沒有其余要被預(yù)覽的文檔時(shí)被調(diào)用。未初始化方法解除對(duì)預(yù)覽處理器28的初始化。
預(yù)覽主界面40是可任選的調(diào)回界面,主應(yīng)用程序26實(shí)現(xiàn)所述所選調(diào)回界面以允許預(yù)覽處理器28使用對(duì)主應(yīng)用程序26可用的資源。例如,如果主應(yīng)用程序26已經(jīng)載入特定文檔類型的預(yù)覽器,不是讓預(yù)覽處理器28試圖自己載入預(yù)覽器,而是將界面?zhèn)鬟f到載入的預(yù)覽器對(duì)主應(yīng)用程序26是有用的。
預(yù)覽主界面40提供“獲取預(yù)覽器”方法。在預(yù)覽處理器28試圖為文件定位預(yù)覽器時(shí),預(yù)覽處理器28會(huì)調(diào)用這個(gè)方法。通過獲取預(yù)覽器方法,預(yù)覽處理器28能夠?yàn)樵撐募愋驮儐栔鲬?yīng)用程序26預(yù)覽器的身份。獲取預(yù)覽器方法將要預(yù)覽文件的擴(kuò)展名作為輸入并為文件類型提供指示預(yù)覽器身份的輸出參數(shù)或空。這個(gè)方法在例如主應(yīng)用程序26已經(jīng)載入預(yù)覽器或主應(yīng)用程序26提供預(yù)覽器30D自身時(shí)會(huì)是有用的。
如果獲取預(yù)覽器方法不返回一預(yù)覽器,預(yù)覽處理器28會(huì)利用由預(yù)覽主界面40提供的“獲得預(yù)覽器類型ID”方法。通過獲取預(yù)覽器類型ID方法,主應(yīng)用程序26能夠?qū)⑺獮榻o定擴(kuò)展名的特定文件所使用的任何預(yù)覽器的類型ID傳遞到預(yù)覽處理器28。例如,主應(yīng)用程序26會(huì)要指定特定預(yù)覽器被用于特定的可擴(kuò)展標(biāo)記語言(“XML”)文件。獲取預(yù)覽器類型ID方法將要預(yù)覽的文件的擴(kuò)展名作為輸入并為文件類型提供指示預(yù)覽器類型ID的輸出參數(shù)或空。
預(yù)覽主界面40也提供“獲取界面”方法。當(dāng)指示預(yù)覽處理器28載入文件,它嘗試獲取到信標(biāo)界面46、進(jìn)程界面44和IUnknown界面48的指針以傳遞到預(yù)覽器供載入和顯示時(shí)使用。獲取界面方法被用于這個(gè)目的。獲取界面方法將所請(qǐng)求的界面的身份作為參數(shù),并且如果返回就將指向所請(qǐng)求界面的指針作為輸出參數(shù)返回。
預(yù)覽主界面40也提供“完成載入”方法。當(dāng)預(yù)覽器完成載入一文件,會(huì)調(diào)用這個(gè)方法來讓主應(yīng)用程序26知道會(huì)采取的下一步驟。例如,主應(yīng)用程序26會(huì)在預(yù)覽處理器界面42上調(diào)用顯示方法以響應(yīng)接收對(duì)完成載入方法的調(diào)用?;蛘?,如果文檔不能被載入,會(huì)以出錯(cuò)消息調(diào)用完成載入方法。在這種情況下,主應(yīng)用程序26會(huì)在預(yù)覽處理器界面42上調(diào)用“顯示出錯(cuò)消息”方法。
預(yù)覽界面50是要實(shí)現(xiàn)的預(yù)覽器30A-30D的基本界面。通過實(shí)現(xiàn)這個(gè)界面,會(huì)調(diào)用預(yù)覽器載入文件、再現(xiàn)該文件到次窗口、如果需要提供內(nèi)部文件導(dǎo)航以及當(dāng)預(yù)覽結(jié)束時(shí)卸載該文件。預(yù)覽器會(huì)在后臺(tái)線程上被調(diào)用,并且也應(yīng)該試圖盡可能快地載入和再現(xiàn)因?yàn)橛脩艨赡茉陬A(yù)覽處等待。
預(yù)覽器界面50展現(xiàn)“載入”方法,所述載入方法被調(diào)用以初始化特定文件上的預(yù)覽器。載入方法將要預(yù)覽的文件的路徑和到信標(biāo)界面46、進(jìn)程界面44和IUnknown界面48的可選指針作為參數(shù)。這些界面可以被用在上述的方式中。
當(dāng)載入文件以響應(yīng)對(duì)載入方法的調(diào)用時(shí),預(yù)覽器不應(yīng)該調(diào)用任何用戶界面,諸如進(jìn)程對(duì)話等等。文件不應(yīng)該被寫入鎖定且預(yù)覽器不應(yīng)該以任何方式改變或更新文件。如果文件是密碼保護(hù)的,預(yù)覽器也應(yīng)該無聲地失效。預(yù)覽器也不應(yīng)該執(zhí)行包含在文件中的任何宏。預(yù)覽器也應(yīng)該被設(shè)計(jì)成可以調(diào)用載入方法一次且可以用潛在的不同窗口多次調(diào)用“顯示”方法(下面論述)。載入方法應(yīng)該執(zhí)行任何在準(zhǔn)備要被再現(xiàn)的文件中所涉及的耗時(shí)的工作,因此“顯示”方法可以盡可能快。如果用戶試圖取消預(yù)覽,載入方法應(yīng)該停止載入文件并盡可能快地返回。
如上所述,預(yù)覽器界面50也展現(xiàn)“顯示”方法。調(diào)用該方法來使預(yù)覽器將傳遞到載入方法的文件再現(xiàn)到特定的窗口。這是獨(dú)立于載入方法的方法,允許瀏覽器載入文件而無需其也將文件展現(xiàn)至窗口。顯示方法將窗口的句柄取作為參數(shù),預(yù)覽應(yīng)該在所述窗口中被呈現(xiàn)。
預(yù)覽界面50也展現(xiàn)“窗口改變”方法。調(diào)用該方法使得預(yù)覽者知道當(dāng)前使用的窗口由于某種原因被改變了。一般調(diào)用該方法以響應(yīng)對(duì)預(yù)覽處理器界面42上窗口改變方法的調(diào)用。預(yù)覽器界面50也展現(xiàn)“卸載”方法。調(diào)用該方法使得預(yù)覽者知道它應(yīng)該卸載經(jīng)由載入方法載入的文件。關(guān)于由預(yù)覽處理器界面42、預(yù)覽主界面和預(yù)覽界面50提供的各種方法的使用和操作的附加細(xì)節(jié)將在下文中參見圖3-5詳細(xì)描述。
依照本發(fā)明的實(shí)施例,預(yù)覽處理器28也會(huì)支持IService Provider界面51或IOle CommandTarget界面53。界面51是預(yù)先存在的界面,允許組件展現(xiàn)非相關(guān)的功能。通過界面51,主應(yīng)用程序26能夠詢問當(dāng)前預(yù)覽器是否支持某些類型的功能。界面53是另一個(gè)預(yù)先存在的界面,允許調(diào)用程序(主應(yīng)用程序26)向客戶機(jī)(預(yù)覽器)發(fā)出命令。預(yù)覽處理器28將這個(gè)界面實(shí)現(xiàn)為到當(dāng)前預(yù)覽器的傳遞通路。
現(xiàn)在參見圖3,將描述說明性例程300,說明了提供文檔預(yù)覽的過程。當(dāng)讀到這里所示的例程的討論時(shí),應(yīng)該理解本發(fā)明的各個(gè)實(shí)施例的邏輯操作被實(shí)現(xiàn)為(1)在計(jì)算系統(tǒng)上運(yùn)行的一系列計(jì)算機(jī)實(shí)現(xiàn)的動(dòng)作或程序模塊和/或(2)計(jì)算系統(tǒng)內(nèi)互相連接的機(jī)器邏輯電路或電路模塊。所述的實(shí)現(xiàn)是取決于實(shí)現(xiàn)本發(fā)明的計(jì)算系統(tǒng)的性能要求的一種選擇。相應(yīng)地,圖3-5所示的邏輯操作以及這里所描述的組成本發(fā)明的實(shí)施例是指不同的操作、結(jié)構(gòu)設(shè)備、動(dòng)作或模塊。本領(lǐng)域的技術(shù)人員應(yīng)該認(rèn)識(shí)到這些操作、結(jié)構(gòu)設(shè)備、動(dòng)作和模塊可以用軟件、固件、專用數(shù)字邏輯以及它們和任何組合來實(shí)現(xiàn),而不背離這里提出的權(quán)利要求中所述的本發(fā)明的精神和范圍。
例程300在操作302處開始,其中確定是否接收到生成一個(gè)或多個(gè)文檔的請(qǐng)求。舉例而言,這種請(qǐng)求可以由用戶選擇帶有一個(gè)或多個(gè)附件的e-mail消息作出?;蛘撸@種請(qǐng)求可以在編程上由操作系統(tǒng)或其它類型的程序?qū)崿F(xiàn)。如果沒有接收到預(yù)覽請(qǐng)求,例程300返回到操作302,在其中作出另一個(gè)這樣的確定。如果接收到請(qǐng)求,例程300從操作302繼續(xù)到操作304。
在操作304處,主應(yīng)用程序26創(chuàng)建預(yù)覽處理器28的一個(gè)實(shí)例。例程300接著繼續(xù)到操作306,其中主應(yīng)用程序26在預(yù)覽處理器界面42上調(diào)用初始化方法。預(yù)覽處理器28以上述方式將其自身初始化以響應(yīng)接收到對(duì)初始化方法26的調(diào)用。設(shè)置窗口方法也可以用窗口的句柄來調(diào)用,預(yù)覽應(yīng)該在所述窗口中生成。
例程300從操作306繼續(xù)到操作308,其中主應(yīng)用程序26在預(yù)覽處理器界面42上調(diào)用載入方法。預(yù)覽處理器28試圖為要預(yù)覽的特定類型的文件表示預(yù)覽器、載入該預(yù)覽器并指示預(yù)覽器載入文件以響應(yīng)接收到對(duì)載入方法的調(diào)用。這個(gè)過程在操作310處發(fā)生。下面會(huì)關(guān)于圖4描述說明行例程400,所述例程400用于定位預(yù)覽器和載入文件。
例程300從操作310繼續(xù)到操作312,其中確定是否表示出預(yù)覽器且能夠載入特定的文件。如果預(yù)覽器不能載入文件,例程300轉(zhuǎn)移到操作316,其中通過用出錯(cuò)消息在預(yù)覽主界面40上調(diào)用完成載入方法返回錯(cuò)誤消息到主應(yīng)用程序26。主應(yīng)用程序26會(huì)在預(yù)覽處理器界面42上調(diào)用顯示出錯(cuò)消息方法以響應(yīng)這一錯(cuò)誤。例程從操作316繼續(xù)到操作318,在操作318處結(jié)束。
在操作312處,如果確定預(yù)覽器能夠載入文件,那么例程300繼續(xù)到操作314,其中會(huì)用成功消息在預(yù)覽主界面40上調(diào)用完成載入方法。主應(yīng)用程序26會(huì)在預(yù)覽處理器界面42上調(diào)用顯示方法以響應(yīng)接收這一消息。預(yù)覽處理器28會(huì)在預(yù)覽界面50上調(diào)用顯示方法以造成預(yù)覽器在次窗口54中顯示預(yù)覽來響應(yīng)。當(dāng)不再需要預(yù)覽時(shí),會(huì)調(diào)用各種撤銷初始化方法來撤銷對(duì)預(yù)覽器和預(yù)覽處理器28的初始化。下面將關(guān)于圖5描述說明性例程500以對(duì)這些元件撤銷初始化。例程300從操作314繼續(xù)到操作318,在操作318處結(jié)束。
現(xiàn)在回到圖4,將描述說明性例程400,用于為文檔標(biāo)識(shí)和載入適當(dāng)?shù)念A(yù)覽器。例程400在操作402處開始,其中為與預(yù)覽器通信創(chuàng)建后臺(tái)線程。使用后臺(tái)線程使得在預(yù)覽器變得不響應(yīng)的時(shí)間中可以創(chuàng)建和使用新的后臺(tái)線程。這也允許主應(yīng)用程序26在預(yù)覽處理器28等待預(yù)覽器載入和呈現(xiàn)文件時(shí)保持響應(yīng)。這允許預(yù)覽處理器28處理用戶決定它們不要預(yù)覽它們已經(jīng)請(qǐng)求預(yù)覽的文件的情況。例如,如果用戶選擇電子表格文件,并且當(dāng)預(yù)覽器載入文件時(shí),用戶決定他們實(shí)際上希望預(yù)覽一圖像,它們能夠在主應(yīng)用程序26中選擇圖像。預(yù)覽處理器28能夠快速確定現(xiàn)有的后臺(tái)線程是否處于能夠載入圖像預(yù)覽器的狀態(tài)。如果不是,預(yù)覽處理器28能夠?yàn)閳D像預(yù)覽器載入后臺(tái)線程并無需等待電子表格文件完成載入就能載入圖像的預(yù)覽。
例程400從操作402繼續(xù)到操作404,其中確定所需的預(yù)覽器是否已經(jīng)被載入。為了改進(jìn)性能,預(yù)覽處理器28會(huì)在需要預(yù)覽器后將預(yù)覽器留在存儲(chǔ)器中一段時(shí)間。在這種方式中,預(yù)覽器有效地被高速存緩且在對(duì)預(yù)覽器后續(xù)的請(qǐng)求中會(huì)節(jié)省載入時(shí)間。在操作406處,如果預(yù)覽器已經(jīng)被載入,例程400繼續(xù)到操作408處,其中當(dāng)前被載入的預(yù)覽器指定為要預(yù)覽的文件的預(yù)覽器。如果所需的瀏覽器沒有被載入,例程400從操作406轉(zhuǎn)移到操作422處。
在操作422處,搜索注冊(cè)表24以確定預(yù)覽器將其自身注冊(cè)為特定文檔文件類型的預(yù)覽器。如果在注冊(cè)表中標(biāo)識(shí)了預(yù)覽器,那么例程400轉(zhuǎn)移到操作426,其中在注冊(cè)表中標(biāo)識(shí)的預(yù)覽器被指定為文件的預(yù)覽器。如果在注冊(cè)表中沒有發(fā)現(xiàn)預(yù)覽器,那么例程400繼續(xù)到操作410。
在操作410處,預(yù)覽處理器28在預(yù)覽主界面40上調(diào)用獲取預(yù)覽器方法。如上所述,獲取預(yù)覽器方法允許預(yù)覽處理器28從主應(yīng)用程序26請(qǐng)求預(yù)覽器的身份。在操作412處,如果確定主機(jī)已經(jīng)標(biāo)識(shí)出預(yù)覽器以響應(yīng)對(duì)獲取預(yù)覽器方法的調(diào)用,例程400轉(zhuǎn)移到操作414,其中所標(biāo)識(shí)的預(yù)覽器被指定為文件的預(yù)覽器。如果主應(yīng)用程序26沒有指定預(yù)覽器,那么例程400繼續(xù)到操作416。
在操作416處,在預(yù)覽主機(jī)界面40上調(diào)用獲取預(yù)覽器類ID方法。如果主應(yīng)用程序26響應(yīng)調(diào)用返回預(yù)覽器的類ID,那么方法400從操作418轉(zhuǎn)移到操作414,其中由類ID標(biāo)識(shí)的預(yù)覽器被指定為當(dāng)前文件的預(yù)覽器。否則,例程400從操作418處繼續(xù)到操作428處,在其中返回錯(cuò)誤消息。
例程400從操作408、414、420和426繼續(xù)到操作430。在操作430處,所指定的預(yù)覽器被載入為后臺(tái)線程上的進(jìn)程外對(duì)象。例程400接著繼續(xù)到操作432,其中預(yù)覽器嘗試載入文件并建立預(yù)覽。例程400接著繼續(xù)到操作434,其中確定文件是否被成功地載入。如果文件沒有被成功載入,例程400從操作434轉(zhuǎn)移到操作438,在其中返回出錯(cuò)消息。如果文件被成功載入,例程400繼續(xù)到操作436,在其中返回成功消息。例程400從操作436和438繼續(xù)到操作440,在其中返回。
現(xiàn)在參考圖5,將描述說明性例程500,用于卸載預(yù)覽器和預(yù)覽處理器28。例程500在操作502處開始,其中預(yù)覽處理器28在預(yù)覽器上調(diào)用卸載方法。預(yù)覽器卸載文件并撤銷對(duì)自身的初始化以響應(yīng)接收到這樣的調(diào)用。例程500接著繼續(xù)到操作504,其中在預(yù)覽處理器界面28上調(diào)用撤銷初始化方法。這個(gè)調(diào)用造成預(yù)覽處理器對(duì)自身撤銷初始化。例程500從操作504繼續(xù)到操作506,在其中結(jié)束。
基于上述討論,應(yīng)該理解本發(fā)明的各個(gè)實(shí)施例包括提供文檔預(yù)覽的方法、系統(tǒng)、裝置和計(jì)算機(jī)可讀介質(zhì)。上述技術(shù)規(guī)范、例子和數(shù)據(jù)提供了對(duì)制造和使用本發(fā)明的組成部分的完整描述。由于可以不背離本發(fā)明的精神和范圍作出本發(fā)明的許多實(shí)施例,本發(fā)明駐留在這里所附的權(quán)利要求書中。
權(quán)利要求
1.提供文檔預(yù)覽的方法,所述方法包括提供能夠被一個(gè)或多個(gè)主應(yīng)用程序調(diào)用的預(yù)覽處理器,所述預(yù)覽處理器用于標(biāo)識(shí)和載入預(yù)覽器以生成主應(yīng)用程序所標(biāo)識(shí)的文檔的視覺預(yù)覽;在預(yù)覽處理器處從主應(yīng)用程序接收請(qǐng)求以生成文件的視覺預(yù)覽;標(biāo)識(shí)能夠生成文檔預(yù)覽的預(yù)覽器以響應(yīng)接收請(qǐng)求;以及將來自預(yù)覽處理器的請(qǐng)求發(fā)送到預(yù)覽器,指示預(yù)覽器載入所述文件并生成所述文檔的視覺預(yù)覽。
2.如權(quán)利要求1所述的方法,其特征在于,所述來自主應(yīng)用程序的請(qǐng)求還包含對(duì)于一窗口的句柄,應(yīng)該在所述的窗口中生成預(yù)覽,其中所述預(yù)覽器還用于在由所述主應(yīng)用程序標(biāo)識(shí)的窗口的次窗口中顯示預(yù)覽。
3.如權(quán)利要求2所述的方法,其特征在于,所述標(biāo)識(shí)能夠生成文檔預(yù)覽的預(yù)覽器包括請(qǐng)求所述主應(yīng)用程序標(biāo)識(shí)所述預(yù)覽器。
4.如權(quán)利要求2所述的方法,其特征在于,所述標(biāo)識(shí)能夠生成文檔預(yù)覽的預(yù)覽器包括請(qǐng)求所述主應(yīng)用程序標(biāo)識(shí)對(duì)應(yīng)于所述預(yù)覽器的類標(biāo)識(shí)符。
5.如權(quán)利要求2所述的方法,其特征在于,所述標(biāo)識(shí)能夠生成文檔預(yù)覽的預(yù)覽器包括搜索注冊(cè)表的內(nèi)容以標(biāo)識(shí)所述預(yù)覽器。
6.如權(quán)利要求2所述的方法,其特征在于還包括確定瀏覽器是否成功地載入所述文檔;以及從所述預(yù)覽處理器返回出錯(cuò)消息到主應(yīng)用程序以響應(yīng)確定所述預(yù)覽器沒有成功地載入所述文檔。
7.如權(quán)利要求6所述的方法,其特征在于還包括在預(yù)覽處理器處接收來自所述主應(yīng)用程序的請(qǐng)求以顯示對(duì)應(yīng)于所述出錯(cuò)消息的消息并顯示響應(yīng)于所述請(qǐng)求的消息。
8.如權(quán)利要求7所述的方法,其特征在于還包括在預(yù)覽處理器處從主應(yīng)用程序接收指向進(jìn)程界面的指針;將所述指向進(jìn)程界面的指針從所述預(yù)覽處理器傳遞到所述預(yù)覽器;以及經(jīng)由進(jìn)程界面,從預(yù)覽器發(fā)送進(jìn)程消息到主應(yīng)用程序。
9.如權(quán)利要求7所述的方法,其特征在于還包括查詢所述主應(yīng)用程序生成文檔預(yù)覽所需的附加文件的位置。
10.如權(quán)利要求7所述的方法,其特征在于還包括在預(yù)覽處理器處從所述主應(yīng)用程序接收指向信標(biāo)界面的指針;將指向信標(biāo)界面的指針從預(yù)覽處理器傳遞到預(yù)覽器;以及查詢所述主應(yīng)用程序以獲取載入在所述信標(biāo)界面上生成文檔預(yù)覽所需的支持文件的許可。
11.計(jì)算機(jī)可讀介質(zhì),具有存儲(chǔ)于其上的計(jì)算機(jī)可執(zhí)行指令,當(dāng)計(jì)算機(jī)執(zhí)行所述可執(zhí)行指令時(shí)會(huì)造成計(jì)算機(jī)將預(yù)覽處理器界面展現(xiàn)給一個(gè)或多個(gè)主應(yīng)用程序,所述預(yù)覽處理器界面可操作用于展現(xiàn)將一個(gè)或多個(gè)用于標(biāo)識(shí)和載入用于生成文檔預(yù)覽的預(yù)覽器的方法。
12.如權(quán)利要求11所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述預(yù)覽處理器界面包括用于初始化預(yù)覽處理器的初始化方法。
13.如權(quán)利要求12所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述預(yù)覽處理器界面包括用于標(biāo)識(shí)和載入所述預(yù)覽器的載入方法。
14.如權(quán)利要求13所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,標(biāo)識(shí)所述預(yù)覽器包括由所述主應(yīng)用程序調(diào)用被展現(xiàn)用于獲取所述預(yù)覽器的身份的界面。
15.如權(quán)利要求14所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,標(biāo)識(shí)所述預(yù)覽器包括由所述主應(yīng)用程序調(diào)用被展現(xiàn)用于獲取所述預(yù)覽器的類型標(biāo)識(shí)符的界面。
16.如權(quán)利要求14所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,標(biāo)識(shí)所述預(yù)覽器包括搜索注冊(cè)表以獲取注冊(cè)為所述文檔類型的預(yù)覽器的預(yù)覽器。
17.如權(quán)利要求14所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述預(yù)覽處理器界面包括用于顯示所述預(yù)覽的顯示方法。
18.如權(quán)利要求14所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述預(yù)覽器可操作用于展現(xiàn)包括用于顯示預(yù)覽的顯示方法的預(yù)覽界面,所述預(yù)覽處理器可操作用于在所述預(yù)覽器界面上調(diào)用所述顯示方法以響應(yīng)接收在所述預(yù)覽處理器界面上對(duì)所述顯示方法的調(diào)用。
19.用于提供文檔預(yù)覽的方法,所述方法包括在主應(yīng)用程序處展現(xiàn)預(yù)覽主界面,所述預(yù)覽主界面包括獲取預(yù)覽器方法,預(yù)覽處理器可以通過該方法為文檔類型獲取預(yù)覽器身份,獲取預(yù)覽器類標(biāo)識(shí)符方法,所述預(yù)覽處理器通過該方法可以為文檔類型預(yù)覽器獲取類標(biāo)識(shí)符,獲取界面方法,所述預(yù)覽處理器通過該方法可獲取指向其它由主應(yīng)用程序提供的界面的指針,以及完成載入方法,所述預(yù)覽處理器通過該方法可通知所述主應(yīng)用程序要預(yù)覽的文檔已經(jīng)被載入。
20.如權(quán)利要求19所述的方法,其特征在于還包括在所述預(yù)覽處理器處展現(xiàn)預(yù)覽處理器界面,所述預(yù)覽處理器界面包括用于初始化所述預(yù)覽處理器的初始化方法、用于指令所述預(yù)覽處理器標(biāo)識(shí)預(yù)覽器和將要預(yù)覽的文件載入到預(yù)覽器的載入方法、用于顯示預(yù)覽的顯示方法、用于指令所述預(yù)覽處理器顯示預(yù)覽的窗口已經(jīng)被改變的窗口改變方法以及用于撤銷對(duì)所述預(yù)覽處理器的操作初始化的撤銷初始化方法。
21.如權(quán)利要求20所述的方法,其特征在于還包括在所述預(yù)覽器處展現(xiàn)預(yù)覽界面,所述預(yù)覽界面包括用于接收指令以載入要預(yù)覽的文檔的載入方法、用于顯示指令以顯示預(yù)覽的顯示方法以及用于接收預(yù)覽所顯示的窗口已被改變的指示的窗口改變方法。
22.如權(quán)利要求21所述的方法,其特征在于,所述預(yù)覽器界面上的載入方法被所述預(yù)覽處理器調(diào)用以響應(yīng)在所述預(yù)覽處理器界面上接收調(diào)用所述載入方法。
23.如權(quán)利要求21所述的方法,其特征在于,所述預(yù)覽界面上的顯示方法被所述預(yù)覽處理器調(diào)用以響應(yīng)在所述預(yù)覽處理器界面上接收調(diào)用所述顯示方法。
24.如權(quán)利要求21所述的方法,其特征在于,所述預(yù)覽界面上的窗口改變方法被所述預(yù)覽處理器調(diào)用以響應(yīng)在所述預(yù)覽處理器界面上接收調(diào)用所述窗口改變方法。
全文摘要
提供了生成文檔預(yù)覽的方法和裝置。依照該方法,預(yù)覽處理器提供到一個(gè)或多個(gè)預(yù)覽器的界面。預(yù)覽器是能夠?yàn)橐粋€(gè)或多個(gè)文件類型生成視覺預(yù)覽的軟件組件。預(yù)覽處理器可操作地為文檔生成一預(yù)覽而標(biāo)識(shí)適當(dāng)?shù)念A(yù)覽器以響應(yīng)來自主應(yīng)用程序?yàn)槲募深A(yù)覽的請(qǐng)求。預(yù)覽處理器接著會(huì)調(diào)用預(yù)覽器并指令預(yù)覽器載入文檔并在由調(diào)用主應(yīng)用程序提供的窗口的次窗口中顯示預(yù)覽。
文檔編號(hào)G06F9/44GK1755619SQ200510089509
公開日2006年4月5日 申請(qǐng)日期2005年7月22日 優(yōu)先權(quán)日2004年9月30日
發(fā)明者J·P·羅森伯格, R·-C·肖 申請(qǐng)人:微軟公司