(57)【要約】【課題】　汎用アプリケーション・コンピュータ・プログラムで特別のタスクを実行する方法を提供する。【解決手段】　インターフェース・コンピュータ・プログラムは、アプリケーション・コンピュータ・プログラムから状態情報を集め、特別のタスクに関連するユーザ入力を集め、アプリケーション・プログラムに転送する命令を発生し、上記の命令をアプリケーション・プログラムに転送して上記の特別なタスクを実行する。上記のインターフェース・コンピュータ・プログラムはウインドウズ（登録商標）のダイナミック・データ・エクスチェンジを介して上記のアプリケーション・コンピュータ・プログラムと連絡をとるのが好ましい。【選択図】　　　　　図３
2004110842.tif 000002
【特許請求の範囲】
【請求項１】
　所望のタスクの実行を行うためコンピュータ・プログラムの実行を制御する方法であって、上記のコンピュータ・プログラムはインターフェース・コンピュータ・プログラムと連絡するためのプロセス間連絡用インターフェース及びタスクの実行を制御する命令を有する上記の方法に於いて、上記の方法は：
　上記のコンピュータ・プログラムの実行を開始し、そこで上記のコンピュータ・プログラムが上記のインターフェース・コンピュータ・プログラムを開始するステップ；
　上記のインターフェース・コンピュータ・プログラムにより、上記のプロセス間連絡用インターフェースを介して上記のコンピュータ・プログラムから状態情報を集めるステップ；
　上記のインターフェース・コンピュータ・プログラムにより、上記の所望のタスクと関連するユーザ入力を集めるステップ；
　上記のインターフェース・コンピュータ・プログラムにより、上記状態情報及び上記ユーザ入力に基づいて上記の所望のタスクを行うためにプロセス間連絡命令を発生するステップ；及び
　上記のインターフェース・コンピュータ・プログラムから、上記の発生された命令を上記のコンピュータ・プログラムに上記のプロセス間連絡用インターフェースを介して転送し、上記の所望のタスクを実行するため上記のコンピュータ・プログラムの実行を制御するステップ；
　によって構成されることを特徴とする方法。
【請求項２】
　上記のプロセス間連絡用インターフェースは、ダイナミック・データ・エクスチェンジを含むことを特徴とする請求項１記載の方法。
【請求項３】
　上記のコンピュータ・プログラムと、上記のインターフェース・コンピュータ・プログラムとは別のプロセスとして実行されることを特徴とする請求項１記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
　本発明は、一般的にアプリケーション・プログラムの実行を制御する方法に関し、更に詳しくは、アプリケーション・プログラムよる特別のタスクの実行を制御するためのユーザ・インターフェースを提供する方法とシステムに関する。
【背景技術】
【０００２】
　現在多数の汎用アプリケーション・コンピュータ・プログラムが市販されている。これらの汎用アプリケーション・プログラムはワード・プロッセサ、卓上出版装置、表計算及びデータ・ベースの製品に含まれている。この分野は、これらの製品を作るのに非常に激しい競争を行っている。これらの汎用アプリケーション・プログラムがパーソナル・コンピュータ用に最初に開発された時、これらは今日の基準から判断すると簡単なものであった。１つには競争による圧力のため、これらのプログラムは、多くの特徴とオプションを備える非常に精巧なプログラムに発展した。例えば、最初の表計算用のプログラムは基本的に数値計算用のセルのグリッドを提供するものである。今日では、表計算用のプログラムによってデータのグラフ化、データの保存と取り出し、プログラム機能のようなはるかに多くの能力が与えられている。
【０００３】
　不幸にして、これらの汎用アプリケーション・プログラムが更に精巧になるに従って、ユーザもまたこれらの進歩した特徴の利点を活用するため、更に習熟しなければならない。これらの進歩した特徴のため、しばしば以前には簡単であったタスクを実行するのがより複雑になる。その結果、ユーザはこれらの以前には簡単であったタスクを実行するため、プログラムの学習に多くの時間をさかなければならない。このような複雑さは、最初に実行したタスクを希にしか実行しない場合の効率にもまた影響を及ぼす。例えば、ユーザは卓上出版装置を使用して季刊のニューズレターを急いで作成しようと希望する場合があるが、このユーザはアプリケーションの必要な部分全体についての設計上のスキルを有さず、またはこれらの必要な部分を使用するスキルを有していない場合がある。また、ユーザは卓上出版装置を使用して季刊のニューズレターを作成する場合もある。しかし、このユーザはこのニューズレターを発行する間隔の間に、この卓上出版装置の特徴の多くをどのように使用するかを忘れているかも知れない。従って、ユーザは四半期毎にかなりの時間を使用して再学習を行わなければならない。
【０００４】
　幾くつかの汎用コンピュータ・プログラムに最近付加された特徴に、プロセス間連絡がある。プロセス間連絡によって、コンピュータ・プログラムは連絡用チャンネルを介してデータを相互に転送することが可能になる。プロセス間連絡は、一般的にプログラムを同期化し、プログラムからデータを要求し、データをプログラムに転送するために使用されている。マイクロソフト社はアプリケーション・プログラム用の標準のプロセス間連絡機構を開発している。この機構はダイナミック・データ・エクスチェンジ（Ｄｙｎａｍｉｃ　Ｄａｔａ　Ｅｘｃｈａｎｇｅ、ＤＤＥ）と呼ぶ。このＤＤＥによって、ウィンドズ（Ｗｉｎｄｏｗｓ）のウィンド環境用に開発されたプログラムのためのプロセス間連絡手段が提供される。ウィンドズのＤＤＥの特徴は「マイクロソフト・システム・ジャーナル」、１９８７年１１月と「マイクロソフト・ウィンドズのプログラマ用参考文献」で説明されている。ＤＤＥは、メッセージ・パッシングによって実行される。ＤＤＥは一般的に２つのアプリケーション・プログラムがデータを共有するのを可能にするために使用する。例えば、ユーザはグラフィックス・パッケージで開発された四半期毎の図表をニューズレターに挿入しようとする。ＤＤＥを使用すると、卓上出版装置はグラフィックスのプログラムによって新しい図表を発生するように要求することができる。この卓上出版装置は次に新しい図表を最近のニューズレターに自動的に組み込むことできる。従って、ＤＤＥは１つのプログラムが他のプログラムとデータを共有し、これを更新する機構を提供する。
【０００５】
　一般的に、ＤＤＥを使用するアプリケーション・プログラムの開発者は、自分達のＤＤＥインタフェースを公表している。例えば、表計算のプログラムの開発者は、このプログラムが識別するメッセージのリストと、どのようにしてこのプログラムがこれらのメッセージに対して応答を行うかを公表している。幾くつかの汎用アプリケーション・プログラムでは、これらのメッセージが定義され、その結果、ユーザ・インターフェースを介してアプリケーション・プログラムに対して実行することのできる各機能は、ＤＤＥを介して実行することができる。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
　これらの精巧な汎用プログラムを使用するため、容易に使用することのできる方法とシステムを有するのが好ましい。
【０００７】
　本発明の１つの目的は、汎用アプリケーション・プログラム内で特別のタスクを実行する方法とシステムを提供することである。
【０００８】
　本発明の他の目的は、タスクの実行を制御するため、既存のアプリケーション・プログラムに対する新しいユーザ・インターフェースを提供することである。
【０００９】
　本発明の他の目的は、第３者が既存のアプリケーション・プログラムの特徴を拡張してカストム化するのを可能にする方法とシステムを提供することである。
【００１０】
　本発明の他の目的は、特別のタスクの実行に関して専門的な知識を有するインターフェース・プログラムを提供することである。
【００１１】
　本発明の他の目的は、アプリケーション・プログラムで特別のタスクを実行するためのシステムのアーキテクチャを提供することである。
【課題を解決するための手段】
【００１２】
　本発明を更に以下で十分説明するに従って明かとなるこれら及びその他の目的は、特別のタスクを実行するためのアプリケーション・プログラムの実行を制御する方法とシステムによって得られる。好適な実施例では、インターフェース・コンピュータ・プログラムは、アプリケーション・コンピュータ・プログラムから状態情報を集め、特別のタスクに関連するユーザの入力を集め、アプリケーション・プログラムに転送する命令を発生し、これらの命令をアプリケーション・プログラムに転送してこの特別のタスクを実行する。
【発明を実施するための最良の形態】
【００１３】
　本発明は、１つ以上のアプリケーション・プログラムに対してユーザ・インターフェースを実行する方法を提供する。この方法によれば、インターフェース・プログラムはアプリケーション・プログラムと所望のタスクを実行するユーザと相互作用を行う。インターフェース・プログラムはウィザード（Ｗｉｚａｒｄ）と呼ぶ。例えば、本発明の１実施例では、ページウィザード（ＰａｇｅＷｉｚａｒｄｓ）と呼ぶ幾くつかのユーザ・インターフェース・プログラムによって、パブリッシャ（Ｐｕｂｌｉｓｈｅｒ）と呼ぶ卓上出版用のアプリケーション・プログラムに対する新しいユーザ・インターフェースが提供される。各々のページウィザードはパブリッシャによって特別のタスクを実行するためのユーザ・インターフェースを提供する。カレンダ（Ｃａｌｅｎｄｅｒ）・ページウィザードと呼ぶ１つのこのようなページウィザードはカレンダの作成をサポートする。カレンダ・ページウィザードは、ユーザからフォーマットと日付の情報を集める。カレンダ・ページウィザードはパブリッシャと相互作用を行い、パブリッシャによるカレンダの作成を実行する。
【００１４】
　図１は、アプリケーション・プログラム１０２とインターフェース１０１の代表的なブロック図である。これらのプログラムは、プロセス間連絡チャンネル１０５を介して連絡を行う。好適な実施例では、プロセス間連絡チャンネルはウィンドズのダイナミック・データ・エクスチェンジ（ＤＤＥ）である。しかし、他のプロセス間連絡の方法を使用することも可能である。インターフェース・プログラム１０１は、ユーザ・インターフェース部１０４とアプリケーション・インターフェース部１０３によって構成される。ユーザ・インターフェース部１０４によって、ユーザにタスクの特有のインターフェースが与えられる。カレンダ・ページウィザードの例の場合、このタスクはパブリッシャを使用してカレンダを作成することである。ユーザ・インターフェースはカレンダ情報をユーザに表示し、ユーザからフォーマットのデータを集める。アプリケーション・インターフェース部１０３はアプリケーション・プログラム１０２に転送する命令を準備し、アプリケーション・プログラム１０２との連絡を制御する。または、インターフェース・プログラムが幾くつかのアプリケーション・プログラムと相互作用を行い、特別のタスクを実行してもよい。例えば、ユーザ・インターフェース・プログラムは宛名の差し込みをサポートすることができる。このようなユーザ・インターフェース・プログラムはデータ・ベースのアプリケーション・プログラム及び言語処理用のアプリケーション・プログラムと相互に作用を行うことができる。宛名差し込みのインターフェース・プログラはユーザが入力した基準に基づいてデータベースのプログラムから名称と住所を集め、このデータを言語処理用のプログラムに転送し、これをユーザの入力した文書に差し込む。図２は、２つのアプリケーション・プログラムと相互に作用を行うユーザ・インターフェース・プログラムを示す。インターフェース・プログラム１１１はユーザ・インターフェース部１１４と２つのアプリケーション・インターフェース部１１５、１１６を有している。各アプリケーション・インターフェース部はプロセス間連絡チャンネル１１７、１１８の１つを介してアプリケーション・プログラム１１２、１１３の１つとインターフェースを取る。
【００１５】
　図３は、インターフェース・プログラムとアプリケーション・プログラムの間の代表的な連絡シーケンスのフロー図である。右側の列２１０のブロックはアプリケーション・プログラムによって実行される処理を表す。左側の列２２０のブロックは、インターフェース・プログラムによって実行される処理を示す。最初、アプリケーション・プログラムを開始する。このアプリケーション・プログラムのユーザはインターフェース・プログラムの開始を選択する。ブロック２１１で、アプリケーション・プログラムは選択したインターフェース・プログラムを開始する。他の実施例では、ユーザはインターフェース・プログラムを開始し、次にこのインターフェース・プログラムによってアプリケーション・プログラムを開始することが可能であり、またはアプリケーション・プログラムとインターフェース・プログラムの両方を相互に独立して開始させることも可能である。ブロック２２１ではインターフェース・プログラムによって、状態命令を作成する。これらの状態命令はアプリケーション・プログラムに状態情報をインターフェース・プログラムに転送することを要求する。ブロック２２２で、インターフェース・プログラムは状態命令をアプリケーション・プログラムに転送する。ブロック２１２では、アプリケーション・プログラムはこの状態命令を処理する。ブロック２１３では、アプリケーション・プログラムは状態をインターフェース・プログラムに転送する。ブロック２２３では、インターフェース・プログラムは、実行すべきタスクを記述したユーザからのデータを入力する。ブロック２２４では、インターフェース・プログラムは、所望のタスクを実行するためのタスク命令を作成する。ブロック２２５では、インターフェース・プログラムはクスク命令をアプリケーション・プログラムに転送する。ブロック２１４ではアプリケーション・プログラムはタスク命令を実行する。
【００１６】
　好適な実施例では、アプリケーション・プログラムとインターフェース・プログラムはウィンドウズのウィンド環境で動作する。インターフェース・プログラムはウィンドを設け、このウィンドを介してユーザに対して情報を表示し、ユーザから情報を受け取る。図４は、カレンダ・ページウィザードの画面を示し、この画面はパブリッシャのアプリケーション・プログラムとインターフェースしている。ページウィザードは一連の「ページ」を介してユーザとインターフェースしている。ユーザは、これらのページを介して「ナビゲートし」、データを入力してこの入力したデータを見る。ウィンド３０１は、主要なパブリシャのウィンドである。ウィンド３０２は主要なページウィザードのウィンドであり、ウィンド３０１に重なる。ウィンド３０２は、ページに特有の制御３０３、図形項目３０４、主要なナビゲーション制御３０５によって構成される。この主要なナビゲーション制御３０５によって、ユーザはカレンダ・ページウィザードが設けた種々のページを選択することが可能になる。「ネクスト（Ｎｅｘｔ）＞」制御３０６は、次のページに進むことを示す。「＜」制御３０７は、前のページに戻ることを示す。「｜＜＜」３０８は、１ページ目に進むことを示す。「キャンセル（Ｃａｎｃｅｌ）」制御３０９はカレンダ・ページウィザードをぬけてパブリシャに戻ることを示す。
【００１７】
　これらのページはユーザの定義した資源によってページ資源ファイルで定義される。各ページに付いて資源ファイルは下記の情報を含んでいる。
　　ＰＡＧＥｎ　　ＰＡＧＥ
　　　　　　　ＢＥＧＩＮ　ＮｅｘｔｐａｇｅＮｕｍ，ｃＣｏｎｔｒｏｌｓ，
　　　　　　　ｃｏｎｔｒｏｌ　ｉｎｆｏｒｍａｔｉｏｎ，
　　　　　　　ｃｏｎｔｒｏｌ　ｉｎｆｏｒｍａｔｉｏｎ，
　　　　　　　・・・
　　　　　　　ｃｏｎｔｒｏｌ　ｉｎｆｏｒｍａｔｉｏｎ
　　　　　　　ＥＮＤ
ここで、ＰＡＧＥｎのｎはページ数を指定し、ＮｅｘｔＰａｇｅＮｕｍは、つぎのページを選択した場合に表示すべきページを指定し、ｃＣｏｎｔｒｏｌｓは次にくる制御情報線のカウントである。制御情報線のフォーマットは下記の通りである。
　　　ｃｏｎｔｒｏｌｔｙｐｅ，ｔｅｘｔ，ｉｄ，ｘ，ｙ，ｗｉｄｔｈ，ｈｅｉｇｈｔ，ｎｅｘｔｐａｇｅ
ここで、フォーマットは、ｎｅｘｔｐａｇｅの項目を除いて標準の対話形の制御と同じである。ｎｅｘｔｐａｇｅの項目は、制御を選択した場合に進むべき次のページを指定する。これによって、ユーザの選択した制御に基づいてページのナビゲーション・シーケーンスの変化することが可能になる。ページの図形はユーザの定義した資源の項目によって資源ファイルで定義される。図形の項目には２つの種類、即ち、ｍｅｔａｆｉｌｅとｔｅｘｔ　ｏｂｊｅｃｔがある。各図形の項目は、図形資源ファイルにエントリを有している。ｍｅｔａｆｉｌｅのエントリのフォーマットは下記の通りである。
　　　　ＧＲＮＡＭＥ　　ＭＥＴＡＦＩＬＥ　　ｇｒｎａｍｅ．ｗｍｆ
　　　　ＧＲＮＡＭＥ　　ＢＯＵＮＤＳ
　　　　　　　ＢＥＧＩＮ
　　　　　　　　　　ｘ，ｙ，ｗｉｄｔｈ，ｈｅｉｇｈｔ
　　　　　　　ＥＮＤ
ここで、ｇｒｎａｍｅ．ｗｍｆは、関連するｍｅｔａｆｉｌｅを指定し（各々のｍｅｔａｆｉｌｅは別のファイルに格納されている）、変数ｘ、ｙ、ｗｉｄｔｈ、及びｈｅｉｇｈｔは、ページ上のｍｅｔａｆｉｌｅの位置を指定する。テキストのオブジェクトのエントリのフォーマットは下記の通りである。
　　　ＴＸＮＡＭＥ　　　ＴＥＸＴＯＢＪＥＣＴ
　　　　　　ＢＥＧＩＮ
　　　　　　ｓｔｒｉｎｇＩＤ，ｘ，ｙ，ｗｉｄｔｈ，ｈｅｉｇｈｔ
　　　　　　ｆｏｎｔｎａｍｅ，ｐｔｓｉｚｅ，ｆｏｎｔｓｔｙｌｅ，
　　　　　　Ｒ１，Ｇ１，Ｂ１，Ｒ２，Ｇ２，Ｂ２，
　　　　　　ｆＢｏｒｄｅｒ，ｌｅｆｔｉｎｄｅｎｔ，ｒｉｇｈｔｉｄｅｎｔ，
　　　　　　ａｌｉｇｎ
　　　　　　ＥＮＤ
ここで、ｓｔｒｉｎｇＩＤは、ストリング資源ファイルに格納されているストリングのｉｄを含む。ストリング資源ファイルは、ｓｔｒｉｎｇＩＤと関連するテキストのストリングを含む。他の変数はこのストリングの位置と画面の特性を定める。
【００１８】
　好適な実施例では、あるアプリケーション・プログラムと相互作用を行う全てのウィザードは共通のアーキテクチャの特徴を共有する。例えば、パブリッシャと相互作用を行う全てのウィザードは、上述したようにページを使用する。ページウィザードは、主要なウィンド手順と各ページに対するウィンド手順を有する。この主要なウィンド手順は、メッセージをページに転送してこれらのページを介してナビゲーションを制御する。図５は、ページウィザードの主要なウィンド手順を示す。ブロック４０１で手順はアプリケーション・プログラムとの連絡チャンネルを開く。他の実施例では、連絡チャンネルは第１連絡データを転送する直前に開かれるブロック４０２で、手順は資源ファイルからの画面情報によって内部データ構造を初期化する。ブロック４０３で、手順はアプリケーション・プログラムから状態情報を要求してこれを受け取る。ブロック４０４で、手順は主要ウィンドを作成する。ブロック４０５と４０６で、手順は主要なメッセージのループを実行する。次に、手順はメッセージを待機し、これを引き渡す。
【００１９】
　図６は、ページウィザードの主要なウィンドのフロー図である。この手順は、主要なウィンドを表示し、ターミネーション・キャラクタを処理し、ページを介してナビゲーションを制御し、他の雑多なウィンド機能を取り扱う。メッセージは、ブロック５１０、５２０、５３０、５４０、５５０、及び５６０で復号される。ブロック５１０で、もしメッセージがＷＭ＿ＣＲＥＡＴＥであれば、次に手順はブロック５１１乃至５１３で主要なウィンドを表示する。ブロック５１１で、手順は適用不可能なメニューの命令を除去し、「Ａｂｏｒｔ・・・」メニューの命令をつけ加えることによって、システムのメニューを調整する。ブロック５１２で、システムはビデオ構成に基づいて適当なフォントを決定し、次にこのフォントのサイズに基づいて主要なページウィザードのウィンドのサイズを基準化する。ブロック５１３で手順は主要なウィンドを表示してリターンする。ブロック５２０で、もしメッセージがＷＭ＿ＣＨＡＲであれば、次に手順はブロック５２１で継続される。ブロック５２１で、もしＷＭ＿ＣＨＡＲメッセージがエスケープ・キーが押されたことを示せば、手順はページウィザードをぬける。ブロック５３０で、もしメッセージがＷＭ＿ＣＯＭＭＡＮＤ、ＷＭ＿ＥＮＴＥＲＰＡＧＥ、またはＷＭ＿ＬＥＡＶＥＰＡＧＥメッセージであれば、次に手順はブロック５３１で継続される。ブロック５３１で、もしメッセージが主要なナビゲーション制御に対するものであれば、次に手順はブロック５３５で継続し、そうでなければ、手順はブロック５３２で継続される。ブロック５３２で、手順は現在表示されているページ用のウィンド手順に対してメッセージを転送する。各ページは、そのページに対するメッセージを取り扱うための対応するウィンド手順を有している。ブロック５３３で、手順は変数を更新して現在のページを追跡するブロック５３４で、手順はナビゲーション制御をイネーブルまたはディスエーブルし、次のページまたは前のページが存在したかどうかを十分考慮してリターンする。ブロック５３５で、手順は、手順ＧｏＰａｇｅ（以下で説明する）を呼び出し、これによってページの切り換えを実行してリターンする。ブロック５４０で、もしメッセージがＷＭ＿ＰＡＩＮＴであれば、次に手順はブロック５４１で継続される。ブロック５４１で、手順は主要なページウィザード・ウィンドをペイントしてリターンする。ブロック５５０で、もしメッセージがＷＭ＿ＣＬＯＳＥであれば、手順は次にブロック５５１で継続される。ブロック５５１で手順はページウィザードをぬける。ブロック５６０で、もしメッセージがＷＭ＿ＳＹＳＣＯＭＭＡＮＤであれば、次に手順はブロック５６１で継続される。ブロック５６１で、手順はアバウト・ダイアログ・ボックスを表示し、リターンする。
【００２０】
　図７は、手順ＧｏＰａｇｅのフロー図である。この手順はページ番号を受け取り、現在のページから受け取ったページへの変更を行う。ブロック６０１で、もし受け取ったページの番号が有効であれば、次に手順はブロック６０２で継続され、そうでなければ、この手順はリターンする。もしページ番号がページ資源ファイルで定義されていれば、このページ番号は有効である。ブロック６０２で、手順はＷＭ＿ＬＥＡＶＥＰＡＧＥメッセージを前のページに転送する。ブロック６０３で、手順は前のページを前のページのリストに保存する。このリストを使用して前のページをナビゲートする。ブロック６０４で、手順は前のページの制御を打ち切る。ブロック６０５で、手順は新しいページの制御を作成する。ブロック６０６で、手順はＷＭ＿ＥＮＴＥＲＰＡＧメッセージを新しいページのウィンド手順に転送する。
【００２１】
　図８は、ページ用の好適なウィンド手順のフロー図である。好適な実施例の場合、ページのウィンドはこれらがナビゲーション制御を取り扱う方法とアーキテクチャ上同じである。ブロック７１０で、もしメッセージがＷＭ＿ＥＮＴＥＲＰＡＧＥであれば、手順はブロック７１１で継続される。ＷＭ＿ＥＮＴＥＲＰＡＧＥメッセージは手順ＧｏＰａｇｅから転送される。ブロック７１１で、手順はこのページに対して図形を描く。ブロック７１２で、手順は制御を初期化する。ブロック７１３で、手順はページに特有の初期化を実行し、リターンする。ブロック７２０で、もしメッセージがＷＭ＿ＣＯＭＭＡＮＤであれば、次に手順はブロック７２１で継続される。ＷＭ＿ＣＯＭＭＡＮＤメッセージは手順ＧｏＰａｇｅから転送される。ブロック７２１で、手順はページに特有の制御を更新する。ブロック７２２で、手順はページに特有の図形を更新する。ページ７２３で、手順はページに特有の処理を実行し、リターンする。ブロック７３０で、もしメッセージがＷＭ＿ＬＥＡＶＥＰＡＧＥであれば、次に手順はブロック７３１で継続される。ＷＭ＿ＬＥＡＶＥＰＡＧＥメッセージは手順ＧｏＰａｇｅによって転送される。ブロック７３１で、手順はユーザの入力したページ・データの妥当性を検査する。ブロック７３２で、手順は画面からページに特有の図形を除去する。ブロック７３３で手順は、ページに特有の処理を実行し、リターンする。
【００２２】
　好適な実施例では、インターフェース・プログラムのアプリケーション・インターフェース部は、アプリケーション・プログラムからの状態情報の収集、タスク命令の作成、及びアプリケーション・プログラムに対するこのタスク命令の転送を制御する。アプリケーション・インターフェース・コードはアプリケーション・プログラムによって供給されたユーザの入力した情報と状態情報に基づいてこれらのタスク命令を作成する。カレンダ・ページウィザードの場合、アプリケーション・インターフェースはタスク命令を発生し、カレンダ・ページウィザードに構築されたユーザのデータと設計に基づいてパブリッシャ内にカレンダを作成する。ユーザ・データは、カレンダを作成するためのサイズ、フォント、日付、構成、及び他のオプション事項を指定する。
【００２３】
　好適な実施例では、アプリケーション・インターフェースはウィンドズのダイナミック・データ・エクスチェンジ（ＤＤＥ）機能を介してアプリケーション・プログラムと連絡を取る。このインターフェース・プログラムはアプリケーション・プログラムに対してＤＤＥのクライアントとして機能し、このアプリケーション・プログラムはＤＤＥの取扱い者として機能する。インターフェース・プログラムは、アプリケーションとトピックを指定するＤＤＥ＿ＩＮＩＴＩＡＴＥメッセージを転送することにより、アプリケーション・プログラムと対話を開始する。アプリケーション・プログラムはＤＤＥ＿ＡＣＫメッセージに応答する。状態情報を要求するため、インターフェース・プログラムはアプリケーション・プログラムに対する項目と共にＤＤＥ＿ＲＥＱＵＥＳＴメッセージを転送する。アプリケーション・プログラムは要求された項目と共にＤＤＥ＿ＤＡＴＡメッセージに応答する。インターフェース・プログラムは、これがアプリケーション・プログラムから必要とする各項目に対する要求を転送する。インターフェース・プログラムはアプリケーションに対する命令と共にＤＤＥ＿ＥＸＥＣＵＴＥを転送することにより、アプリケーション・プログラムに命令を転送する。アプリケーション・プログラムは、この命令の処理を完了するとＤＤＥ＿ＡＣＫメッセージを戻す。もしインターフェース・プログラムが複数のアプリケーション・プログラムと相互に作用を行えば、次にこの連絡は各アプリケーション・プログラムで行われる。
【００２４】
　図９と図１０はページウィザードに於けるＤＤＥの連絡をサポートする手順のフロー図を示す。図９は、アスクパブリッシャ（ＡｓｋＰｕｂｌｉｓｈｅｒ）手順のフロー図である。このアスクパブリッシャ手順は、もしＤＤＥのチャンネルが既に開かれていなければ、これを開き、パブリッシャから状態情報を要求する。この手順は、パブリッシャから要求すべき項目を入力パラメータとして受信する。ブロック８０１で、もしＤＤＥチャンネルが開かれていなければ、次に手順はブロック８０２でこのチャンネルを開き（上述のように）、ブロック８０３で継続される。ブロック８０３で、手順はパブリッシアに対する項目と共にＤＤＥ＿ＲＥＱＵＥＳＴメッセージを転送する。ブロック８０４で、手順はパブリッシャから受信すべきＤＤＥ＿ＤＡＴＥまたはＤＤＥ＿ＡＣＫメッセージを待機する。この待機によって、アスクパブリシャが呼び出すルーチンに戻る前にパブリシャがこの要求を処理することが保証される。ブロック８０５で、もしＤＤＥ＿ＡＣＫメッセージがエラーを示せば、次に手順はブロック８０６でユーザに状態を報告する。次に手順はリターンする。
【００２５】
　図１０は、テルパブリッシャ（ＴｅｌｌＰｕｂｌｉｓｈｅｒ）の手順のフロー図である。テルパブリシャ手順は、もしＤＤＥチャンネルが既に開かれていなければ、これを開き、実行するための命令をパブリシャに転送する。この手順は、パブリシャに転送すべき命令を入力パラメータとして受け取る。ブロック９０１で、もしＤＤＥチャンネルが開かれていなければ、次に手順はブロック９０２でこのチャンネルを開き（上述した通り）、ブロック９０３で継続される。ブロック９０３で、手順はパブリシャに対する項目と共にＤＤＥ＿ＥＸＥＣＵＴＥメッセージを転送する。ブロック９０４で、手順はパブリッシャから受信すべきＤＤＥ＿ＡＣＫメッセージを待機する。この待機によって、テルパブリシャがリターンする前にパブリシャがこの命令を処理することが保証される。ブロック９０５で、もしＤＤＥ＿ＡＣＫメッセージがエラーを示せば、次に手順はブロック９０６でユーザに状態を報告し、リターンする。
【００２６】
　本発明の方法とシステムを好適な実施例に関して開示し説明したが、本発明をこのような実施例に限定することを意図するものではない。むしろ、本発明は全ての合法的に等価な実施例を包含することを意図するものである。当業者には、本発明の精神の範囲内で種々の変形が明かとなる。本発明の範囲は上記の請求項によって定められる。
【図面の簡単な説明】
【００２７】
【図１】アプリケーション・プログラムとインターフェース・プログラムのブロック図である。
【図２】２つのアプリケーション・プログラムと相互に作用を行うユーザ・インターフェース・プログラムを示す。
【図３】インターフェース・プログラムとアプリケーション・プログラムの間の代表的な連絡のシーケンスのフロー図である。
【図４】カレンダ・ページウィザードの画面を示す。
【図５】ページウィザードの主要なウィンド手順のフロー図である。
【図６】ページウィザードの主要なウィンドのメッセージ処理手順のフロー図である。
【図７】図６のフロー図の続きを示すフロー図である。
【図８】図７のフロー図の続きを示すフロー図である。
【図９】ＧｏＰａｇｅの手順のフロー図である。
【図１０】ページ用の好適なウィンド手順のフロー図である。
【図１１】図１０のフロー図の続きを示すフロー図である。
【図１２】図１１のフロー図の続きを示すフロー図である。
【図１３】アスクパブリッシャ手順のフロー図である。
【図１４】テルパブリッシャ手順のフロー図である。
【符号の説明】
【００２８】
１０１、１１１　インターフェース・プログラム
１０２、１１２、１１３　アプリケーション・プログラム
１０３、１１５、１１６　アプリケーション・インターフェース
１０４、１１４　ユーザ・インターフェース
１０５、１１７、１１８　プロセス間連絡チャンネル
【図１】
2004110842.tif 000003
【図２】
2004110842.tif 000004
【図３】
2004110842.tif 000005
【図４】
2004110842.tif 000006
【図５】
2004110842.tif 000007
【図６】
2004110842.tif 000008
【図７】
2004110842.tif 000009
【図８】
2004110842.tif 000010
【図９】
2004110842.tif 000011
【図１０】
2004110842.tif 000012
【図１１】
2004110842.tif 000013
【図１２】
2004110842.tif 000014
【図１３】
2004110842.tif 000015
【図１４】
2004110842.tif 000016