两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

為容納進(jìn)一對象管理設(shè)備環(huán)境的應(yīng)用程序的封裝的制作方法

文檔序號(hào):6405558閱讀:328來源:國知局
專利名稱:為容納進(jìn)一對象管理設(shè)備環(huán)境的應(yīng)用程序的封裝的制作方法
為容納進(jìn)一對象管理設(shè)備環(huán)境的應(yīng)用程序的封裝本發(fā)明涉及要在一對象管理設(shè)備中運(yùn)行的應(yīng)用程序的封裝(escapsulation)方法。
計(jì)算機(jī)應(yīng)用中的困難問題之一是缺少有效的文件管理系統(tǒng)。例如,在一目錄中不能存在具有相同名稱的兩個(gè)文件。
此外,不同計(jì)算機(jī)應(yīng)用程序所產(chǎn)生的數(shù)據(jù)文件之間還存在不兼容的問題。一般來說,每一計(jì)算機(jī)應(yīng)用程序均是獨(dú)立于其他計(jì)算機(jī)應(yīng)用程序工作的。一個(gè)計(jì)算機(jī)程序的數(shù)據(jù)極少可能有效地合并到另一應(yīng)用程序的數(shù)據(jù)中去。如果數(shù)據(jù)被合并了,要進(jìn)行修改的話,假如不是不可能,也將是十分困難的。加之,一旦數(shù)據(jù)由第一應(yīng)用程序傳送到第二應(yīng)用程序后,通常是不可能再將該數(shù)據(jù)返回到第一應(yīng)用程序進(jìn)行修改的。
既使在一種容許應(yīng)用程序的數(shù)據(jù)之間進(jìn)行有效傳遞的環(huán)境產(chǎn)生后,仍然存在著對那些原先并非設(shè)計(jì)為在此環(huán)境下運(yùn)行的應(yīng)用程序的擴(kuò)展兼容問題。
根據(jù)本發(fā)明的優(yōu)選實(shí)施方案,提出了一種具有一個(gè)對象管理設(shè)備的計(jì)算機(jī)系統(tǒng)。此對象管理設(shè)備管理多個(gè)對象。每一對象引用一個(gè)被設(shè)計(jì)成與該對象管理系統(tǒng)協(xié)同運(yùn)行的應(yīng)用程序。該計(jì)算機(jī)系統(tǒng)還包括有一封裝系統(tǒng),此封裝系統(tǒng)能促使一并非被設(shè)計(jì)來與該對象管理設(shè)備協(xié)同運(yùn)行的第一應(yīng)用程序容納進(jìn)此計(jì)算機(jī)系統(tǒng)。這種封裝設(shè)施包含有一封裝外殼(encapsulation Shell)和一個(gè)外殼過濾器(Shell fiter)。封裝外殼可被多個(gè)對象所引用,就好象此封裝外殼是一個(gè)被設(shè)成與該對象管理設(shè)備協(xié)同運(yùn)行的應(yīng)用程序一樣。封裝外殼還在對象管理設(shè)備和該第一應(yīng)用程序之間起接口的作用。所說的外殼過濾器與封裝外殼協(xié)同操作,并按照封裝外殼發(fā)出的指令可以攔截用戶發(fā)給該第一應(yīng)用程序的命令。該外殼過濾器還將封裝外殼所產(chǎn)生的命令傳送給該第一應(yīng)用程序。
此封裝外殼可用于各種應(yīng)用程序。為了使封裝外殼能了解有關(guān)某一特定應(yīng)用程序的特定信息,每一個(gè)要被封裝外殼封裝的應(yīng)用程序均具有與其相關(guān)連的結(jié)構(gòu)特性。同樣,一被封裝的應(yīng)用程序可能伴隨一菜單/宏定義文件,封裝外殼可以對此定義文件進(jìn)行訪問,以便用戶通過封裝外殼和外殼過濾器定義可利用的宏功能和菜單。


圖1是按照本發(fā)明優(yōu)選實(shí)施方案的計(jì)算機(jī)方框圖;
圖2為說明按照本發(fā)明優(yōu)選實(shí)施方案的對象、應(yīng)用程序和數(shù)據(jù)文件間的關(guān)系的方框圖;
圖2A是表明按照本發(fā)明優(yōu)選實(shí)施方案的與一應(yīng)用程序有關(guān)的類別特性和與對象有關(guān)的對象特性的方框圖;
圖3表示按照本發(fā)明優(yōu)選實(shí)施方案的多個(gè)被連接的對象。
圖4表示按照本發(fā)明優(yōu)選實(shí)施方案的一系列用作文件夾的對象,作為含有數(shù)據(jù)的對象的母體。
圖5說明按照本發(fā)明的優(yōu)選實(shí)施方案,連接各種對象而得的屏幕顯示;
圖6表示出為得到圖5所示的屏幕顯示而作的對象連接;
圖7表示按照本發(fā)明的優(yōu)選實(shí)施方案,三個(gè)對象可以如何連接起來;
圖8和圖9說明按照本發(fā)明優(yōu)選實(shí)施方案,如何復(fù)制對象;
圖10和圖11說明按照本發(fā)明優(yōu)選實(shí)施方案,對一公用對象的復(fù)制;
圖12-圖71表示按照本發(fā)明優(yōu)選實(shí)施方案,一用戶管理對象的對話期間屏幕上的顯示情景,以及顯示在用戶面前的對象如何連接的框圖;
圖72為按照本發(fā)明優(yōu)選實(shí)施方案,一個(gè)對象管理設(shè)備(OMF)的方框圖。
圖73表示在圖22所示的OMF中所包含的一個(gè)系統(tǒng)文件HPOMF.CAT的構(gòu)成的方框圖;
圖74表明按照本發(fā)明優(yōu)選實(shí)施方案,一個(gè)全局母體和全局對象間的關(guān)系。
圖75表明圖72中所示的OMF中的系統(tǒng)文件是如何對圖1中所示的存儲(chǔ)器中的數(shù)據(jù)文件和應(yīng)用程序進(jìn)行訪問的方框圖;
圖76是圖75中所示存貯器結(jié)構(gòu)的方框圖;
圖77和圖78表示按本發(fā)明優(yōu)選實(shí)施方案的對象和連接。
圖79為包含在圖72所示OMF的HPOMF.XRF(一個(gè)系統(tǒng)文件)的構(gòu)成的方框圖。
圖80顯示按照本發(fā)明優(yōu)選實(shí)施方案的一個(gè)視圖說明記錄;
圖81表示按照本發(fā)明優(yōu)選實(shí)施方案的快照(snapshot)的使用;
圖82表示按照本發(fā)明優(yōu)選實(shí)施方案,在沒有快照對一視圖的數(shù)據(jù)路徑;
圖83表示按照本發(fā)明優(yōu)選實(shí)施方案,在具有一快照時(shí)一視圖的數(shù)據(jù)路徑;
圖84表示按照本發(fā)明優(yōu)選實(shí)施方案,一與圖72中所示的OMF協(xié)同作用的封裝外殼;
圖84A表示按照本發(fā)明優(yōu)選實(shí)施方案,圖1中所示計(jì)算機(jī)系統(tǒng)所用的文件結(jié)構(gòu);
圖84B表示在MS-DOS操作系統(tǒng)上運(yùn)行的程序所用的文件說明的分析;
圖85-圖120及圖123-圖140表示用戶在管理被圖84中所示的封裝外殼所封裝的應(yīng)用程序的對象的對話期間屏幕上顯示的情景;
圖121和圖122表示在一程序被關(guān)閉時(shí)封裝外殼可執(zhí)行步驟的流程圖;
圖141為一流程圖,它揭示按照本發(fā)明優(yōu)選實(shí)施方案,在一被封裝的應(yīng)用程序的對象被打開時(shí)圖84中所示的封裝外殼所執(zhí)行過程;
圖142為一流程圖,它揭示在一文件被激活時(shí)圖84所示的封裝外殼所執(zhí)行過程;
圖143為一流程圖,它揭示按照本發(fā)明優(yōu)選實(shí)施方案,當(dāng)一被封裝應(yīng)用程序?qū)ο蟊簧蓵r(shí)圖84所示封裝外殼所執(zhí)行過程;
圖144表示按照本發(fā)明優(yōu)選實(shí)施方案,文件HPOMF.DOS中的記錄型式;
圖145表示按照本發(fā)明優(yōu)選實(shí)施方案,文件HPOMF.DOS中的記錄的邏輯結(jié)構(gòu)。
圖1所示為一臺(tái)帶有監(jiān)視器14、鍵盤19和鼠標(biāo)器20的計(jì)算機(jī)18。主存儲(chǔ)器17如箭頭9所示是計(jì)算機(jī)18內(nèi)的一個(gè)部分。在主存儲(chǔ)器17內(nèi)有一對象管理設(shè)備(OMF)100、應(yīng)用程序101、102、103、104、105、及106。
在101到106的每一個(gè)程序中儲(chǔ)存著使用對象的數(shù)據(jù)。例如圖2中應(yīng)用程序101被表明儲(chǔ)存有使用對象202、203、204和205的數(shù)據(jù)。同樣,應(yīng)用程序106儲(chǔ)存有使用對象207、208、209及210的數(shù)據(jù)。OMF100存儲(chǔ)有指明哪些對象適用于哪一個(gè)應(yīng)用程序的信息。與同一個(gè)應(yīng)用程序相關(guān)的對象被認(rèn)為屬于同一類別。例如對象202、203、204和205是屬于相同類別,因?yàn)樗鼈冎械拿恳粋€(gè)均與應(yīng)用程序101有關(guān)。同樣,對象207、208、209及210也屬于同一類別,因?yàn)樗鼈冎械拿恳粋€(gè)均與應(yīng)用程序106有關(guān)。所有相同類別的對象利用同一應(yīng)用程序。當(dāng)一個(gè)應(yīng)用程序正在由計(jì)算機(jī)18運(yùn)行時(shí),OMF通知該應(yīng)用程序?yàn)楂@取數(shù)據(jù)應(yīng)該訪問哪一個(gè)對象。因而被訪問的這個(gè)對象就被認(rèn)為是激活的。當(dāng)與某個(gè)對象有關(guān)的應(yīng)用程序不被計(jì)算機(jī)18運(yùn)行,或者當(dāng)與該對象有關(guān)的應(yīng)用程序雖然正在運(yùn)行但是沒有利用此對象的數(shù)據(jù)時(shí),這個(gè)對象就是非激活的。
激活的對象能用消息互相通信。例如,如果應(yīng)用程序101在兩種情況下由計(jì)算機(jī)18運(yùn)行,一種使用對象202數(shù)據(jù),另一種使用對象203的數(shù)據(jù),那么對象202及203都是激活的,因此對象202可以發(fā)送一個(gè)消息211給對象203。同樣,如果計(jì)算機(jī)18正在用對象202的數(shù)據(jù)運(yùn)行應(yīng)用程序101,并且正在用對象207數(shù)據(jù)運(yùn)行應(yīng)用程序106,那么對象202和207都是激活的。因此對象202可以發(fā)送一個(gè)消息212給對象207。
諸如211及212之類的消息可以編排成能被所有類別的對象所發(fā)送和接收的格式,這樣就允許所有的激活對象之間自由通信。這同時(shí)也能定義新的對象類型,并把它加進(jìn)系統(tǒng)中去而不需要為使用該新對象類型而修改已有的對象類型。
每個(gè)對象都與一組數(shù)據(jù)文件相關(guān)聯(lián),例如對象210被表示成與數(shù)據(jù)文件221、222和223相關(guān)。在數(shù)據(jù)文件221、222和223中的數(shù)據(jù)具有能為應(yīng)用程序106所解釋的格式。
每一個(gè)對象都與一特性表相關(guān)聯(lián)。每一個(gè)特性具有一個(gè)名稱和一個(gè)通過指定該名稱可進(jìn)行存取的值。此外每一類別的對象與一個(gè)對該類別所有對象都能通用的特性相關(guān)聯(lián)。例如,圖2A中表示出對象205和應(yīng)用程序101。對象205有與它相關(guān)的特性231、232、233。應(yīng)用程序101有與它相關(guān)聯(lián)的特性131、132和133。
特性表可包含有任意數(shù)目的特性。每一個(gè)特性值可以是0到3,2762個(gè)字節(jié)的。這些特性用來存儲(chǔ)有關(guān)各對象及類別的說明性信息,例如名稱注解等。
對象可以引用其他的對象。這些引用稱為連接。連接是具有指向性的一個(gè)對象稱為母體,另一個(gè)則為子體。每一個(gè)連接有一個(gè)引用名,它是由母體對象為辨認(rèn)它的子體群中的每一個(gè)子體而規(guī)定的號(hào)碼。一個(gè)對象的所有子體,它的子體的子體等等總稱為該對象的子系族。同樣,一個(gè)對象的母體,它的母體的母體等等總稱為該對象的祖系族。在本發(fā)明的優(yōu)選實(shí)施方案中,一個(gè)能被用戶控制的對象可以有0個(gè)或多個(gè)子體及一個(gè)或多個(gè)母體。一個(gè)對象不允許成為它自己的子系。
圖3中示出對象301、302、303、304、305、306、307、308及309。對象301-309的連接以每一個(gè)連接旁邊括號(hào)內(nèi)的號(hào)碼作引用名。對象301有一個(gè)到對象302的連接310,其引用名稱是“1”,對象301有一個(gè)到對象303的連接311,引用名稱是“2”;對象302有一個(gè)到對象“304”的連接312,引用名稱為“7”;對象302有一個(gè)到對象305的連接313,引用名稱是“8”;對象303有一個(gè)到對象的306的連接314,引用名稱是“1”;對象303有一個(gè)到對象307的連接315,引用名稱是“4”;對象304有一個(gè)到對象308的連接316,引用名稱是“7”;對象305有一個(gè)到對象308的連接317,引用名稱是“7”;對象306有一個(gè)到對象309的連接318,引用名稱是“8”;對象307有一個(gè)到對象306連接319,引用名稱是“9”;對象307有一個(gè)到對象309的連接320,引用名稱是“13”;對象308有一個(gè)到對象309的連接321,引用名稱是“1”;對象308,有一個(gè)到對象303的連接322,引用名稱是“3”。
對象301是對象302和303的一個(gè)母體。對象303是對象301和對象308的一個(gè)子體。對象302-309中每一個(gè)都屬對象301的子系族。對象303的子系族是對象306、307和309。對象301-308全體是對象309的祖系族。對象301、302、305和308是對象303的祖系族,等等。
激活對象能動(dòng)態(tài)地產(chǎn)生和刪除與其它對象的連接。當(dāng)與一個(gè)對象的連接被刪除時(shí),OMF100就檢查該對象是否還有任何其他的母體。如果沒有,OMF100通過刪除該對象的數(shù)據(jù)文件并收回與該對象有關(guān)聯(lián)的其他的存儲(chǔ)空間來銷毀該對象。
對象的連接可以用于各種目的。例如文件夾可以是對象的形式。用作文件夾的對象的子體群可以是含有各應(yīng)用程序所用數(shù)據(jù)的對象,或者這些對象也可以是其他的文件夾。圖4表示把對象作為文件夾使用的一個(gè)例子。對象401(也稱文件夾401)、對象402(也稱文件夾402)、對象403(也稱文件夾403)及對象404(也稱文件夾404),都被用為文件夾。文件夾401包含一個(gè)裝載數(shù)據(jù)的對象405、一個(gè)裝載數(shù)據(jù)的對象406、一個(gè)裝載數(shù)據(jù)的對象407及文件夾402。文件夾402包含一個(gè)裝載數(shù)據(jù)的對象408、文件夾403及文件夾404。文件夾403包含一個(gè)裝載數(shù)據(jù)的對象409和一個(gè)裝載數(shù)據(jù)的對象410。文件夾404包含一個(gè)裝載數(shù)據(jù)的對象411、一個(gè)裝載數(shù)據(jù)的對象412和一個(gè)裝載數(shù)據(jù)的對象413。
連接的一個(gè)更復(fù)雜的用途是構(gòu)成復(fù)合對象。例如在圖5中,一個(gè)文檔510包含有多行正文511、多行正文512、圖形513、圖形514和展開頁數(shù)據(jù)515。如圖6所示,正文和格式化數(shù)據(jù)存儲(chǔ)在對象611中,圖形513所用的圖象數(shù)據(jù)存儲(chǔ)在612中,圖象514所用的圖象數(shù)據(jù)存儲(chǔ)在對象613中,而展開頁數(shù)據(jù)515存儲(chǔ)在對象614中。用于建立復(fù)合對象的連接總具有某些與該連接有關(guān)聯(lián)的數(shù)據(jù)傳輸,因此稱為數(shù)據(jù)連接。圖6表示數(shù)據(jù)連接615、616和617。在文檔510中僅僅示出了來自對象612、613和614的數(shù)據(jù),所以數(shù)據(jù)連接614、615和616是可視的數(shù)據(jù)連接。在可視的數(shù)據(jù)連接中,母體將發(fā)送請求給它的子體,以便在母體的窗口顯示數(shù)據(jù)。
圖7所示含有第一展開頁數(shù)據(jù)的對象701通過數(shù)據(jù)連接704被聯(lián)接到含有第二展開頁數(shù)據(jù)的對象702,并通過數(shù)據(jù)連接705被聯(lián)到含有第三展開頁數(shù)據(jù)的對象703。第一展開頁使用來自第二展開頁及第三展開頁的數(shù)據(jù)。因?yàn)榈谝徽归_頁不僅僅顯示來自第二展開頁及第三展開頁的數(shù)據(jù),所以數(shù)據(jù)連接704和705被稱為傳遞數(shù)據(jù)的數(shù)據(jù)連接。
當(dāng)要復(fù)制或發(fā)送對象時(shí),OMF100做“內(nèi)務(wù)”操作(bookkeeping)。當(dāng)復(fù)制一個(gè)對象時(shí),OMF100就復(fù)制與該對象有關(guān)的數(shù)據(jù)文件。如果復(fù)制的對象有子體群,OMF100也復(fù)制該對象的子系族,并在新的對象之間建立連接,以便使新的復(fù)合對象具有像原來一樣的相同結(jié)構(gòu)。
例如,圖8示出圖3的對象308和對象308的子系族。當(dāng)OMF復(fù)制對象308時(shí),OMF把對象308子系族中每一個(gè)對象及圖8中所示的連接均予以復(fù)制。圖9表示對象308的一個(gè)復(fù)制件。對象308a是對象308的一個(gè)復(fù)制件。對象303a是對象303的復(fù)制件。對象306a是對象306的復(fù)制件。對象307a是對象307的復(fù)制件。對象309a是對象309的復(fù)制件。連接321a是連接321的復(fù)制件。連接322a是連接322的復(fù)制件。連接314a是連接314的復(fù)制件。連接315a是連接315的復(fù)制件。連接318a是連接318的復(fù)制件。連接319a是連接319的復(fù)制件。連接320a是連接320的復(fù)制件。
在本優(yōu)選實(shí)施方案中,當(dāng)一母體被復(fù)制時(shí),默認(rèn)將導(dǎo)致該母體的各子體均被復(fù)制。但是如果一子體被指定為“公用”時(shí),它就不被復(fù)制。相反,母體的復(fù)制件包括到子體的連接。例如,在圖10中,母體對象161是要被復(fù)制的。母體對象161通過連接163連接到子體對象162。子體對象162是一個(gè)公用對象。如圖11中所示,對復(fù)制的母體對象161,導(dǎo)致新對象161a通過新連接163a連接到對象162。對象161a是對象161的復(fù)制件。連接163a是連接163的復(fù)制件。
在圖12-71中,說明如何在監(jiān)視器14上向用戶顯示對象的。圖12中所示為“New Wave Office”工作臺(tái)面,其中包含有分別標(biāo)名“File Drawer”、“Waste Basket”、“Diaguostic”、“Printers”、“Star”和“My Eolder”的一圖象。用戶(圖中未表示)可利用鍵盤19或鼠標(biāo)器20控制光標(biāo)781選擇“My Folder”。
圖13說明在監(jiān)視器14上所顯示的對象是如何被連接的。New Wave Office(被示為對象700)通過連接711、712、713、714、715和716分別成為“File Drawer”(被示為對象701)、“Waste Basket”(被示為對象702)、“Diagnostic”(被示為對象703)、“Printers”(被示為對象704),“My Folder”(被示為對象705)和“Star”(被示為對象706)的母體。
圖14中,用戶已利用光標(biāo)781選擇了下拉菜單782中的“Create a New…”。這一選擇的結(jié)果出現(xiàn)了如圖15所示的對話框779。用戶利用光標(biāo)781使圖象“Layout”呈增輝顯示,并利用鍵盤19鍵入“Past UP”作為欲產(chǎn)生的新對象的名稱?,F(xiàn)在光標(biāo)781指向標(biāo)有“OK”的區(qū)域,一旦這一區(qū)域被選擇,就產(chǎn)生一名為“Paste UP”的新對象,如圖16中所示。
在圖17中,“Paste UP”(即對象707)通過連接717被連接成為New Wave Office的一個(gè)子體。
基本記錄夾(clipboad)操作是Cut、Copy和Past。用戶必須選擇欲被傳送的或復(fù)制的數(shù)據(jù),然后給出Cut命令或Copy命令。Cut將所選擇的數(shù)據(jù)傳送給記錄夾(將其從原先存放地點(diǎn)刪除)。Copy將所選擇的數(shù)據(jù)在記錄夾上予以復(fù)制,然后用戶必須選擇他要將數(shù)據(jù)傳送往或復(fù)制到的地址,并給出Paste命令。這一命令將記錄夾的內(nèi)容復(fù)制到該被選擇的地址處。
圖18中,表示一用戶已選擇了“Past UP”。這一選擇由逆影象顯示的“Paste UP”的圖象示出。利用光標(biāo)781,由下拉菜單783中選擇“Copy”。圖18A表示,記錄夾對象720經(jīng)連接721成為對象708的母體。對象708是對象707(“Paste UP”)的一個(gè)復(fù)制件。
如圖19中所示,接著,用戶由下拉菜單783中選擇“Paste”。結(jié)果如圖20所示,增加了一個(gè)對象708(光標(biāo)781所指),它是原“Paste UP”對象707的一個(gè)復(fù)制件。
在圖21中,此新的對象被表示為對象708,它通過連接718連接成為New Wave Office的一個(gè)子體。
在圖22中,已利用光標(biāo)781觸擊兩次“My Folder”的圖象而將“My Folder”打開。結(jié)果得到代表“My Folder”的一個(gè)新窗口785。
在圖23中表示,利用光標(biāo)781將“Paste UP”(對象708)引入到窗口785。在圖24中,這一過程完畢,現(xiàn)在“Paste UP”(對象708)處于窗口“My Folder”之中。
在圖25中,表示為對象708的“Paste UP”現(xiàn)在經(jīng)由連接728成為“My Folder”的一個(gè)子體。
用戶用Share指令可建立多重連接。這一指令是記錄夾隱喻(Clipboard)的擴(kuò)充,在今天的軟件包中為系統(tǒng)的數(shù)據(jù)流通和復(fù)制方面它是通用的,此記錄夾是一個(gè)系統(tǒng)用來保持傳輸中的數(shù)據(jù)的專用緩沖器。
在某種情況下,Share指令操作與上述Cut或Copy指令相似。這就是說,使用Share、Cut或Copy,用戶首先選擇某些數(shù)據(jù),然后給出Share指令,結(jié)果某些東西被放在記錄夾上。然而在Share命令的情況下,所放在記錄夾的內(nèi)容既不是實(shí)際的數(shù)據(jù),也不是實(shí)際數(shù)據(jù)的復(fù)制品。而是一個(gè)對所選擇數(shù)據(jù)的連接。當(dāng)這個(gè)連接被粘接上時(shí),在原始數(shù)據(jù)和粘接地址位置之間即構(gòu)成了固定聯(lián)系。通過使用OMF 100,這一連接就被有關(guān)的各應(yīng)用程序所使用,使得對原始數(shù)據(jù)作方便的訪問(在其整個(gè)應(yīng)用期間)并在原始數(shù)據(jù)被修改時(shí)自動(dòng)更新。
圖26中New Wave Office窗口已經(jīng)被啟用。圖中,已選擇了“Paste UP”(對象707),以逆影象顯示以便看起來更明顯。用光標(biāo)781從菜單783中選擇“Share”。圖26A示出Clipboard對象720,它通過連接722成為“Paste UP”對象707的一個(gè)母體。
圖27中,窗口785已被激活。由菜單787已選擇“Paste”。如圖28所示,其結(jié)果是顯示在窗口785中的一幅圖像707a,它表明“Paste UP”(對象707)為窗口785和Newwave Office窗口所共享。在圖28A中,作為粘接的結(jié)果,“Paste UP”現(xiàn)在表示為既是經(jīng)連接722成為Clipboard 720的一個(gè)子體又是經(jīng)連接727成為“My folder”705的一個(gè)子體。在圖29中,只示出用戶可以看見的對象的互相聯(lián)接,“Paste UP”(對象707)被表示為經(jīng)連接727成為“My Folder”705的一個(gè)子體。因?yàn)椤癙aste UP”(對象707)是共享的而不是復(fù)制的,所以“Paste UP”(對象707)仍然是經(jīng)連接717作為Newwave Office的子體。
數(shù)據(jù)連接的一個(gè)關(guān)鍵性特點(diǎn)是數(shù)據(jù)的自動(dòng)傳輸。當(dāng)一個(gè)子體對象是打開的而用戶改變它“被共享”(Shared out)的部分時(shí),即調(diào)用OMF100。OMF100檢查是否有任何該對象的母體群“照管”(Care)這一具體變化。如果他們照管并且也都是打開的,OMF100對該母體群發(fā)送一個(gè)信息,通知它們新數(shù)據(jù)是可以利用的。然后,母體就能給子體發(fā)信息以產(chǎn)生或顯示該數(shù)據(jù)。用戶利用這個(gè)特點(diǎn)可以建立起具有復(fù)雜數(shù)據(jù)相關(guān)性的復(fù)合對象,并能使任一子部分的改變自地在其他部分得到反映。例如改變一張展開頁中的一個(gè)數(shù)字,就能重新作一圖形而使一篇文檔中的圖象更新。因?yàn)橐粋€(gè)對象可能有許多母體,單一對象可能為任意個(gè)其他對象用作“鍋爐板”(boiler plate)。在此鍋爐板內(nèi)的變化均會(huì)在與它連接的所有對象內(nèi)得到反映。在下面的討論中說明自動(dòng)數(shù)據(jù)傳輸。
圖30中,“My Folder”窗口785已經(jīng)關(guān)閉。圖31中,光標(biāo)781從下拉菜單782選擇“Create a New…”。這一選擇的結(jié)果,出現(xiàn)了圖32中所示的對話框779。用光標(biāo)781將圖形HPText增輝,并用鍵盤19鍵入名字“Sample Text”作為欲生成的新的對象名?,F(xiàn)在光標(biāo)781指向標(biāo)記為“OK”的區(qū)域。一旦選擇了這個(gè)區(qū)域,一個(gè)標(biāo)題為“Sample Text”的新對象就被產(chǎn)生,如圖33所示。
在圖34中,“Sample Text”(對象709)經(jīng)連接被表示成是NewWave Office的子體。圖34中,由于“My Folder”已經(jīng)關(guān)閉,“Paste UP”(對象708)、連接728和連接727均未示出。然而它們?nèi)允谴嬖诘?,但對用戶來說現(xiàn)在是看不見的。
圖35中,把光標(biāo)781置于圖像“Sample Text”(對象707)上,并兩次敲擊鼠標(biāo)器20的按鍵,將“Sample Text”打開。圖36中示出為“Sample Text”打開的一個(gè)窗口789。
圖37中,通過對“Paste UP”圖像的兩次敲鍵已將“Paste UP”(對象707)所用的窗口791打開。圖38中,通過使用由鼠標(biāo)器20控制的光標(biāo)781,已選擇了“Sample Text”正文的一部分790。表明“NewWave Office enviroment”的逆影像部分是區(qū)域790。
圖39中,用光標(biāo)從下拉菜單792中選擇“Share”選擇項(xiàng)。在圖40中,用光標(biāo)781選擇了窗口791中的區(qū)域793。在圖41中,用光標(biāo)781從下拉菜單794中選擇了“Past”選擇項(xiàng)。圖42中,“Sample Text”被聯(lián)接到“Past UP”(對象707),并把所顯示的正文790顯示在“paste UP”窗口791中。在圖43中,通過連接729把“Sample Text”(對象709)表示為“Paste UP”(對象707)的一個(gè)子體。在圖42中,因?yàn)椤癝tar”窗口789是打開的,所以,顯示的正文790以灰色表示。在圖44中,“Star”窗口是關(guān)閉的,所以,顯示的正文790作明亮的顯示。
在圖45中,用光標(biāo)781選擇窗口791的一個(gè)區(qū)域795。圖46表示光標(biāo)781將“Star”圖像移入窗口791的區(qū)域795。
圖47中,從“Star”(對象706)來的數(shù)據(jù)現(xiàn)在顯示在窗口791的區(qū)域795中。正如在圖48中可能看到的,“Star”(對象706)通過連接726現(xiàn)在成為“Paste UP”(對象707)的一個(gè)子體。
圖49中,用戶已經(jīng)把光標(biāo)781置于窗口791的區(qū)域795之上,并敲擊鼠標(biāo)器20的按鍵兩次。其結(jié)果是將“Star”(對象706)打開并顯示在窗口796中。圖50中用光標(biāo)791在菜單窗口797中選擇“Ellipse”選擇項(xiàng),其結(jié)果導(dǎo)致“Star”(對象706)內(nèi)的數(shù)據(jù)由星形變成橢園形。如圖51所示,該結(jié)果既改變顯示在窗口796內(nèi)的數(shù)據(jù)又改變顯示在窗口791的區(qū)域795的數(shù)據(jù)。
圖52中,用光標(biāo)781定義窗口791中的一個(gè)區(qū)域797。圖53中,用光標(biāo)781從下拉菜單798中選擇“Create a New…”選擇項(xiàng)。選擇的結(jié)果是對話框799出現(xiàn)在圖54中。對話框799包含對能夠在窗口791的區(qū)域797中顯示數(shù)據(jù)的兩類對象適用的圖像。利用光標(biāo)781,使圖像“HP Share”增輝顯示。利用鍵盤19,鍵入名稱“New Shape”作為要產(chǎn)生的新對象的名稱。光標(biāo)現(xiàn)在指向標(biāo)有“OK”的區(qū)域。一旦選擇了這個(gè)“OK”區(qū)域,一個(gè)標(biāo)題為“New Shape”的新對象就產(chǎn)生了?!癗ew Shape”的數(shù)據(jù)顯示于窗口791的區(qū)域797中,如圖55所示。圖56中,通過連接760的“New Shape”(對象750)被表示為“Paste UP”(對象707)的一個(gè)子體。
圖57中,通過把光標(biāo)781置于窗口791的區(qū)域297上并按兩次鼠標(biāo)器20上的按扭,使“New Shape”的窗口800打開。圖58中,用光標(biāo)781從下拉菜單801中選擇“Triangle”選擇項(xiàng)。其結(jié)果,如圖59所示,一個(gè)三角形現(xiàn)在既顯示在窗口800內(nèi)又顯示在窗口791的區(qū)域797中。
圖60中,窗口800已關(guān)閉。圖61中,通過把光標(biāo)置于窗口796的區(qū)域797上并按鼠標(biāo)器20上的按鍵選擇“New Shape”。圖62中,用光標(biāo)781從下拉菜單中選擇“Share”選擇項(xiàng)。圖63中,用光標(biāo)781選擇窗口791的區(qū)域802。圖64中,用光標(biāo)781從下拉菜單794中選擇“Paste”選擇項(xiàng)。如圖65所示,其結(jié)果是具有來自顯示在窗口791的區(qū)域797和區(qū)域802中“New Shape”的數(shù)據(jù)的“New Shape”的共享。圖66中,示出“New Shape”(對象750)有一個(gè)來自母體“Paste UP”(對象707)的附加連接770。
圖67中,用光標(biāo)781已選擇了區(qū)域797。然后用光標(biāo)781從下拉菜單794中選擇“Cut”選擇項(xiàng)。如圖68所示,其結(jié)果是區(qū)域797從窗口791被移出。圖69中,用光標(biāo)781從下拉菜單783中選擇“Paste”選擇項(xiàng)。如圖70所示,其結(jié)果是由光標(biāo)781指示的一個(gè)“New Shape”圖像。圖71中,現(xiàn)在“New Shape”(對象750)通過連接780被表示成為“NewWave Office(對象100)的一個(gè)子體。
圖72所示,OMF 100包括7個(gè)系統(tǒng)文件系統(tǒng)文件601、602、603、604、605、606和607。OMF接口599作OMF與在計(jì)算機(jī)18中運(yùn)行的其他程序的接口之用。系統(tǒng)文件601-607用作為提供各種信息的數(shù)據(jù)庫。他們提供有關(guān)對象性質(zhì)的信息,例如,每一個(gè)對象是什么類別,每一個(gè)對象的名稱是什么。系統(tǒng)文件601-607提供有關(guān)對象的類別的信息,諸如每一類別對象與什么應(yīng)用程序有關(guān),什么圖象代表某一特定類別的對象以及什么信息的表格(例如圖2中所示的那些)能夠由一特定類別的對象所處理。系統(tǒng)文件601-607還包含有關(guān)母體與各子體對象之間連接的信息,這些信息包括母體和來自每一對象的一個(gè)母體的每一個(gè)連接的引用名的列表;子體和對每一對象的一個(gè)子體的每個(gè)連接的引用名;以及管理數(shù)據(jù)連接間的數(shù)據(jù)交換的附加信息。另外,系統(tǒng)文件601-607包含通用的信息,例如在該操作系統(tǒng)中,對于所安裝的每一類別,裝有哪些文件,及當(dāng)OMF100重新啟動(dòng)時(shí),什么對象請求自動(dòng)再啟動(dòng)。
在本發(fā)明的優(yōu)選實(shí)施方案中,系統(tǒng)文件601稱為HPOMT.CAT,系統(tǒng)文件602稱為HPOMF.CLS,系統(tǒng)文件603稱為HPOMF.XRF,系統(tǒng)文件604稱為HPOMF.PRP,系統(tǒng)文件605稱為HPOMF.INS,系統(tǒng)文件606稱為HPOMF.SDF,系統(tǒng)文件607稱為HPOMFICO.NWE。現(xiàn)在對每個(gè)系統(tǒng)文件加以說明。
系統(tǒng)文件601,即HPOMF.CAT也稱為SYSCAT。HPOMF.CAT是系統(tǒng)中所有現(xiàn)有對象的一張目錄表。在圖73中,HPOMF.CAT被表示成是面向記錄的。HPOMF.CAT具有多個(gè)文件記錄。圖73中,只作出了文件記錄0到文件記錄8,但HPOMF.CAT可以包含比圖73中所示的多得多的文件記錄。文件記錄0是包含各種標(biāo)記的一個(gè)標(biāo)題,用于管理空文件記錄的編目。一個(gè)標(biāo)記是某個(gè)已知值,它(如果存在)表示文件沒有錯(cuò)誤。文件記錄1到文件記錄8及附加文件記錄(圖中未表示)或是定義一個(gè)現(xiàn)有的對象,或是空的。在本優(yōu)選實(shí)施方案中,當(dāng)需要更多的文件記錄時(shí),HPOMF.CAT能夠動(dòng)態(tài)的增長,但是不能夠縮小。
文件記錄1定義了一個(gè)稱為全局母體的特定的對象。該全局母體有一個(gè)不同于其他對象的形式,并且可以看作為一個(gè)“偽”對象。圖74表示的全局母體是通過連接260的全局對象250、通過連接261的全局對象251、通過連接262的全局對象252、通過連接263的全局對象253、通過連接264的全局對象254、和通過連接265的全局對象255的全局母體。全局對象250-255也在HPOMF.CAT中。全局對象250-255中的每一個(gè)可以是HPOMF.CAT中的一個(gè)或多個(gè)對象的母體。在HPOMF.CAT中的非全局對象的每一對象是全局對象的一個(gè)子系族。雖然圖74中只示出6個(gè)全局對象,但在一個(gè)系統(tǒng)中運(yùn)行的全局對象的個(gè)數(shù)實(shí)際上取決于系統(tǒng)的構(gòu)成。利用從全局母體到一全局對象連接的引用名,系統(tǒng)中的任何一個(gè)對象可以引入該全局對象。
正如從圖73可以看到的,在HPOMF.CAT中的文件記錄是連續(xù)編號(hào)的。這些號(hào)碼用作辨認(rèn)每個(gè)對象的標(biāo)記。
在本發(fā)明的優(yōu)選實(shí)施方案中,每個(gè)記錄的長度是128個(gè)字節(jié)。
文件記錄所采用的字段列于下表1中表11FirstFreeEntry 包含有HPOMF.CAT內(nèi)的第一空記錄的記錄號(hào),或者如果沒有空記錄時(shí)即為0。
FileId 包含以零終止的字符串“HPOMF.
CAT”,用作特征。
Version 包含文件格式種類號(hào)碼,也用作特征。
1MaxRecordNumber 包含HPOMF.CAT里曾經(jīng)配置的最高記錄的號(hào)(這個(gè)最高記錄可以是或不是空的)下面表2包含HPOMF.CAT中用于除文件記錄0以外的文件記錄字段表21FirstFreeEntry 如果這個(gè)記錄定義一個(gè)對象,即為“-1”,否則,這個(gè)記錄就是空的,并且這個(gè)字段是下一個(gè)空記錄的記錄號(hào)碼?;蛘呷绻麤]有更多的空記錄就是“0”。如果該記錄是空的,記忘中的其他字段就沒有意義。
TyPeInClass 規(guī)定這個(gè)對象的類別。這是PHOMF.CAT中的記錄號(hào)碼,指出對象所屬的類別(見前對類別的討論)。
SysCatFlags 在由數(shù)20(十六進(jìn)制)所屏蔽的二進(jìn)位置于該字段中時(shí),指定這個(gè)對象是否是全局的。在本優(yōu)選實(shí)施方案中,所有其他二進(jìn)位的位置必定為0,不加使用。
Properties 規(guī)定特性的號(hào)碼,特性名稱的長度及對象特性在HPOMF.PRP中的位置。見下面HPOMF.PRP的說明中對這個(gè)字段結(jié)構(gòu)的進(jìn)一步定義。
fastprops 某些對象特性,例如名稱,因訪問頻繁,它們直接存儲(chǔ)在這個(gè)字段中而不是間接地存在特性文件中。存儲(chǔ)在這個(gè)字段中的特性稱為“快速特性”。
系統(tǒng)文件602,即HPOMF.CLS,也稱為SYSCLASS。這個(gè)系統(tǒng)文件是在系統(tǒng)中被設(shè)置的所有類別的一個(gè)目錄。它是面向記錄的。號(hào)碼為0的第一個(gè)記錄是一個(gè)包含各種特征(看上述)的標(biāo)題,被用來管理空記錄的編目。所有的其他記錄或是定義一個(gè)所設(shè)置的類別或者是空的。在本優(yōu)選實(shí)施方案中HPOMF.CLS能夠動(dòng)態(tài)的增長,但不能縮小。
HPOMF.CLS中的每個(gè)文件記錄的長度為32個(gè)字節(jié)。HPOMF.CLS文件記錄0(標(biāo)題)包含下表3中的字段。
表31FirstFreeEntry 包含HPOMF.CLS中第一個(gè)空記錄的號(hào)碼,如果沒有空記錄就為0。
Filed 包含以零終止的字符串“HPOMF.
CLS”。
Version 包含文件格式類型號(hào)碼。
1MaxRecordNumber 包含HPOMF.CLS里曾配置的最大記錄的號(hào)碼。(這個(gè)最大記錄可以是或不是空的)。
下表4為HPOMF.CLS中由于涂文件記錄以外的其他文件記錄的文件記錄字段表1FirstFreeEntry 如果這個(gè)記錄定義一個(gè)被設(shè)置的類別,即為“-1”,不然這個(gè)記錄是空的,并且這個(gè)字段即是下一個(gè)空記錄的記錄號(hào)碼。如果沒有更多的空記錄,這個(gè)字段是“0”。如果該記錄是空的那么在記錄內(nèi)所有其他字段均沒有意義。
ModuleFileName 規(guī)定與這個(gè)類別的對象有關(guān)的應(yīng)用程序的名稱,作為一個(gè)以空終止的字符串。
Properties 指明特性號(hào)碼、特性名稱的長度,及在對象特性的HPOMF.PRP中的地址。見下面HPOMF.PRP的說明,對這一個(gè)字段結(jié)構(gòu)的進(jìn)一步定義。
圖75中示出HPOMF.CAT和HPOMF.CLS之間的關(guān)系。在HPOMF.CAT內(nèi)每一個(gè)對象項(xiàng)目中,作為一個(gè)對象的標(biāo)記記錄號(hào)碼,用作與該對象有關(guān)的海量存儲(chǔ)器170中數(shù)據(jù)文件的一個(gè)標(biāo)識(shí)符650。字段“TypeInClass”用作HPOMF.CLS中的類別項(xiàng)目的一個(gè)標(biāo)識(shí)符651,以識(shí)別每個(gè)對象的類別。HPOMF.CLS中每個(gè)類別項(xiàng)目內(nèi),字段“ModuleFiledName”用作與該類別有關(guān)海量存儲(chǔ)器170中應(yīng)用程序文件的標(biāo)識(shí)符652。
圖76示出海量存儲(chǔ)器170的部分結(jié)構(gòu)。一個(gè)根目錄包含指向HPNWDATA目錄661和HPNWPROG目錄668的指針。HPNW-PROG目錄668是應(yīng)用程序文件的存儲(chǔ)位置,用箭頭669表示。HPNWDATA包含許多HPOWFddd目錄,以目錄662、663、664、665和666表示。與對象有關(guān)的數(shù)據(jù)文件存儲(chǔ)在HPOMFddd目錄中?!癏POMFddd”中的“ddd”表示一個(gè)首項(xiàng)為0的十六進(jìn)制三位數(shù)。每一個(gè)HPOMFddd目錄均有一個(gè)不同的“ddd”十六進(jìn)制數(shù)。“ddd”數(shù)指明哪一個(gè)HPOMFddd為特定對象存儲(chǔ)數(shù)據(jù)文件。一個(gè)特定對象使用的數(shù)據(jù)文件被存儲(chǔ)在“ddd”數(shù)等于該對象的標(biāo)記且能被一整數(shù)(如54)所涂的HPOMFddd目錄中。在每個(gè)HPOMFddd目錄中,文件通過標(biāo)記號(hào)碼所存儲(chǔ),例如,數(shù)據(jù)文件名稱具有××××××××.111的格式,其中“××××××××”是一個(gè)首位為0的十六進(jìn)制8位標(biāo)記,而“111”是被該應(yīng)用程序所選擇的引用文件。
系統(tǒng)文件603,即HPOMF.XRF,也稱為SySXREF。這個(gè)文件是現(xiàn)在系統(tǒng)中的所有連接的一個(gè)目錄。它是面向記錄的,但沒有標(biāo)題記錄。每一個(gè)記錄文件或是空的,或是定義了一個(gè)現(xiàn)有的連接,或是被用作前一記錄的溢出記錄,以便指明附加的視圖說明信息。包含視圖說明的記錄稱為視圖說明文件記錄。視圖說明文件記錄只能被定義了一個(gè)現(xiàn)有連接的前一記錄所識(shí)別;視圖說明文件不能被一個(gè)視圖說明文件記錄內(nèi)的內(nèi)容所識(shí)別。每次HPOMF.XRF的大小要增加16K字節(jié)。新配置的HPOMF.XRF部分以0填滿??盏幕蚨x了連接的HPOMF.XRF里的文件記錄具有下表5中的字段表5ParentTag 包含這個(gè)連接的具體對象的標(biāo)記(HPOME.CAT記錄號(hào)碼),如果這個(gè)字段是0,那么這個(gè)記錄不定義連接,而是空的。
ChildTag 包含這個(gè)連接的子體對象的標(biāo)記。
如果在這個(gè)記錄中的ParentTag是0,并且這個(gè)字段也是0,那么,在HPOMF.XRF中,在這個(gè)記錄之外沒有記錄定義連接。
RefName 包含已經(jīng)指定給連接的母體的引用名稱。如果ParentTag或ChildTag是0,那么這個(gè)字段沒有意義。否則,如果這個(gè)值最前面的三個(gè)二進(jìn)劑位是是110,那么文件中的下一個(gè)記錄就是一個(gè)視圖說明。
HPOMF.XRF中作為視圖說明文件記錄的文件記錄具有列在下表5A中如下字段。
表5ADataId 包含子體所指定的值,識(shí)別自己的部分,它通過該連接是可視的。
SnapShot 包含對象的標(biāo)記(HPOMF.CAT記錄號(hào)碼),該對象是視圖快照,或者若號(hào)碼是0,視圖就沒有快照。對快照的進(jìn)一步討論請看下文。
Misc 由下面所述的幾個(gè)二進(jìn)制位字段構(gòu)成VS_NeWDATASET 如果子體已經(jīng)告訴OMF新數(shù)據(jù)可利用,但還沒有通告母體,即置位。十六進(jìn)制數(shù)8000 0000是表示哪些二進(jìn)制位用于這個(gè)二進(jìn)位字段的一個(gè)屏蔽。
VS_NEWDATAHNNOUNCED 如果子體已經(jīng)告訴OMF向母體通告新數(shù)據(jù),但母體未激活因而未被通知到,即置位。十六進(jìn)制數(shù)4000 0000是指明哪些二進(jìn)制位用于這個(gè)二進(jìn)制位字段的一個(gè)屏蔽。
VS_SNAPSHOTOLD 如果子體已經(jīng)告訴OMF視圖快照是過時(shí)的,即置位。十六進(jìn)制數(shù)2000 0000是表示哪些二進(jìn)制位用于這個(gè)二進(jìn)制位字段的一個(gè)屏蔽。
VS_WANTMESSAGES 如果子體已經(jīng)告訴OMF,它需要處理快照過期時(shí)的視圖消息,即置位。十六進(jìn)制數(shù)1000 0000是表示哪些二進(jìn)制位用于這個(gè)二進(jìn)制位字段的屏蔽。
VS_TEXTDISKLOC 在HPOMF.PRP中的文件位置,視圖說明的32個(gè)字符的正文數(shù)據(jù)ID被放在那里。如里。如果子體沒有定義正文數(shù)據(jù)ID,那么它就包含零。文件位置的低位的五位總是零,所以就不存貯在Misc字段中。
十六進(jìn)制數(shù)OFFF FFFO是指示哪些位被用于這一位段的屏蔽。
VS_INITIALIZED 如果視圖說明已經(jīng)被初始化,即置位。如果消除,在視圖說明中的所有信息是0,十六進(jìn)制數(shù)0000 0010是表示哪些二進(jìn)制位于這個(gè)二進(jìn)制字段的一個(gè)屏蔽。
VS_RESERVED 為進(jìn)一步擴(kuò)充而保留。十六進(jìn)制數(shù)0000 0008是表示哪些二進(jìn)制位用于這二進(jìn)制字段的屏蔽。
VS_VIEWCLASS 規(guī)定子體指派給視圖的視圖類別。視圖類別定義什么視圖方法對母體是可利用的。十六進(jìn)制數(shù)0000 00007是表示哪些二進(jìn)制位用于這個(gè)二進(jìn)制字段的一個(gè)屏蔽。
例如,圖77中,對象671是一個(gè)文件夾,并有一個(gè)標(biāo)記“6”。對象671是通過連接674連接的對象672的一個(gè)母體,并是通過連接675連接的對象673的對象的一個(gè)母體。對象672有一個(gè)標(biāo)記“12”。連接674的引用名為“1”。對象673有一個(gè)標(biāo)記“19”。連接675有一個(gè)引用名“7”。引用名由母體對象檢選,并且對特定的母體對象必須是唯一的;然而其他的母體可以具有與之相同的引用名的連接,只要每一個(gè)引用名對每一個(gè)母體來說是唯一的就行。
圖79示出HPOMF.XRF603的方框圖。HPOMF.XRF包含母體和子體之間每個(gè)連接的項(xiàng)目。在HPOMF.XRF 603中,列731包含每個(gè)連接的母體的標(biāo)記。列732包含每一連接子體的標(biāo)記。列733包含每個(gè)連接的引用名。列733的頭三個(gè)二進(jìn)制位,在圖79中表示為子列734,它指明或者存在有視圖說明文件記錄(“110”)或者不存在視圖說明文件記錄(“000”),或者其間的連接是一個(gè)從全局母體到全局對象之間的連接(“100”)。
正如可以看到的,項(xiàng)目735是描述圖77中連接674的一個(gè)項(xiàng)目。那就是說,在項(xiàng)735的列731中,有母體標(biāo)記“6”。在列732中有子體標(biāo)記“12”,以及在列733中有引用名“1”。因?yàn)閷ο?71是一個(gè)文件夾,沒有視圖,所以在子列734里的三個(gè)二進(jìn)制位是“000”。
同樣,項(xiàng)目736是一個(gè)描述圖77中連接675的項(xiàng)目。那就是說,在項(xiàng)目736的列731中有母體標(biāo)記“6”。在列732中有子體標(biāo)記“19”,及列733中有引用名“7”。因?yàn)閷ο?61是一個(gè)文件夾,沒有視圖,所以在子列734里的三個(gè)二進(jìn)制位是“000”。
圖78中,對象676是文檔,并有一個(gè)標(biāo)記“17”。對象676是通過連接679連接的對象677的母體,并且是通過連接680連接的對象678的母體。對象677具有標(biāo)記“8”,連接679具有引用名“1”。對象678有一個(gè)標(biāo)記“21”。連接6680有一個(gè)引用名“3”。
圖79中,項(xiàng)目737描述圖78中的連接679。那就是說,項(xiàng)目737的列731中有母體標(biāo)記“17”。在列731中有子體標(biāo)記“8”,并在列733中有引用名“1”。對象676是文檔,并假定有一個(gè)與連接679有關(guān)的視圖,子列734里的三個(gè)二進(jìn)制位為“110”。項(xiàng)目738是一個(gè)視圖說明記錄。
同樣,項(xiàng)目739描述圖78所示的連接680。就是說,在項(xiàng)目379的列731中有母體標(biāo)記“17”。在列732中有子體標(biāo)記“21”及在列733中有引用名“3”。假定有一個(gè)與連接680有關(guān)的視圖,則子列734里的三個(gè)二進(jìn)制位為“110”,并且項(xiàng)目740是一個(gè)視圖說明記錄。
圖80中,視圖說明記錄740被表示成包括有一包括該視圖的數(shù)據(jù)識(shí)別符的字段741,一指示是否有用于該視圖快照的字段742,及一有關(guān)該視圖的其他信息的字段743。該連接的子體對象使用數(shù)據(jù)識(shí)別號(hào)碼用以決定通過該連接發(fā)送什么數(shù)據(jù)。
圖37-43示出具有視圖的一個(gè)連接的形成。如前面已經(jīng)討論的,在圖37中“Paste UP”(對象707)所用的窗口791通過對圖象“Paste UP”擊鍵兩次被打開。圖38中,用光標(biāo)781,由鼠標(biāo)器20控制,已選擇“Sample Text”的正文部分790。以逆影象顯示。表明“New Wave Offica environment”的部分是部分790。
圖39中,用光標(biāo)781從下拉菜單792中選擇“Share”選擇項(xiàng)。一旦“Share”被選擇,子體對象709(“Sample Text”)便產(chǎn)生一個(gè)數(shù)據(jù)識(shí)別號(hào)碼,該號(hào)碼對子體對象709指定正文的部分790。子體對象709還使OMF100把一個(gè)到子體對象709的連接放到記錄夾720上(子體對象709通過這里所列附錄B中的指令與OMF100進(jìn)行通信)。子體對象709還通知OMF100什么數(shù)據(jù)識(shí)別號(hào)碼和子體709與記錄夾720之間的新連接720有關(guān)。如果有一個(gè)與該連接有關(guān)的快照,子體709也將通知OMF100,是否有一個(gè)與該連接有關(guān)的快照。下面較完全地討論快照。結(jié)果,OMF100將為記錄夾720與子體對象709之間的一個(gè)連接在HPOMF.XRF603中產(chǎn)生一個(gè)項(xiàng)目。該連接的視圖說明記錄將包括由子體709傳給OMF100的數(shù)據(jù)識(shí)別號(hào)碼。
圖40中,用光標(biāo)781選擇了窗口791中的區(qū)域793。圖41中,用光標(biāo)781從下拉菜單794中選擇了“paste”選擇項(xiàng)。這時(shí),母體對象707“Paste UP”向OMF100請求一記錄夾720上的使之成為母體的連接。記錄夾720與子體709之間的視圖說明記錄為母體707和子體709之間的連接而復(fù)制。圖43中,“Sample Text”(對象709)被表示為通過連接729成為“Paste UP”(對象707)的一個(gè)子體。
圖42中,顯示的正文790是被顯示在“Paste Up”窗口791中。在實(shí)行這個(gè)的過程中,母體對象707向OMF100作一次呼叫,請求發(fā)送消息到由連接729的引用名所識(shí)別的對象。這個(gè)消息請求子體對象709把從這個(gè)連接進(jìn)入母體對象707指定的位置的數(shù)據(jù)顯示出來。OMF100從母體707取出該消息,加進(jìn)從連接729的視圖說明記錄中得到的數(shù)據(jù)識(shí)別號(hào)碼,并把該消息傳送給子體709。子體709在指定的區(qū)域里顯示該數(shù)據(jù),在這里是區(qū)域793。從母體707發(fā)送到OMF100到子體709的該消息的名稱是“DISPLAY_VIEW”,在可列的附錄B中有進(jìn)一步的描述。
另一消息“PRINT_SLAVE”也在附錄中加以描述,當(dāng)希望由打印機(jī)打印數(shù)據(jù)而不是在終端熒光屏上顯示數(shù)據(jù)時(shí),可以使用這個(gè)消息。
此外,母體707可以把消息“GET_SIZE”發(fā)送到子體對象709。在“GET-SIZE”消息中,母體對象707為連接729認(rèn)定一個(gè)引用名,并且指明顯示坐標(biāo)。OMF100從母體707取出消息GET-SIZE,加上從連接729的視圖說明記錄中得到的數(shù)據(jù)識(shí)別號(hào)碼,再把該消息傳送給子體709。子體709給母體707發(fā)回被指定的區(qū)域的位置的大小,該指定區(qū)域是子體709用于顯示數(shù)據(jù)的。當(dāng)子體709無法恰當(dāng)安排數(shù)據(jù)適應(yīng)母體707規(guī)定的區(qū)域時(shí),這就可以使母體707修改為顯示從子體709來的數(shù)據(jù)而保留的區(qū)域。
當(dāng)從一個(gè)子體對象來的數(shù)據(jù)正在被一個(gè)母體對象顯示,并且子體對象改變被顯示的數(shù)據(jù)時(shí),該子體對象對OMF100發(fā)出在此數(shù)據(jù)對象中已有一個(gè)變化的通知。例如,如前所述,在圖47中,現(xiàn)在顯示在窗口791的區(qū)域795中的是從“Star”(對象706)來的數(shù)據(jù)。并且,正如在圖48中可以看到的,“Star”(對象706)通過連接726而成為“Paste UP”(對象707)的一個(gè)子體。因?yàn)閿?shù)據(jù)正在從子體對象706傳送到母體對象707,所以連接726是一個(gè)包括視圖說明的數(shù)據(jù)。
圖49中,示出了改變子體對象706中的數(shù)據(jù)的方法。用戶把光標(biāo)781置于窗口791的區(qū)域795之上,并敲擊兩次鼠標(biāo)器20上的按扭,其結(jié)果是打開并在窗口790中顯示“Star”(對象706)。用光標(biāo)781選擇菜單窗口797中的“Ellipse”選擇項(xiàng)。就導(dǎo)致“Star”(對象706)里的數(shù)據(jù)從星形變到橢園形。如圖51所示,該結(jié)果既改變了顯示在窗口796中的數(shù)據(jù)又改變了顯示在窗口791的區(qū)域795中的數(shù)據(jù)。
子體對象706通過對OMF100作一次呼叫來完成這個(gè)變化,指出與連接726有關(guān)的數(shù)據(jù)識(shí)別號(hào)碼有關(guān)的數(shù)據(jù)已改化。OMF100檢查使用該數(shù)據(jù)識(shí)別號(hào)碼的所有連接。如果有一個(gè)連接的母體對象不是激活的,OMF100就給在HPOMF.XRF中的那個(gè)連接的VS_NEWDATANNOUNCE位置位。當(dāng)母體對象是激活的,那么該母體對象就請求新的數(shù)據(jù)。
如果母體對象是激活的,OMF100就給該母體對象發(fā)送一個(gè)新數(shù)據(jù)是可以利用的消息。OMF100將對該母體對象指出存在附加數(shù)據(jù)的連接的引用名稱。如果它需要這個(gè)顯示的新數(shù)據(jù),母體對象就給子體對象發(fā)送一個(gè)消息。在這種情況下,母體對象707是激活的,并已經(jīng)請求了新數(shù)據(jù)以便在窗口791的區(qū)域795中顯示。對視圖說明的進(jìn)一步描述可以在附錄B、C和D中找到。
本發(fā)明的優(yōu)點(diǎn)是母體對象707能夠通過OMF100與子體對象706通信,而無需母體對象707或子體對象706知道各自的身份或任何其他相互間的細(xì)節(jié)。母體對象僅僅使用連接的引用名稱來識(shí)別連接。子體對象只使用連接的數(shù)據(jù)識(shí)別號(hào)碼來識(shí)別連接。OMF100進(jìn)行全部的翻譯工作以及對所涉及的連接和對象進(jìn)行的識(shí)別。
系統(tǒng)文件604,HPOMF.PRP,也稱為SYSPROP。HPOMF.PRP包含除了包括在HPOMF.CAT中的快速對象特性以外的所有對象和類別特性。在系統(tǒng)文件601(HPOMF.CAT)及系統(tǒng)文件602(HPOMF.CLS)中的每一記錄都有一個(gè)特性字段,如前所述。每個(gè)特性字段包含如下表6中說明的字段;
表6DirDiskLoc 包含特性表的HPOMF.PRP里的位置(字節(jié)位移)。
nProps 包含特性表中的特性號(hào)碼。這是下述目錄項(xiàng)數(shù)陣列中的項(xiàng)目的號(hào)碼。
PoolSize 包含特性表中特性的所有名稱的組合長度,包括每一個(gè)名稱的零終止字節(jié)。
這是下述目錄名稱區(qū)的大小。
對于每一個(gè)對象和每一種類別,在HPOMF.PRP文件中的DirDiskLoc位置就是那個(gè)對象或那個(gè)類別的特性目錄。該目錄具有兩個(gè)主要部分項(xiàng)目陣列,以及后面跟著名稱區(qū)。在特性表中,項(xiàng)目陣列對每一種特性都有一個(gè)項(xiàng)目。每一個(gè)項(xiàng)目有如下表7的字段表7ValueLen 規(guī)定有關(guān)特性的字節(jié)長度。這可以是0。
ValueDiskLoc 包含在有關(guān)特性值的HPOMF.
PRP中的位置。如果Value-Len是零,這個(gè)字段也是零,并且沒有值存儲(chǔ)在任何地方。
CacheOffset 這個(gè)字段是在運(yùn)行時(shí)使用,而在文件中沒有意義。
緊跟著此項(xiàng)目陣列后面的是名稱區(qū)。HPOMF.PRP的這個(gè)部分包含特性表中特性的0終止名稱,并按項(xiàng)目陣列相同的次序排列。特性可以包括如題目、用戶注釋、建立的日期和時(shí)間、建立該對象的用戶等內(nèi)容。有關(guān)特性更多信息是附錄D。
HPOMF.PRP根據(jù)需要?jiǎng)討B(tài)地增長。在HPOMF.PRP的開始處有一個(gè)控制HPOMF.PRP的頭1024頁的配置的128字節(jié)的位圖(bitmap)。每一頁為32個(gè)字節(jié)長。這些頁緊跟著該位圖。位圖是一個(gè)字的陣列,它首先使用每個(gè)字的最有效位。因此位圖的第一個(gè)字的二進(jìn)制位15到0分別控制文件的0頁到15頁的配置。
當(dāng)在前面的1024頁的存儲(chǔ)不夠時(shí),就在1023頁之后給文件加進(jìn)第二個(gè)位圖。這個(gè)位圖控制著緊跟第二個(gè)位圖的第1024頁到第2047頁的配置。在需要時(shí),以同樣的方法加進(jìn)附加位圖和頁面。
每一個(gè)目錄和特性值均作為文件的單一數(shù)據(jù)塊加以存儲(chǔ),即作為全部配置在同一位圖中的連續(xù)頁面。這就產(chǎn)生目錄或值均不得超過32K字節(jié)(1024×32)長的限制。
系統(tǒng)文件605,HPOMF.INS,也稱之為SYSINISTL。HPHPOMF.INS包含一個(gè)文件表,在設(shè)置每個(gè)類別時(shí),此表即被復(fù)制到該系統(tǒng)。這個(gè)信息可以被使用,以便在當(dāng)該類別被取消時(shí)刪除這些文件。
HPOMF.INS的最前面是用作有效/變型識(shí)別符的雙字值。在本優(yōu)選實(shí)施方案中,這個(gè)雙字值必須是0101ABCD(十六進(jìn)制)才有效。在表8中,這個(gè)值按所示方式存儲(chǔ),這是由于本優(yōu)選實(shí)施方案中所采用的特定處理器即Intel公司的80286微處理機(jī)中的存儲(chǔ)規(guī)程而決定的。
緊跟著這雙字的是一系列可變長度記錄。每一被設(shè)置的類別均有一個(gè)記錄。每一個(gè)記錄的第一個(gè)字是該記錄其它部分的字節(jié)長度。后面跟著是被設(shè)置類別的零終止類別名稱。然后跟著復(fù)制到OMF目錄的文件的文件名,它們每一個(gè)均由零字節(jié)終止,并由給示文件名稱長度的一個(gè)字節(jié)先導(dǎo),包括長度字節(jié)和零結(jié)束符。如果文件名稱用一特別的符號(hào)“*”開頭,那么就認(rèn)為該文件是放置在HPWPROG目錄中。如果文件名稱用特別符號(hào)“+”開頭,那么就認(rèn)為該文件被放置在HPNWDATA目錄中。
例如,假定設(shè)置了兩種類別類別“AB”和類別“CDE”。類別“AB”導(dǎo)致安裝文件“Z”裝入到HPNWPROG目錄688,“YY”裝入到HPNWDATA目錄。類別“CDE”導(dǎo)致1個(gè)文件“×××”裝入到HPNWPROG目錄668。在這情況下,表8所示該例子的HPOMF.INS的內(nèi)容表8位移 內(nèi)容 注釋0 CD AB 01 01 文件標(biāo)題/種類檢查4 OC 00 AB記錄的長度(十進(jìn)制數(shù)12)6 41 42 00 “AB”+Null9 04 (長度字節(jié)“*Z”+Null)的長度A 2A 5A 00 “*Z”+NullD 05 (長度字節(jié)+“+YY”+Null)的長度
E 2B 59 59 00 “+YY”+Null12 OA 00 CDE記錄的長度(10,十進(jìn)制)14 43 44 45 00 “CDE”+Null18 06 (長度字節(jié)“*×××”+Null)的長度19 2A 58 58 58 00 “*×××”+Null”系統(tǒng)文件606,即HPOMF.SDF,也稱為“停止文件”。當(dāng)系統(tǒng)已經(jīng)明顯的停止時(shí)HPOMF.SDF才存在。它在系統(tǒng)啟動(dòng)時(shí)被刪除,而在系統(tǒng)停止時(shí)被創(chuàng)生。啟動(dòng)時(shí),如果這個(gè)文件不見了,OMF就認(rèn)為前一對話是非正常終止的,因而通過它的事故恢復(fù)程序盡可能地確認(rèn)和修正該系統(tǒng)文件。這些系統(tǒng)文件可以是無效的但能予告事故的狀態(tài)。這些錯(cuò)誤是無需用戶干予就能被糾正檢查到的,某些其他種類的文件一致性的錯(cuò)誤,實(shí)際上不可能是出自“原始的”系統(tǒng)事故。通常這些錯(cuò)誤是不可能糾正的,因而OMF不允許系統(tǒng)發(fā)生這種情況。
如果HPOMF.SDF出現(xiàn),它將包含一個(gè)對象表。當(dāng)系統(tǒng)處于正常停止時(shí),每一個(gè)在這時(shí)是激活的對象能請求OMF在系統(tǒng)再啟動(dòng)時(shí)重新啟動(dòng)他們。那么,對象表也就成為當(dāng)系統(tǒng)重新啟動(dòng)時(shí)要求再啟動(dòng)對象的標(biāo)記表。
HPOMF.SDF中的第一個(gè)字是標(biāo)志字。如果這個(gè)字非零,即使HPOMF.SDF存在,OMF也將執(zhí)行它的事故矯正碼。如果在結(jié)束的對話期里發(fā)生了某些嚴(yán)重的錯(cuò)誤,那么當(dāng)產(chǎn)生此文件時(shí),正常的停止即將這個(gè)標(biāo)志置位。
在第一個(gè)字之后,文件的其余部分是三字節(jié)記錄的序列。每個(gè)記錄的頭兩個(gè)字節(jié)包含欲重新存儲(chǔ)的對象的標(biāo)記。最低位字節(jié)在前。第二個(gè)字節(jié)在此優(yōu)選實(shí)施方案中沒有使用,是0。
例如,假如系統(tǒng)是在上一對話期中正常終止的,而且分別具有標(biāo)記2和7的對象已經(jīng)請求再啟動(dòng),則HPOMF.SDF的內(nèi)容就將如下表9中那樣表9位移 內(nèi)容 注釋0 00 00 表示不需要事故矯正2 02 00 需再啟動(dòng)的第一個(gè)對象的標(biāo)記。
4 00 未應(yīng)用并保留5 07 00 需再啟動(dòng)的第二個(gè)對象的標(biāo)記。
7 00 未利用并保留系統(tǒng)文件7,即HPOMFICO.NWE,是一個(gè)Micro soft Window,動(dòng)態(tài)庫存可執(zhí)行的文件,它包含一虛項(xiàng)目點(diǎn),沒有數(shù)據(jù)。MicroVsoft Windows是一個(gè)Microsoft公司(地址16011NE,36th Way,Redmond,WA 98073-9717)提供的程序。HPOMFICO.NWE也包含作為“資源”(resources)的每一個(gè)所設(shè)置類別的圖象。在運(yùn)行期間,OMF直接改變HPOMFICO.NWE,并裝載或不裝載以便從它那里得到該圖像資源。HPOMFICO.NWE的格式由Microsoft公司所提供的Microsoft Windows文件定義。
帶有視圖的正常工作(見前述視圖的討論)導(dǎo)致調(diào)用一個(gè)子體的應(yīng)用程序。如果涉及到大的應(yīng)用程序,這可能導(dǎo)致大量不必要的開銷。使用快照可免除這種開銷。
快照是一個(gè)對象,它采用被稱做動(dòng)態(tài)存取程序庫(或DAL)的獨(dú)立程序庫中的可執(zhí)行程序碼。而不用整個(gè)應(yīng)用程序的可執(zhí)行程序碼。只有與一快照相關(guān)聯(lián)的數(shù)據(jù)文件包含有欲從一子體對象送往一母體對象的數(shù)據(jù)。封裝此數(shù)據(jù)文件的代碼雖然被叫做一個(gè)動(dòng)態(tài)程序庫,但仍然存貯在目錄HPOMFPROG(目錄668中)。
例如,圖81表示母體對象501通過連接504連接到子體對象502。與連接504相關(guān)的是快照503。一旦子體對象指定了連接504的視圖說明記錄中的快照503,快照503該能夠?qū)⒆芋w對象502中的數(shù)據(jù)提供給母體501,而無需引用與子體對象502相關(guān)的應(yīng)用程序。
如圖82中所示,當(dāng)不存在有快照時(shí),子體對象502必定是激活的,以便將視圖數(shù)據(jù)502發(fā)送到母體對象501,從而使母體對象501在顯示窗口521中顯示視圖數(shù)據(jù)522。但在圖83中則表明,快照503將視圖數(shù)據(jù)522提供給母體對象501而無需子體502是激活的。實(shí)現(xiàn)快照的更詳細(xì)的細(xì)節(jié)列于附錄B、C和D中。
一個(gè)原先并非編寫來協(xié)同OMF100使用的程序可以被加以封裝而承襲許多被設(shè)計(jì)來協(xié)同OMF100層用的程序的特點(diǎn)。在HPNewWave Environment第6章程序員指南(在這里作為附錄D)中,給出完成設(shè)計(jì)封裝程序的細(xì)節(jié)。附錄E中列出了程序的一般封裝所用的程序表。在附錄F中,給出了為將一程序封裝進(jìn)入NewWave Environment而必須產(chǎn)生的文件的一些例子。
利用圖84-145來說明,被封裝的應(yīng)用程序的特點(diǎn)。
圖84是一個(gè)方框圖,說明如何封裝一個(gè)應(yīng)用程序846,以便與OMF100配合使用。由前面的討論及通過圖84的說明可以明白,為NewWave環(huán)境所寫的典型應(yīng)用程序842能與用戶483及OMF100直接對話。應(yīng)用程序842的數(shù)據(jù)文件是OMF數(shù)據(jù)文件840的一部分。當(dāng)應(yīng)用程序842中的任何一個(gè)希望訪問數(shù)據(jù)文件時(shí),他們通過OMF100進(jìn)行。
根據(jù)本發(fā)明的優(yōu)選實(shí)施方案,不必修改所封裝的應(yīng)用程序846就能將其統(tǒng)一到NewWave Environment中。經(jīng)封裝的應(yīng)用程序846可以繼續(xù)直接處理他自己的用戶數(shù)據(jù)文件849。一個(gè)封裝外殼845是OMF100和被封裝應(yīng)用程序846之間的接口。被封裝的應(yīng)用程序不知道封裝外殼845的存在,所以所封裝的應(yīng)用程序846不給封裝外殼845發(fā)送數(shù)據(jù)。然而封裝外殼845確實(shí)與被封裝的應(yīng)用程序846和用戶數(shù)據(jù)文件849進(jìn)行相互對話。
一個(gè)外殼過濾器844的作用是在用戶843與被封裝的應(yīng)用程序846之間監(jiān)控程序。對用戶843和所封裝應(yīng)用程序846之間大部分的通信,外殼過濾器僅僅進(jìn)行傳遞。但在恰當(dāng)時(shí),外殼過濾器可以截取用戶843與被封裝的應(yīng)用程序846之間的通信。一旦通通信被截取,那么外殼過濾器例如就可以把此通信傳給封裝外殼845以作進(jìn)一步處理。
從屬性上說,所寫的封裝外殼845要處理許多不同類型的應(yīng)用程序。然而,還存在一些封裝外殼845需要了解的有關(guān)每個(gè)被封裝應(yīng)用程序的信息。所以,每一個(gè)被封裝應(yīng)用程序都具有與之有關(guān)的結(jié)構(gòu)特性,封裝外殼845訪問這些結(jié)構(gòu)特性來取得封裝外殼需要知道的那個(gè)被封裝應(yīng)用程序的信息。對被封裝應(yīng)用程序846來說,封裝裝外殼845對存儲(chǔ)在結(jié)構(gòu)特性847中的信息進(jìn)行存取。
此外,利用外殼過濾器844和封裝外殼845,一些附加特性可以被增加到一個(gè)被封裝的應(yīng)用程序中。這些專門加到一個(gè)特定應(yīng)用程序的附加特性的定義可以存儲(chǔ)在由封裝外殼845訪問的一個(gè)獨(dú)立文件中。例如專用于被封裝應(yīng)用程序846特性的定義,被存儲(chǔ)在一菜單/宏定義文件848中。
圖84A示出根據(jù)本發(fā)明的優(yōu)選實(shí)施方案,一個(gè)文件結(jié)構(gòu)是如何被實(shí)現(xiàn)的例子。一個(gè)根目錄850有多個(gè)子目錄。一個(gè)子目錄851包含一系列的子目錄例如,子目錄855、856和857。每一個(gè)子目錄均包含OMF對象數(shù)據(jù)文件。在子目錄851中的文件是在NewWave數(shù)據(jù)域中的文件,那就是說,這些文件通過OMF100訪問的。子目錄852包含一系列的子目錄例如,子目錄858、859、860及861。每一個(gè)子目錄包含各種不同的被封裝應(yīng)用程序所用的封裝數(shù)據(jù)文件。子目錄852還包含第二系列子目錄,例如,子目錄865、866及867,這些子目錄的每一個(gè)包含有封裝轉(zhuǎn)換用的暫時(shí)數(shù)據(jù)文件。子目錄853包括一些文件,這些包括建立及維護(hù)NewWave環(huán)境的可執(zhí)行程序碼。子目錄854、862、863及864包含那些并非設(shè)計(jì)在NewWave環(huán)境中運(yùn)行的應(yīng)用程序的可執(zhí)行碼。
在圖84B中,示出了MS-DOS系統(tǒng)中所用文件的文件規(guī)范結(jié)構(gòu)。文件規(guī)定包括有一驅(qū)動(dòng)標(biāo)識(shí)874,一索引通路871,一文件根名稱872,和一擴(kuò)展區(qū)873。
在下面討論中,結(jié)合描繪監(jiān)視器14上的圖形,用計(jì)算機(jī)對話來說明具有被封裝的應(yīng)用程序的封裝外殼845的功能度。
在圖85中,NewWave Office的窗口中有許多圖象,其中一些代表被封裝的應(yīng)用程序的對象。在所示的對象中,“Advance-Link”、“Info、Access”、“Terminal”、“Calendar”和“Calculator”均為被封裝的應(yīng)用程序。
以用戶的觀點(diǎn)來看,可以類似于產(chǎn)生原始對象的過程來產(chǎn)生一新的被封裝對象。在圖85A中,用光標(biāo)781由下拉菜單782中選取“Create a New……”。
在此選擇之后,出現(xiàn)了對話框779,如圖86所示。在對話框779中顯示的五個(gè)對象“AdvanceWrite”、“MS_Word”、“WordPerfect”、“MS_Write”及“MS_Paint”代表了封裝的應(yīng)用程序。圖象“MS_Write”為增輝顯示,因而是被選擇的?,F(xiàn)在光標(biāo)781被用來選取標(biāo)有“OK”的區(qū)域。
一旦選擇了這個(gè)“OK”區(qū)域,對話框1101出現(xiàn),如圖87所示?!癕s_Write”的數(shù)據(jù)文件的一個(gè)缺席目錄顯示在區(qū)域1104中。此缺席目錄是“C\HPNWDOS\MSWRITE”。它相應(yīng)于圖84A中的子目錄861。此缺席目錄中的現(xiàn)有應(yīng)用程序文件列舉于框1102中。用鍵盤19可將一個(gè)文件的新名稱寫入?yún)^(qū)域1106中。圖88中,“Sample”名稱已被鍵入?yún)^(qū)域1106中。在光標(biāo)781選擇了標(biāo)有“OK”的區(qū)域之后,一個(gè)對象“Sample”顯示于圖89的“NewWave Office”窗口中,如光標(biāo)781所指。數(shù)據(jù)文件“SAMPLE.WRI”被生成并被置于目錄“C\HPNWDOS\MSWRITE”(子目錄861)中。
雖然用戶在生成一個(gè)引用被封裝的程序的對象中看不到太多區(qū)別,但OMF100和封裝外殼845都要對標(biāo)準(zhǔn)過程作各種各樣的調(diào)整。在下面對圖143流程圖的說明中,將描述生成一個(gè)對象時(shí)OMF100和封裝外殼845經(jīng)歷的處理過程。
在光標(biāo)781位于圖象“SAMPLE”中的字“SAMPLE”上時(shí),輕擊鼠標(biāo)器20上的按扭,則顯示出數(shù)據(jù)文件“SAMPLE.WRI”的目錄單元,如圖90所示。對象名稱“SAMPLE”可能不改變。在本優(yōu)選實(shí)施方案中,變更這一名稱唯一辦法是復(fù)制該對象,因此,在目錄“C\HPWDOS\MSWRITE”中構(gòu)成一新數(shù)據(jù)文件。再擊一次鼠標(biāo)器20的按扭,就使該目錄單元不再出現(xiàn),如圖91所示。如圖91所示,當(dāng)光標(biāo)781置于“SAMPLE”的圖象上,并輕擊鼠標(biāo)器20的按鍵兩次,就可以打開“SAMPLE”的應(yīng)用程序。
下面在對圖141中流程圖的說明中,進(jìn)一步描述了在打開被封裝的應(yīng)用程序的對象之前,OMF100和封裝外殼845所進(jìn)行的處理。OMF100一旦確定它可以打開被封裝的應(yīng)用程序,OMF100即發(fā)送一消息給封裝外殼845來打開與所選的被封裝應(yīng)用程序相關(guān)的對象。封裝外殼845訪問結(jié)構(gòu)特性847以取得啟動(dòng)已選擇被封裝應(yīng)用程序的指令串和參數(shù)(以及任選的一鍵入宏功能)。封裝外殼845監(jiān)控該被封裝程序的初始化過程,并使外殼過程器844去控制用戶843和被封裝應(yīng)用程序846之間的相互對話。該鍵入宏功能通過外殼過濾器844饋送給此被封裝的應(yīng)用程序。
對于那些已經(jīng)寫有菜單/宏指令的被封裝的應(yīng)用程序來說,封裝外殼845由菜單/宏定義文件848中獲得有關(guān)菜單/宏功能的信息。這一信息被保存在計(jì)算機(jī)18的存貯器中,以便使外殼過濾器844能響應(yīng)用戶調(diào)用菜單/宏功能的任一動(dòng)作。例如,它涉及用外殼過濾器844進(jìn)行截取的特定的鍵入信號(hào)序列。當(dāng)這一鍵入信號(hào)序列得到確認(rèn)時(shí),外殼過濾器844即把菜單/宏定義文件848所指定的菜單顯示出來。這時(shí),外殼過濾器844截取從鍵盤19或鼠標(biāo)器20來的所有用戶命令,直到用戶843選擇了一個(gè)菜單命令或撤消了對菜單的訪問。當(dāng)選擇了一個(gè)菜單命令時(shí),外殼過濾器844就將一存貯在菜單/宏定義文件848中的、與被選的菜單命令相關(guān)的鍵入宏功能發(fā)送到被封裝程序846。
圖92中,示出一為應(yīng)用程序“Write”打開的窗口1103?!癢rite”是Miorosoft公司提供的一種字處理程序,被設(shè)計(jì)成與Microsoft′s Windows程序配合運(yùn)行。此應(yīng)用程序名出現(xiàn)在窗口1103的標(biāo)題部分“Write”。利用鍵盤19,可如圖93所示輸入數(shù)據(jù)。如圖94中所示,用光標(biāo)781選取下拉菜單1105中的“Exit”,啟動(dòng)Exit處理過程。外殼過濾器844截取這一要求終端的消息。如圖95中所示,作為該輸出過程的一個(gè)部分,“Write”產(chǎn)生對話框1107,詢問用戶是否希望保留對該文件所作的改變。如果回答是,就對目錄“C\HPNWDOS\MSWRITE”中的數(shù)據(jù)文件“SAMPLE.WRI”作這樣的改變。
外殼過濾器844通知封裝外殼845,用戶正在結(jié)束他與被封裝的應(yīng)用程序849的對話。封裝外殼845即通報(bào)OMF100,被封裝的應(yīng)用程序正在關(guān)閉。封裝外殼845終止外殼過濾器844。根據(jù)結(jié)構(gòu)特性847中提供的信息,封裝外殼845自動(dòng)執(zhí)行如下討論的文件登記和文件轉(zhuǎn)換過程。然后封裝外殼845回到對OMF100的控制。
當(dāng)在結(jié)構(gòu)特性847中指定后,封裝外殼845自動(dòng)完成如下的文件登記。封裝外殼845記錄下其啟動(dòng)被封裝應(yīng)用程序846的系統(tǒng)時(shí)間。當(dāng)被封裝應(yīng)用程序846終結(jié)時(shí),封裝外殼845尋找缺席引用文件區(qū)的被封裝的應(yīng)用程序(即與該被封裝應(yīng)用程序相對應(yīng)的子目錄852的子目錄),并將每一文件的時(shí)間標(biāo)記與所記錄的該被封裝應(yīng)用程序的啟動(dòng)時(shí)間相比較。如果一個(gè)新文件被定位并且此文件還未為一對象所引用,則封裝外殼845就自動(dòng)生成一個(gè)與封裝外殼845類別相同的新對象。此新對象引用此新文件和封裝外殼845。該新對象的題目被指定到此新文件的文件名稱。對于所有被找到的新文件均要進(jìn)行這一處理,這就使得用戶可在封裝程序運(yùn)行期間產(chǎn)生新的文件。在應(yīng)用程序關(guān)閉時(shí),即顯示出代表剛產(chǎn)生的文件的新圖象。
此外,如果結(jié)構(gòu)特性847已經(jīng)指定的話,則在終結(jié)時(shí),就從子目錄852中代表其他被封裝類別的另外的子目錄中,尋找出帶有比所記錄的該封裝應(yīng)用程序的啟動(dòng)時(shí)間滯后的時(shí)間標(biāo)記的那些文件。然后封裝外殼845即可為這些文件產(chǎn)生合適類別的對象。在此應(yīng)用程序關(guān)閉后,這些新文件亦作為新圖象出現(xiàn)。
在圖96中,“SAMPLE”已經(jīng)關(guān)閉。
對于包含被封裝應(yīng)用程序的對象,用戶可用管理普通對象那樣的方式加以管理。例如,在圖97中,一個(gè)新的標(biāo)名為“Important Docs”的文件夾已經(jīng)被產(chǎn)生并打開。在圖97和98中,光標(biāo)781將對象“SAMPLE”移至為文件夾“Important Docs”打開的窗口1107。圖99中,對象“SAMPLE”處于窗口1107之中。
如圖100所示,將光標(biāo)781置于名稱“SAMPLE”上,并輕擊鼠標(biāo)器20上的按扭,導(dǎo)致出現(xiàn)整個(gè)名稱“C\HPNWDOS\MSWRITE\SAMPLE”。數(shù)據(jù)文件“SAMPLE.WRI”在目錄“C\HPNWDOS\MSWRITE”中的實(shí)際位置并不改變,盡管對象“SAMPLE”已經(jīng)從“NewWave Office”移至文件夾“Important Docs”。
同樣,用戶可以用完成正常對象的“Cut”、“Paste”、“Share”及“Copy”指令同樣的方式來完成被封裝應(yīng)用程序的“Cut”、“Paste”、“Share”和“Copy”指令。圖101中,已選擇對象“SAMPLE”。光標(biāo)781由下拉菜單1109中選擇指令“Cut”。結(jié)果,如圖102可見,對象“SAMPLE”被從文件夾“Important Docs”中“刪去”,因而就不再出現(xiàn)于窗口1107中。圖102中,光標(biāo)781還從下拉菜單783中選擇了命令“Paste”。結(jié)果如圖103所示,對象“SAMPLE”從文件夾“Important Docs”移到“NewWave Office”。再次將光標(biāo)置于名稱“SAMPLE”上,并輕擊鼠標(biāo)器20上的按扭,結(jié)果出現(xiàn)全名“C\HPNWDOS\MSWRITE\SAMPLE”。數(shù)據(jù)文件“SAMPLE.WRI”在目錄“C\HPNWDOS\MSWRITE中的實(shí)際位置還是不變。
在圖104中,對象“SAMPLE”表示為增輝的,因而是被選擇。用光標(biāo)781選擇下拉菜單783中的命令“Share”。圖105中,選擇了下拉菜單1109中的命令“Paste”。其結(jié)果(示于圖106)是對象“SAMPLE”被共享,在窗口“New-Wave Office”和窗口1107中都出現(xiàn)。
圖107中,“NewWave Office”中的對象“SAMPLE”被增輝顯示因而被選擇。用光標(biāo)781選擇下拉菜單783中的命令“Copy”。圖108中,用光標(biāo)781選擇下拉菜單783中的命令“Paste”。結(jié)果如圖109表示,在“NewWave Office”中出現(xiàn)了“Copy ofSAMPLE”。此時(shí),對象“Copy ofSAMPLE”的所有文件均被作為原始對象存貯在子目錄851的多個(gè)子目錄中的一個(gè)之中。沒有新文件放置在子目錄851中,即,子目錄“C8\HPNWDOS\MSWRITE”中。
當(dāng)把光標(biāo)781置于“Copy ofSAMPLE”上并兩次輕擊鼠標(biāo)器20上的按扭而把對象“Copy ofSAMPLE”打開時(shí),OMF100調(diào)用封裝外殼845。封裝外殼845檢查是否有一“被復(fù)制的對象”標(biāo)志被置位。如果此被復(fù)制對象標(biāo)志被置位,這就是向OMF指出用戶試圖安打開一“被復(fù)制的對象”,這個(gè)對象引用一已復(fù)制的被封裝應(yīng)用程序的數(shù)據(jù),而且對象的數(shù)據(jù)文件還未被存放進(jìn)子目錄851的一個(gè)子目錄中,也未被轉(zhuǎn)移到該被封裝應(yīng)用程序能加以利用的子目錄852中的一個(gè)子目錄中。在這種情況下,因?yàn)橛脩羝髨D打開一“被復(fù)制的對象”,所以封裝外殼845就使對話框1101出現(xiàn)敦促用戶給一個(gè)新的名稱,如圖111所示。由圖88與圖111的對比中可以看出,文件SAMPLE.WRI已加到框1102之中。這發(fā)生在對象“SAMPLE”產(chǎn)生的時(shí)候。如圖112所看到的,用戶已通過鍵盤為對象“Copy ofSAMPLE”輸入了新名稱“MYDOC2”。在用光標(biāo)781選擇了圖112中的“OK”區(qū)域之后封裝外殼845將數(shù)據(jù)文件由其在子目錄851的一個(gè)子目錄中的存貯地點(diǎn)(在此它正式地駐存在OMF數(shù)據(jù)文件存貯區(qū)內(nèi))轉(zhuǎn)移到子目錄861中的存放地點(diǎn)中。然后,封裝外殼845啟動(dòng)應(yīng)用程序“Write”并給予“Write”一個(gè)文件名“MYDOC2”?!癢rite”打開“MYDOC2”。“MYDOC2”的內(nèi)容是對象“SAMPLE”數(shù)據(jù)的復(fù)制,可在圖113的窗口1113中看到。當(dāng)對象“MYDOC2”關(guān)閉時(shí),“NewWave Office”中可看到“MYDOC2”的圖象,如圖114中光標(biāo)781所指。
如圖115所示,將光標(biāo)781置于名稱“MYDOC2”之上,并敲擊鼠標(biāo)器20上的一個(gè)按扭,導(dǎo)致全名“C\HPNWDOS MSWRITE\MYDOC2”出現(xiàn)。數(shù)據(jù)文件“MYDOC2”的位置在目錄“C\HPNWDOS\MSWRITE”中。
如圖116所示,復(fù)制“MYDOC2”的簡化方法是把光標(biāo)781置于“MYDOC2”之上,在按下鼠標(biāo)器20上的一個(gè)按扭把光標(biāo)781引到另一個(gè)位置的同時(shí),按下鍵盤上的“Ctrl”鍵并保持之。在這個(gè)操作期間,“MYDOC2”的圖象保持增強(qiáng)的黑色,而不是如“移動(dòng)”或“打開”時(shí)的灰色。其結(jié)果(如圖117所示)是在“New-Wave Offica”上顯示“Copy ofMYDOC2”。
圖118中,已經(jīng)選擇了對象“MYDOC2”及“Copy ofMYDOC2”。這些項(xiàng)目可以通過在下拉菜單783中選擇指令“Throw Away”從系統(tǒng)中移出。
圖119中,用光標(biāo)781選擇下拉菜單1117中的指令“Destroy Allitems”。如圖120所示,其結(jié)果為對象“MYDOC2”及“Copy ofMYDOC2”的刪除。在“MYDOC2”的情況下,封裝外殼刪除用戶文件區(qū)域中的文件。
圖121及122包含一個(gè)說明封裝外殼845在現(xiàn)行應(yīng)用程序關(guān)閉后所采取的步驟的流程圖。封裝外殼845的執(zhí)行的程序(即流程圖所描述的)在現(xiàn)行應(yīng)用程序的關(guān)閉時(shí)被輸入,如步驟950所示。
在步驟951中,一個(gè)文件HPOMF.DOS被訪問。HPOMF.DOS是一個(gè)被封裝外殼845所訪問及保持的文件,用以跟蹤MS-DOS文件。它提供將OMF對象映射到被封裝文件所必要的信息。在對圖144及145的討論中進(jìn)一步說明了HPOMF.DOS。使用HPOMF.DOS封裝外殼845獲得特性“PROP-ENCAPDATADIR”特性“PROP-ENCAPDATADIR”是一個(gè)指示缺席目錄的類別特性,該目錄里放置有屬于該類別的特定應(yīng)用程序的DOS文件。步驟952開始一個(gè)循環(huán),在此循環(huán)中,檢查“PROP-ENCAPDA-TADIR”所指示的缺席目錄中的每一個(gè)文件。
所述循環(huán)的第一次運(yùn)行,于步驟953和步驟954中執(zhí)行,此時(shí)檢查缺席目錄中的一個(gè)文件的時(shí)間/日期標(biāo)記。如果文件的時(shí)間日期標(biāo)記比應(yīng)用程序被打開的時(shí)間/日期標(biāo)記滯后,那么就認(rèn)為該文件或是新的或是被修改了。如果該文件是新的或修改了,在步驟955中,就獲得文件名稱的根(看圖84B)。缺席目錄中與該文件具有相同名稱的所有文件認(rèn)為是該文件的文件組的一部分。
在步驟956中,使用文件HPOMF.DOS確定這個(gè)文件是否連接到一個(gè)對象。如果不是,則在步驟957中產(chǎn)生現(xiàn)行應(yīng)用程序類別的一個(gè)新對象,并連接到該文件的文件組。在步驟958中,對該文件組將一個(gè)新條目加到HPOMF.DOS。(看圖145)。
如果文件已經(jīng)連接到一個(gè)對象,在步驟959中,確定對象是不是激活的。如果該文件是激活的,在步驟960中,這個(gè)對象就送出一個(gè)表明該文件已經(jīng)變化的信息。
一旦以步驟952開始的循環(huán)完成,現(xiàn)行層用程序的類別特性“PROP-EXPORTEDENCAP”即在步驟961中被檢查。如果對于現(xiàn)行應(yīng)用程序,特性“PROP-EXPORTEDENCAP”存在,它就包含一個(gè)被封裝應(yīng)用程序的表而不是該現(xiàn)行應(yīng)用程序的類別的表。列出這些應(yīng)用程序的目的是對由每個(gè)封裝應(yīng)用程序存儲(chǔ)DOS文件的缺席目錄加以檢查。
步驟962開始一個(gè)循環(huán),對列進(jìn)“PROP-EXPORTED-ENCAP”中每個(gè)被封裝應(yīng)用程序的缺席目錄進(jìn)行檢查。該循環(huán)的第一次操作在步驟963執(zhí)行,訪問HPOMF.DOS文件以獲得對每一個(gè)被封裝應(yīng)用程序的缺席目錄的識(shí)別。它包括在該被封裝應(yīng)用程序的類別特性“PROP-ENCAPDATADIR”中。
一旦對一個(gè)特定的被封裝應(yīng)用程序獲得類別特性“PROP-ENCAPDATADIR”,另一個(gè)循環(huán)就從步驟964開始進(jìn)入。在這個(gè)循環(huán)中,為此特定被封裝應(yīng)用程序的“PROP-ENCAPDATADIR”指定的缺席目錄中的每一個(gè)文件將受到檢查。
此循環(huán)的最先操作在步驟965和966中執(zhí)行,對缺席目錄里的一個(gè)文件的時(shí)間/日期標(biāo)記進(jìn)行檢查。如果該文件的時(shí)間日期標(biāo)記比被打開的應(yīng)用程席時(shí)間/日期標(biāo)記滯后,就認(rèn)為該文件是新的或是修改過的。
如果該文件是新的或是修改過的,在步驟967中,得到該文件名稱的根(看圖84B)。缺席目錄里的所有與該文件名稱相同的文件均被看作是該文件的文件組的一部分。在步驟968中用文件HPOMF.DOS確定該文件是否連接到一個(gè)對象。如果沒有,則在步驟969中,產(chǎn)生現(xiàn)行應(yīng)用程序類別的一個(gè)新對象,并連接到該文件的文件組。在步驟970中,為此文件組將一個(gè)新條目加到HPOMF.DOS(看圖145)。
如果文件已經(jīng)連接到一個(gè)對象,在步驟971中,確定該對象是不是激活的。如果該文件是激活的,在步驟972中,向該對象發(fā)送一個(gè)表示該文件已經(jīng)變化的信息。
一旦從步驟962開始的循環(huán)完成,在步驟974中,對類別特性“PROP-EXPORTEDNW”進(jìn)行檢查。如果特性“PROP-EXPORTEDNW”對現(xiàn)行的應(yīng)用程序存在,它即包含真NewWave應(yīng)用程序的類別表,這個(gè)類別表將現(xiàn)行應(yīng)用程序產(chǎn)生的文件轉(zhuǎn)變成能由NewWave應(yīng)用程序使用的文件。
步驟977開始一個(gè)循環(huán),在這循環(huán)中,檢查列在“PROP-EXPORTEDNW”中的每一個(gè)NewWave應(yīng)用程序的一個(gè)變更目錄。在步驟977中執(zhí)行的此循環(huán)的第一次操作中,訪問HPOMF.DOS文件以獲得現(xiàn)行轉(zhuǎn)換目錄中的文件目錄。
一旦為一特定的NewWave應(yīng)用程序獲得一個(gè)變換目錄的文件表,就在步驟978開始另一循環(huán)。在這一循環(huán)中,對該轉(zhuǎn)換目錄中的每一文件進(jìn)行檢查。
此循環(huán)的第一次操作在步驟979和步驟980中完成,檢查該轉(zhuǎn)變目錄中一個(gè)文件的時(shí)間/日期標(biāo)記。如文件的時(shí)間日期標(biāo)記遲于應(yīng)用程序打開的時(shí)間/日期標(biāo)記,就認(rèn)為該文件是新的或是修改過的。
如果文件是新的或是修改過的,在步驟981中,就產(chǎn)生了一個(gè)引用該文件的新對象,屬NewWave應(yīng)用程序類別。步驟982中,封裝外殼845激活了新產(chǎn)生的對象,并給該對象發(fā)送一個(gè)帶有該文件名稱的“Convert”信息。
步驟983中,封裝外殼845檢查轉(zhuǎn)換是否成功。如果轉(zhuǎn)換不成功,步驟984中,封裝外殼就對用戶顯示一個(gè)帶有暗示性的警告消息,即未轉(zhuǎn)換的文件依然存在于轉(zhuǎn)換目錄中。如果轉(zhuǎn)換成功,在步驟985中,封裝外殼845從轉(zhuǎn)換目錄中刪除該文件。
一旦所有的轉(zhuǎn)換均完成了,就在步驟975中關(guān)閉封裝外殼845。下面的討論指出,上述的一個(gè)應(yīng)用程序的關(guān)閉是如何顯示給用戶的。
在一個(gè)應(yīng)用程序中可以產(chǎn)生一個(gè)文件的復(fù)制件。圖123中,對象“SALPLE”已被打開,而應(yīng)用程序“Write”正在運(yùn)行,在窗口1103中顯示文件“C\HPNWDOS\MSWRITE\SAMPLE.WRI”中的數(shù)據(jù)。用光標(biāo)781,從下拉菜單1105中去選擇指令“Save AS”。圖124中,缺席目錄中一個(gè)文件名稱被鍵入對話框1121的區(qū)域1120中。在用光標(biāo)781選擇了標(biāo)有“OK”的區(qū)域以后,一個(gè)新文件就制成了。然而,這個(gè)文件沒有一個(gè)相關(guān)的對象,因?yàn)镺MF100沒有監(jiān)控此新文件的產(chǎn)生。所以,在圖125中,不出現(xiàn)新對象。用光標(biāo)781從下拉菜單1105中選擇指令“Exit”以后,窗口1103被關(guān)閉。如上所述,終止時(shí),封裝外殼845為被封裝應(yīng)用程序搜尋缺席引用文件區(qū)域(這種情況是子目錄861)并將每一文件的時(shí)間標(biāo)記與被記錄的被封裝應(yīng)用程序啟動(dòng)時(shí)間相比較。如果找到一個(gè)新文件,而且這個(gè)文件還沒有被一個(gè)對象所引用,封裝外殼845就自動(dòng)產(chǎn)生一個(gè)與封裝外殼845類別相同的新對象。在這種情況下找到對象“NEWDOC”(所產(chǎn)生的一個(gè)對象),并且有著名稱“NEWDOC”的一張圖像顯示在“NewWave Office”上,如圖126,由光標(biāo)781所指。
圖127中,對象“SAMPLE”已在窗口1103中打開。在保存此文件的過程中檢查窗口1121中的一個(gè)框1122。這就使該文件以MS Word格式保存下來。正如在區(qū)域1120中所看到,該文件是被保存在目錄“C\HPNWDOS\MSWORD”而不是“C\HPNWDOS\MSWRITE”中。如上所述,如果結(jié)構(gòu)特性847已經(jīng)指明,那么在結(jié)束時(shí),由子目錄852內(nèi)代表其他被封裝類別的子目錄中可以尋找其時(shí)間標(biāo)記遲于該封裝應(yīng)用程序的所記錄的啟動(dòng)時(shí)間的文件。然后封裝外殼845即可為這些文件產(chǎn)生適當(dāng)類別的對象。代表這些新文件的對象在該應(yīng)用程序被關(guān)閉時(shí)即具有與之相關(guān)的新圖象。
在現(xiàn)在的情況下,對目錄“C\HPNWDOS\MSWORD”(子目錄860)和“C\HPNWDOS\MSWRITE”(子目錄861)進(jìn)行搜索,并找到在目錄“C\HPNWDOS\MS_WORD”中SAMPLE的一份新復(fù)制件。產(chǎn)生了“MSWORD”類別的一個(gè)新對象,并在“NewWave Office”的窗口中顯示出名為“SAMPLE”的圖像,如圖128中光標(biāo)781所指。該圖象的輪廓表明新對象“SAMPLE”是與“MSWord”的對象類別有關(guān)的而不是與“MSWrite”有關(guān)的。
圖129中,用光標(biāo)781選擇下拉菜單782中的指令“Create a New”。圖130中,把名稱“DEMODOC2”鍵入到窗口1112中的區(qū)域1124中,圖象“AdvanceWrite”已增輝。如圖131所示,其結(jié)果是產(chǎn)生了一個(gè)對象“DEMODOCl”如光標(biāo)781所指。圖132中,示出了在目錄C“C\HPNWDOS\ADVWrite”中出現(xiàn)的“DEMODOCl”。使光標(biāo)781指向圖象“DEMODOCl”并敲擊兩次鼠標(biāo)器20上的一個(gè)按扭,如圖133所擇,就導(dǎo)致圖133中“AdvanceWrite”的打開。
圖134示出應(yīng)用程序“AdvanceWrite”。因?yàn)椤癆dvanceWrite”不是一個(gè)為在“Windows”環(huán)境下工作所編寫的程序,所以“AdvanceWrite”占據(jù)了整個(gè)熒光屏。圖135中,使用鍵盤,已把正文加到熒光屏上,如圖134所示。
圖136中,壓下鍵盤19上的“ALT”鍵,啟動(dòng)菜單/宏設(shè)備。在辨明這個(gè)鍵入信號(hào)之后,外殼過濾器844顯示一個(gè)Title帶128和菜單帶126。用光標(biāo)781選擇下拉菜單1124中的指令“Convert to NewWave Document”。在這一選擇之后,外殼過濾器844給應(yīng)用程序“AdvanceWrite”發(fā)送相關(guān)的鍵入宏功能信號(hào)。這一鍵入宏功能命令“AdVancdWrite”以在一專用轉(zhuǎn)換子目錄中作轉(zhuǎn)換所要求的格式保存現(xiàn)行文件,然后命令“AdvanceWrite”退出。外殼過濾器844通知封裝外殼845應(yīng)用程序“AdvanceWrite”結(jié)束。根據(jù)結(jié)構(gòu)特性,封裝外殼845尋找任一新文件的轉(zhuǎn)換子目錄。封裝外殼845產(chǎn)生一個(gè)轉(zhuǎn)換對象它所引用的轉(zhuǎn)換應(yīng)用程序能執(zhí)行轉(zhuǎn)換。此轉(zhuǎn)換應(yīng)用程序在結(jié)構(gòu)特性847中加以識(shí)別。一旦產(chǎn)生了轉(zhuǎn)換對象,封裝外殼845即給此轉(zhuǎn)換對象發(fā)送欲進(jìn)行轉(zhuǎn)換文件的標(biāo)記和一個(gè)執(zhí)行轉(zhuǎn)換的命令。然后,已經(jīng)轉(zhuǎn)換的數(shù)據(jù)文件被存儲(chǔ)作為NewWave對象的部分,并刪除轉(zhuǎn)換子目錄中的中間轉(zhuǎn)換文件。
其結(jié)果如圖137所示,是一份“DEMODOCl”的復(fù)制件,如光標(biāo)781所指?!癉EMODOCl”是一個(gè)NewWave DOCu-ment,因此,可以象系統(tǒng)中的任何其他對象一樣加以處理。對“DEMODOCl”的復(fù)制件的標(biāo)題觸擊一下,表明沒有列出任何目錄。如圖139所示,對象的名稱已變成由光標(biāo)781所指的“NW Demo DOCument”。因?yàn)樵搶ο笫且粋€(gè)NewWave DOCument,所以作這一名稱變更是可行的。圖140中,已經(jīng)閉合了對象“NW Demo DOCument”的名稱帶。
附錄G中,給出了實(shí)現(xiàn)“Windowlike”的指令的編碼的舉例,此指令是被加到通常不是在“Windows”環(huán)境中工作的程序上的。
圖141是表示按照本發(fā)明的優(yōu)選實(shí)施方案,當(dāng)打開一個(gè)對象時(shí),OMF100和封裝外殼845所經(jīng)歷過程的流程圖。
步驟1140中,一個(gè)用戶企圖打開一個(gè)對象。步驟1144中,封裝外殼845檢查該對象是否是DOS引用模式。如果是,在步驟1142中就激活該文件。如果不是,就在對話框1146中顯示給用戶,向用戶詢問文件名稱。用戶可以用光標(biāo)781刪掉這一事務(wù),而在步驟1148中封裝外殼845即返回,不采取任何動(dòng)作。當(dāng)用戶選擇一個(gè)名稱時(shí),在步驟1150中,封裝外殼845檢查被選擇的名稱是否是一個(gè)有效的文件名稱。如果是一個(gè)無效的文件名稱,就經(jīng)對話框1152通知用戶,并由對話框1146要求用戶擇另一個(gè)文件名稱。
如果該文件名稱是有效的,封裝外殼845就檢查是否存在該文件的文件說明。如果不存在文件說明,在步驟1158中,封裝外殼845就決定是否能產(chǎn)生文件說明。如果能,就產(chǎn)生該文件說明,并且在步驟1168中封裝外殼845返回。如果不能,就由對話框1156通知用戶,通過對話框1146要求用戶選擇另一個(gè)文件名稱。
如果文件說明確定存在,在步驟1154中,封裝外殼845就決定該文件名稱是否登記到同樣的類別。如果已登記到,則由對話框1164通知用戶,并由對話框1146請求用戶選擇另一個(gè)文件名稱。
如果,相同名稱的文件沒有登記到相同類別中,在步驟1162中,封裝外殼845就決定該文件名稱是否登記到另一個(gè)類別。如果登記到另一類別,就由對話框1160通知用戶,并由對話框1146請求用戶選擇另一個(gè)文件名稱。
如果該文件名稱沒有登記到另一個(gè)類別,在步驟1172中,封裝外殼845就決定是否存在該文件的鍵文件(Keyfile)。如果不存在對話框1170就通知用戶,該文件說明正在被其他的文件所使用,并由對話框1146請求用戶選擇另一個(gè)文件名稱。如果存在,對話框1174就通知用戶已經(jīng)存在該文件,并由對話框1146請求用戶選擇另一文件名稱。
圖142表明,當(dāng)在步驟1142中激活了該文件時(shí),封裝外殼845所采取的步驟。在步驟880中,確定打開該文件對象所采取的方法。如果采用了打開該文件的通常方法(例如把光標(biāo)781置于該文件的圖像之上,并敲擊兩次鼠標(biāo)器20上的一個(gè)按扭)那么在步驟881中就獲得一缺席類別特性組。如果打開該文件使用的是其他方法(例如把光標(biāo)781置于該文件的圖像之上,壓住鍵盤19上的“SHIFT”鍵并壓鼠標(biāo)器20上的一個(gè)按扭)那么在步驟882中就獲得其他的類別特性能組。
步驟883,封裝外殼845獲得該文件的對象特性。步驟884中,封裝外殼845為要被加到應(yīng)用程序。并被外殼過濾器844監(jiān)視的菜單和宏功能作準(zhǔn)備。根據(jù)編寫應(yīng)用程序是否在“Windows”環(huán)境中工作,外殼過濾器對該應(yīng)用程序采取不同的監(jiān)視手段。所以,在步驟885中,封裝外殼845決定被打開的應(yīng)用程序是否是一個(gè)“Windows”應(yīng)用程序。如果是,則在步驟887中獲得一張激活窗口表。這對外殼過濾器844是有用的信息息,當(dāng)此信息產(chǎn)生的時(shí)候,它就要去截取發(fā)往現(xiàn)有文件的最新被打開的窗口的信息。如果被打開的應(yīng)用程序不是一個(gè)“Windows”應(yīng)用程序,在步驟886中就做好外殼過濾器844截取鍵入信息的準(zhǔn)備。
在步驟888中封裝外殼845使該文件圖象顯示灰色,給用戶指明該文件已被打開。在步驟889中,該文件的應(yīng)用程序啟動(dòng)。步驟890中,根據(jù)該文件的應(yīng)用程序是否是一個(gè)“Windows應(yīng)用程序,封裝外殼再次轉(zhuǎn)移。如果該應(yīng)用程序是一個(gè)“Windows”應(yīng)用程序,則在步驟892中,外殼過濾器844準(zhǔn)備截取送往包含“Windows”應(yīng)用程序在內(nèi)的窗口的信息。如應(yīng)用程序不是一個(gè)“Windows”應(yīng)用程序,在步驟891中,外殼過濾器844準(zhǔn)備截取用戶在鍵盤19上鍵入的信息及在鼠標(biāo)器上的操作信息。
圖143是表示根據(jù)本發(fā)明優(yōu)選實(shí)施方案產(chǎn)生一個(gè)對象時(shí),OMF100和封裝外殼845所經(jīng)歷過程的流程圖。
在步驟1180,用戶企圖產(chǎn)生一個(gè)新的對象。由一個(gè)對話框詢問用戶,以確定它是否想產(chǎn)生一個(gè)新文件。如果該用戶作出肯定的反應(yīng),封裝外殼845就在步驟1184中確定該用戶是否已指出新文件名稱。如果沒有,就由對話框1186要求用戶去選擇一個(gè)文件名稱。在對話框1186,一個(gè)用戶可以請求刪除產(chǎn)生對話框1182的企圖。
一旦選擇了一個(gè)名稱,在步驟1188中,封裝外殼845就檢查被選擇的名稱是否是一個(gè)有效的文件名稱。如果是一個(gè)無效的文件名稱,便使用對話框1190通知用戶,并通過對話框1186請求用戶去選擇另一個(gè)文件名稱。
如果文件名稱是有效的,封裝外殼845檢查該文件是否存在一個(gè)文件說明。如果文件說明不存在,則在步驟1198中,封裝外殼845就決定是否能產(chǎn)生文件說明。如果能產(chǎn)生,就產(chǎn)生該文件說明,并且在步驟1202中,封裝外殼845返回。如果不能產(chǎn)生該文件說明,則由對話框1200通知用戶不能產(chǎn)生,并且對話框1186請求用戶選擇另一個(gè)文件名稱。
如果文件說明確實(shí)存在,在步驟1194中,封裝外殼845就決定該文件名稱是否被登記到同一類別。如果是這樣,則由對話框1196通知用戶并由對話框1196詢問用戶是否想產(chǎn)生該現(xiàn)有文件的共享。如果是這樣,則在步驟1216中產(chǎn)生一個(gè)共享,如果不是這樣,則由對話框1186請求用戶選擇另一個(gè)文件名稱。
如果沒有相同的名稱的文件登記到相同的類別,在步驟1206中,封裝外殼845就決定該文件名稱是否登記到另一種類別。如果是這樣,就由對話框1204通知用戶,并由對話框1204請求用戶選擇另一個(gè)文件名稱。
如果該文件名稱沒有登記到另一類別,則在步驟1208中,封裝外殼845決定該現(xiàn)有文件是否存在鍵文件。如果不存在,即由對話框1210通知用戶該鍵文件消失但其他的文件存在,并由對話框1186請求用戶選擇另一個(gè)文件名稱。如果此鍵文件名稱存在,就由對話框1218通知該用戶該文件已經(jīng)存在,并要求用戶確認(rèn)這些現(xiàn)有文件就是要加以登記的。如果用戶確認(rèn)了,就在步驟1214產(chǎn)生該對象及引用文件。否則,即由對話框1186要求用戶選擇另一文件名。
當(dāng)OMF100向一對象發(fā)送一個(gè)打開的消息時(shí),此打開消息包含一說明在用戶給OMF100產(chǎn)生一打開命令時(shí)用戶是否按壓Shift鍵的另一類別參數(shù),就是說,在用戶將光標(biāo)781置于一欲打開的對象上時(shí),保持壓下鍵盤上標(biāo)有“Shift”的鍵的同時(shí)敲擊兩次鼠標(biāo)器20上的一按鍵,就發(fā)送一特定的參數(shù)。當(dāng)封裝外殼845由OMF100接收到一替換類別參數(shù)時(shí),封裝外殼845有可能通過存放在結(jié)構(gòu)特性847中的參數(shù)被組構(gòu)成來打開一替換應(yīng)用程序,而不是打開被封裝的程序846(在這種情況下被封裝程序846是缺席應(yīng)用程序)。
上述的在打開一對象期間,利用一缺席類別和一替換類別,可使用戶能指明打開兩種能處理同樣數(shù)據(jù)文件型式的完全不同的應(yīng)用程序。換句話說,利用一缺席類別和一替換類別可要求封裝外殼打開同一被封裝的應(yīng)用程序,但要采用指明要如何利用該數(shù)據(jù)文件的不同參數(shù)來打開它。例如,用戶能夠來指明他是要編輯還是瀏覽一文件。同樣,用戶這樣也能夠指明他是要編輯還是匯編存貯在一數(shù)據(jù)文件中的計(jì)算機(jī)程序。
圖144中,示出文件HPOMF.DOS內(nèi)的不同記錄形式。標(biāo)題記錄990包含一類號(hào)及其他標(biāo)識(shí)信息。HPOMF.DOS中只有一個(gè)標(biāo)題記錄。它為256字節(jié)長。
目錄記錄991識(shí)別包含有被封裝數(shù)據(jù)文件的目錄。包含有被封裝數(shù)據(jù)文件的每個(gè)MS_DOS目錄中都有一個(gè)目錄記錄。第一個(gè)目錄記錄跟在標(biāo)題記錄990之后。
目錄記錄991包含有三個(gè)字段。字段993(IprecNext-DIr)包含HPOMF.DOS中下一目錄記錄的一個(gè)32位指針(相對文件起點(diǎn)的位移,字節(jié)數(shù))。在最后一目錄記錄中,這一字段被置為0。字段994(IprecFile)是該目錄的第一文件記錄的32位指針(相對該文件起點(diǎn)的位移,字節(jié)數(shù))。字段995(SZDirec-tory)為一作為目錄名稱的零終止的字符串,包括驅(qū)動(dòng)說明。
文件記錄992識(shí)別被封裝的數(shù)據(jù)文件。每一被封裝的數(shù)據(jù)文件都有一個(gè)文件記錄。每一目錄記錄均指向該目錄內(nèi)的第一文件記錄。
文件記錄992包含5個(gè)字段。字段996(IprceNext-File)為這一目錄的下一文件記錄的一個(gè)32位指針(相對文件起點(diǎn)的位移,字節(jié)數(shù))。如果它是此目錄中的最后的文件,字段996就是0。
字段997(bDeleted)是一個(gè)指示此文件隨后是否被消除的16位布爾(邏輯)值。當(dāng)此文件記錄產(chǎn)生時(shí),字段997開始被置為假值。當(dāng)此文件消除時(shí),此文件記錄被留在原處(因?yàn)樾阅苌系脑?,而字段997被置為真值,以指明該條目不再有效。字段997被置為“真”值的文件記錄能為其他文件再利用。
字段998(SZFileName)包括一零終止的字符串,它是被封裝數(shù)據(jù)文件組的根文件的名稱(見圖84B)。
字段999(dwObject)為一指示與這一被封裝文件有關(guān)的對象的NewWave對象的識(shí)別符(參數(shù)范圍名稱)的32位值。
字段1000(Flag)為一包含與此被封裝數(shù)據(jù)文件有關(guān)的其他狀態(tài)信息的8位的字段。
圖145表示文件HPOMF.DOS的邏輯結(jié)構(gòu)。標(biāo)題記錄991后跟目錄記錄991。在字段“IprecNextDir”中目錄記錄991包含一指向目錄記錄1006的指針。在字段“IPrecNextDir”中,目錄記錄1006包含一指向目錄1009的指針。等等。
目錄記錄991還在字段“IPrecFile”包含一指向文件記錄992的指針。文件記錄992在字段“IPrecNextFile”中包含一指向文件記錄1004的指針。文件記錄1004在字段“IprecNextFile”中包含一指向文件記錄1005的指針。同樣,目錄記錄1006在字段“IprecFile”中還包含一指向文件記錄1007的指針。文件記錄1007在字段“IPrecNext-File”中包含一指向文件記錄1008的指針。
附錄A是一OMF100中主數(shù)據(jù)結(jié)構(gòu)的表。
附錄B為在本發(fā)明的優(yōu)選實(shí)施方案中OMF接口599所理解的功能的說明。
附錄C(HP NewWave EnvironmentProSramDesign Example)列舉了如何能實(shí)現(xiàn)本發(fā)明優(yōu)選實(shí)施方案的例子,其中包括有關(guān)OMF100是怎樣使得數(shù)據(jù)能在監(jiān)視器14上的顯示窗口之間被觀察的細(xì)節(jié)。
附錄D(Programmer's Guide)給予了對本發(fā)明優(yōu)選實(shí)施方案的進(jìn)一步敘述。
附錄E為給出對程序進(jìn)行一般封裝的一程序的編排。
附錄F列舉了將一程序封裝進(jìn)NewWave Environment所需生成的文件的例子。
附錄G列舉了為實(shí)現(xiàn)被加入到通常并非是在一“Windows”環(huán)境中運(yùn)行的程序的“Windowlike”命令的編碼的例子。
權(quán)利要求
1.計(jì)算機(jī)系統(tǒng)具有一管理多個(gè)第一對象的對象管理設(shè)備,其中,每一對象都引用一設(shè)計(jì)來與該對象管理設(shè)備協(xié)同運(yùn)行的應(yīng)用程序,以利于將并非設(shè)計(jì)成與該對象管理設(shè)備協(xié)同運(yùn)行的第一應(yīng)用程序容納進(jìn)此計(jì)算機(jī)系統(tǒng)的封裝系統(tǒng),此封裝系統(tǒng)包括有一封裝外殼,起著為此計(jì)算機(jī)系統(tǒng)內(nèi)的對象所引用的一個(gè)應(yīng)用程序的作用,以及起著第一應(yīng)用程序和該對象管理設(shè)備之間的接口的作用;和一外殼過濾器,它與該封裝外殼配合動(dòng)作,能按照該封裝外殼中的指令來截取用戶發(fā)給該第一應(yīng)用程序的命令,并將該封裝外殼所產(chǎn)生的命令傳送到該第一應(yīng)用程序。
2.如權(quán)利要求1中的封裝系統(tǒng),進(jìn)一步還包括對該封裝外殼指明有關(guān)該第一應(yīng)用程序的結(jié)構(gòu)信息的結(jié)構(gòu)特性。
3.如權(quán)利要求1中的封裝系統(tǒng),進(jìn)一步還包括一由該封裝外殼所讀取的菜單/宏定義文件,它包括由該封裝外殼和該外殼過濾器所執(zhí)行的。并能為用戶及計(jì)算機(jī)系統(tǒng)運(yùn)行該第一應(yīng)用程序相一致利用的菜單/宏功能的定義。
4.一計(jì)算機(jī)系統(tǒng),具有一管理多個(gè)第一對象的對象管理設(shè)備,其中每一對象都引用一為與該對象管理設(shè)備協(xié)同運(yùn)行而設(shè)計(jì)的應(yīng)用程序,一種便于將并非設(shè)計(jì)成與該對象管理設(shè)備協(xié)同運(yùn)行的第一應(yīng)用程序容納進(jìn)此計(jì)算機(jī)系統(tǒng)的方法,此方法包括有下列步驟a)將該第一應(yīng)用程序封裝進(jìn)一封裝外殼中,此封裝外殼起著為該計(jì)算機(jī)系統(tǒng)內(nèi)的對象所引用的一個(gè)應(yīng)用程序的作用,同時(shí)亦起著該對象管理設(shè)備和此第一應(yīng)用程序之間接口的作用;b)由一外殼過濾器截取用戶發(fā)向第一應(yīng)用程序的命令;和c)該外殼過濾器將來自該封裝外殼的命令傳送到該第一應(yīng)用程序。
5.如權(quán)利要求4中的方法,其中步驟(b)是由對用戶在鍵盤上鍵入的鍵入信息進(jìn)行監(jiān)控來執(zhí)行的。
6.如權(quán)利要求4中的方法,其中步驟(b)是由對發(fā)送給該第一應(yīng)用程序的消息進(jìn)行監(jiān)控來執(zhí)行的。
7.如權(quán)利要求4中的方法,其中步驟(a)包括下列子步驟(a1)對該第一應(yīng)用程序增加輔助的、為用戶看作為與該第一應(yīng)用程序成為一整體的菜單。
8.如權(quán)利要求7中的方法,進(jìn)一步還包括有步驟(d)該封裝外殼截取用戶利用該輔助菜單所產(chǎn)生的用戶指令,(e)該封裝外殼產(chǎn)生當(dāng)由該第一應(yīng)用程序執(zhí)行時(shí)將完成用戶利用該輔助菜單所產(chǎn)生的用戶指令的命令;和(f)響應(yīng)步驟(b)中對用戶指令的截取,將步驟(e)中所產(chǎn)生的命令由封裝外殼發(fā)送到該第一應(yīng)用程序。
9.一計(jì)算機(jī)系統(tǒng)具有一管理多個(gè)第一對象的對象管理設(shè)備,其中每一對象都引用一為與該對象管理設(shè)備協(xié)同運(yùn)行而設(shè)計(jì)的應(yīng)用程序,一種使由并非被設(shè)計(jì)來與該對象管理設(shè)備協(xié)同運(yùn)行的第一應(yīng)用程序所產(chǎn)生的文件適應(yīng)于該對象管理設(shè)備的方法,此方法包括有步驟(a)將該第一應(yīng)用所產(chǎn)生的數(shù)據(jù)文件置于一缺席目錄中;(b)該第一應(yīng)用程序結(jié)束后,在該缺席目錄中搜尋在該第一應(yīng)用程序打開時(shí)所產(chǎn)生或修改的文件;和(c)對在步驟(b)中所尋找的、尚未連接到一對象的每一個(gè)被產(chǎn)生或修改的文件,產(chǎn)生一引用該第一應(yīng)用程序的新對象,并將此新對象連接到步驟(b)所找到的文件。
10.如權(quán)利要求9中的方法,進(jìn)一步還包括下列步驟(d)對步驟(b)中所尋找到的,已經(jīng)連接到一對象的每一個(gè)被產(chǎn)生或修改的文件,如果該對象是目前激活的話,就給該對象發(fā)送一說明該被產(chǎn)生的或修改的文件已經(jīng)改變。
11.一計(jì)算機(jī)系統(tǒng)具有一管理多個(gè)初級(jí)對象的對象管理設(shè)備,其中每一對象都引用一為與該對象管理設(shè)備協(xié)同運(yùn)行而設(shè)計(jì)的應(yīng)用程序,一種使由并非被設(shè)計(jì)來與該對象管理設(shè)備協(xié)同運(yùn)行的初級(jí)應(yīng)用程序所產(chǎn)生的文件適應(yīng)于該對象管理設(shè)備的方法,此方法包含有步驟(a)將由該第一應(yīng)用程序?yàn)樵摰谝粦?yīng)用程序利用而產(chǎn)生的數(shù)據(jù)文件置入一第一缺席目錄中;(b)將由該第一應(yīng)用程序?yàn)榈诙?yīng)用程序利用而產(chǎn)生的數(shù)據(jù)文件置入一第一缺席目錄中;(c)在該第一應(yīng)用程序結(jié)束后,在該第一缺席目錄中搜尋在該第一應(yīng)用程序打開期間所產(chǎn)生或修改的文件;(d)為在步驟(c)中所找到的,尚未連接到一對象的每一被產(chǎn)生或修改的文件產(chǎn)生一引用該第一應(yīng)用程序的新對象,并將此新對象連接到步驟(b)中所找到的文件;(e)在該第一程序結(jié)束后,在該第二缺席目錄中搜尋在該第一應(yīng)用程序打開期間所產(chǎn)生或修改的文件;(f)為在步驟(e)中所找到的、尚未連接到一對象的每一被產(chǎn)生或修改的文件,產(chǎn)生一引用該第一應(yīng)用程序的新對象,并將此新對象連接到在步驟(e )中所找到的文件。
12.如權(quán)利要求11中的方法,還進(jìn)一步包括下列步驟(g)對于在步驟(c )或步驟(e)中找到的,已經(jīng)連接到一對象的每一被產(chǎn)生或修改的文件,如果該對象是當(dāng)前激活的,就對該對象發(fā)送一消息指明該被產(chǎn)生或修改的文件已經(jīng)改變。
13.一個(gè)計(jì)算機(jī)系統(tǒng)具有一管理多個(gè)第一對象的對象管理設(shè)備,其中每一對象都引用一為與該對象管理設(shè)備協(xié)同運(yùn)行而設(shè)計(jì)的應(yīng)用程序,一種將由并非設(shè)計(jì)成與該對象管理設(shè)備協(xié)同運(yùn)行的第一應(yīng)用程序所產(chǎn)生的文件轉(zhuǎn)換到該對象管理設(shè)備中的方法,該文件是為被設(shè)計(jì)成與該對象管理系統(tǒng)協(xié)同運(yùn)行的第二應(yīng)用程序所利用的,該方法包括有步驟(a)將由該初級(jí)應(yīng)用程序所產(chǎn)生的數(shù)據(jù)文件置入一轉(zhuǎn)換缺席表;(b)在該第一應(yīng)用程序結(jié)束后,由該轉(zhuǎn)換缺席目錄中搜尋在該第一應(yīng)用程序打開期間所產(chǎn)生或修改的文件和(c)對在步驟(b)中所找到的每一個(gè)被產(chǎn)生或修改的文件,執(zhí)行下列子步驟;(c1)產(chǎn)生一引用該第二應(yīng)用程序的新對象;和(c2)激活該新對象,并向新對象發(fā)送一消息,指示新對象去改變該被產(chǎn)生或修改的文件。
14.一計(jì)算機(jī)系統(tǒng),包括在監(jiān)視器上顯示有一光標(biāo)和一圖象,該圖象是用來引用一數(shù)據(jù)文件的,該系統(tǒng)還包括有一能利用該數(shù)據(jù)文件中的數(shù)據(jù)的第一軟件應(yīng)用程序,一能利用該數(shù)據(jù)文件中數(shù)據(jù)的第二軟件應(yīng)用程序,以及使得用戶可對光標(biāo)進(jìn)行定位和采取其他該計(jì)算機(jī)系統(tǒng)能檢測到的操作的輸入裝置,一種方法包括下列步驟(a)在用戶利用該輸入裝置的指引下,將光標(biāo)置于該圖象上;(b)在用戶利用該輸入裝置完成第一組操作后,啟動(dòng)第一軟件應(yīng)用程序,此第一次軟件應(yīng)用程序?qū)υ摂?shù)據(jù)文件內(nèi)的數(shù)據(jù)進(jìn)行運(yùn)行處理和(c)在用戶利用該輸入裝置完成第二組操作后,啟動(dòng)該第二軟件應(yīng)用程序,此第二軟件應(yīng)用程序?qū)υ摂?shù)據(jù)文件中的數(shù)據(jù)作運(yùn)行處理。
15.如權(quán)利要求14中的方法,其中,輸入裝置包括一鍵盤和一鼠標(biāo)器,該第一組操作包括按壓該鼠標(biāo)器上的一個(gè)按鍵,該第二組操作包括在按壓該鼠標(biāo)器上的按鍵的同時(shí)保持壓住該鍵盤上的第一鍵。
16.一計(jì)算機(jī)系統(tǒng)包括在一監(jiān)視器上顯示有一光標(biāo)和一圖象,該圖象被用來引用一數(shù)據(jù)文件,還包括有一能利用該數(shù)據(jù)文件中數(shù)據(jù)的軟件應(yīng)用程序,一封裝程序,和使用戶能對光標(biāo)進(jìn)行定位及執(zhí)行其他能為此計(jì)算機(jī)系統(tǒng)檢查到的操作的輸入裝置,該封裝程序包括有指定該軟件應(yīng)用程序利用該數(shù)據(jù)文件的第一種方式的第一組參數(shù),和指定該軟件應(yīng)用程序利用該數(shù)據(jù)文件的第二種方式的第二組參數(shù),一種方法包括以下步驟(a)在用戶利用該輸入裝置的指引下,將光標(biāo)置于該圖像上;(b)在用戶利用輸入裝置完成第一組操作后,啟動(dòng)利用該第一組參考的軟件應(yīng)用程序和(c)在用戶利用輸入裝置完成第二組操作之后,啟動(dòng)利用第二組參數(shù)的軟件應(yīng)用程序。
17.如權(quán)利要求16中的方法,其中,輸入裝置包括一鍵盤和一鼠標(biāo)器,所述第一組操作包括按壓鼠標(biāo)器上一按鍵,所述第二組操作包括在按壓鼠標(biāo)器上按鍵期間保持壓下鍵盤上的第一鍵。
全文摘要
具有一對象管理設(shè)備的計(jì)算機(jī)系統(tǒng)。包括一便于容納并非設(shè)計(jì)為與對象管理設(shè)備協(xié)同運(yùn)行的第一應(yīng)用程序的封裝系統(tǒng)。此封裝設(shè)備包含一封裝外殼和一外殼過濾器。封裝外殼可為對象引用,就好像它是與此對象管理設(shè)備協(xié)同運(yùn)行的應(yīng)用程序一樣。封裝外殼還在對象管理設(shè)備與該第一應(yīng)用程序之間起接口作用。外殼過濾器與封裝外殼協(xié)同操作,并可根據(jù)封裝外殼的指令截取用戶發(fā)給第一應(yīng)用程序的命令。外殼過濾器還可將封裝外殼產(chǎn)生的命令傳遞給第一應(yīng)用程序。
文檔編號(hào)G06F3/033GK1059981SQ8910554
公開日1992年4月1日 申請日期1989年8月9日 優(yōu)先權(quán)日1988年12月30日
發(fā)明者威廉·M·克勞, 伊茲察克·埃阿里希 申請人:惠普公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
林甸县| 贵定县| 双柏县| 来宾市| 体育| 诸暨市| 四子王旗| 榆中县| 阿拉善左旗| 万山特区| 克山县| 青河县| 新乡市| 台北市| 商城县| 迭部县| 苏尼特左旗| 霞浦县| 那曲县| 定日县| 巴楚县| 祁门县| 通山县| 许昌市| 夹江县| 望城县| 海阳市| 济源市| 肇州县| 波密县| 边坝县| 五华县| 海南省| 仁寿县| 尼木县| 庄浪县| 临沂市| 淅川县| 陇西县| 莆田市| 临泉县|