(57)【要約】      （修正有）【課題】ドキュメントプレビューを生成するための方法および装置を提供する。【解決手段】プレビューハンドラ２８は、１つまたは複数のプレビューア３０Ｄに対するインターフェースを提供する。これらのプレビューアは、１つまたは複数のドキュメントタイプについてのビジュアルプレビューを生成することが可能なソフトウェアコンポーネントである。プレビューアハンドラは、ドキュメントについてのプレビューを生成するホストアプリケーション２６からの要求に応答して、ドキュメントについてのプレビュー５６を生成するための適切なプレビューアを識別してプレビューアを呼び出し、プレビューアに指示して、ドキュメントをロードし、呼び出しているホストアプリケーションが提供するウィンドウ５２のサブウィンドウ５４に、プレビューを示す。【選択図】図２
2014238876.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ上にドキュメントプレビューを提供する、コンピュータに実装される方法であって、
前記コンピュータが備えるプレビューハンドラを、前記コンピュータ上に実行中の電子メールクライアントアプリケーションが呼び出すステップと、
前記プレビューハンドラにおいて、前記電子メールクライアントアプリケーションから、電子メールメッセージに添付されたドキュメントのビジュアルプレビューを生成する要求を受信するステップと、
前記要求の受信に応答して、前記プレビューハンドラが、前記添付されたドキュメントのファイルの拡張子を含んでいる照会を前記電子メールクライアントアプリケーションに送信して、前記照会に対する応答を前記電子メールクライアントアプリケーションから受信して、前記電子メールクライアントアプリケーションから受信した照会に対する応答に基づいて個々に実行可能な複数のプレビューアから前記添付されたドキュメントのビジュアルプレビューを生成するために前記添付されたドキュメントのドキュメントタイプ用のプレビューアを識別するステップであって、
前記複数のプレビューアの各々は、特定のドキュメントタイプについてのドキュメントのプレビュー用のプレビューアとして前記プレビューハンドラにより登録され、
前記複数のプレビューアは、前記添付されたドキュメントのドキュメントタイプのドキュメントをプレビューするための少なくとも１つの登録されるプレビューアを含み、
前記電子メールクライアントアプリケーションに対する前記登録されるプレビューアは、前記添付されたドキュメントのビジュアルプレビューを提供することができ且つ前記電子メールクライアントアプリケーションにより開始することが可能な、ワードプロセッサアプリケーションプログラムおよびスプレッドシートアプリケーションプログラムのうちの少なくとも１つを含む、ステップと、
前記添付されたドキュメントのドキュメントタイプ用のプレビューアとして前記ワードプロセッサアプリケーションプログラムか前記スプレッドシートアプリケーションプログラムかの識別に応答して、前記添付されたドキュメントのビジュアルプレビューを提供するために前記添付されたドキュメントのドキュメントタイプ用のプレビューアとして前記ワードプロセッサアプリケーションプログラムか前記スプレッドシートアプリケーションプログラムかを前記プレビューハンドラがロードするステップと、
前記添付されたドキュメントのドキュメントタイプ用のプレビューアとして前記ワードプロセッサアプリケーションプログラムか前記スプレッドシートアプリケーションプログラムかを前記プレビューハンドラがロードすることに応答して、前記添付されたドキュメントのドキュメントタイプの他のドキュメントのビジュアルプレビューを生成するために、ロードされたプレビューアとして前記ワードプロセッサアプリケーションプログラムか前記スプレッドシートアプリケーションプログラムかを前記電子メールクライアントアプリケーションが指定するステップと、
前記添付されたドキュメントをロードして前記添付されたドキュメントのビジュアルプレビューを生成するよう、前記ロードされたプレビューアに指示する要求を前記ロードされたプレビューアへ前記プレビューハンドラが送信するステップであって、前記ロードされたプレビューアは、ユーザ入力を受信して前記添付されたドキュメントのビジュアルプレビューにページを移動してナビゲートすることを可能にするための１つまたは複数のインターフェースを提供する、ステップと
を備えたことを特徴とする方法。
【請求項２】
前記ロードされたプレビューアに指示する要求を前記ロードされたプレビューアへ送信するステップは、
前記電子メールクライアントアプリケーションから、前記添付されたドキュメントのビジュアルプレビューを生成すべきである、前記電子メールクライアントアプリケーションにより作成されるウィンドウに対するハンドルを前記プレビューハンドラが受信するステップと、
前記電子メールクライアントアプリケーションにより作成されるウィンドウ内にサブウィンドウを前記プレビューハンドラが生成するステップと、
前記ロードされたプレビューアに、前記サブウィンドウに対するハンドルを前記プレビューハンドラが渡すステップと、
前記添付されたドキュメントのビジュアルプレビューを前記プレビューハンドラにより作成されたサブウィンドウ内に前記ロードされたプレビューアが表示するステップと
を含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記電子メールクライアントアプリケーションから受信した照会に対する応答は、前記添付されたドキュメントのドキュメントタイプ用のプレビューアを識別するためのプレビューアクラス識別子を含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記プレビューハンドラは、レジストリの内容を検索することにより、個々に実行可能な複数のプレビューアから、前記添付されたドキュメントのドキュメントタイプ用のプレビューアを識別することを特徴とする請求項３に記載の方法。
【請求項５】
前記ロードされたプレビューアに指示する要求を前記ロードされたプレビューアへ送信
するステップは、
前記添付されたドキュメントが正常にロードされたかどうかを前記プレビューハンドラが決定するステップと、
前記添付されたドキュメントが正常にロードされなかったとの決定に応答して、前記電子メールクライアントアプリケーションにエラーメッセージを前記プレビューハンドラが戻すステップと
を含むことを特徴とする請求項１に記載の方法。
【請求項６】
前記エラーメッセージを戻すステップは、
前記プレビューハンドラにおいて前記電子メールクライアントアプリケーションから前記エラーメッセージに対応するメッセージを表示する要求を受信するステップと、
前記要求に応答して、前記エラーメッセージに対応するメッセージをディスプレイに前記プレビューハンドラが表示するステップと
を含むことを特徴とする請求項５に記載の方法。
【請求項７】
前記エラーメッセージに対応するメッセージを表示するステップは、
前記プレビューハンドラにおいて前記電子メールクライアントアプリケーションから進行インターフェースへのポインタを受信するステップと、
前記進行インターフェースへのポインタを前記ロードされたプレビューアに前記プレューハンドラが渡すステップと、
前記進行インターフェースを介して、前記電子メールクライアントアプリケーションに進行インジケータを前記ロードされたプレビューアが送信するステップと
を含むことを特徴とする請求項６に記載の方法。
【請求項８】
前記エラーメッセージに対応するメッセージを表示するステップは、
前記添付されたドキュメントが正常にロードされなかったとの決定に応答して、前記添付されたドキュメントのビジュアルプレビューを生成するために必要な追加のファイルのロケーションを求めて前記電子メールクライアントアプリケーションに前記プレビューハンドラが照会するステップを含むことを特徴とする請求項６に記載の方法。
【請求項９】
前記エラーメッセージに対応するメッセージを表示するステップは、
前記プレビューハンドラにおいて前記電子メールクライアントアプリケーションからビーコンインターフェースへのポインタを受信するステップと、
前記ビーコンインターフェースへのポインタを前記ロードされたプレビューアに前記プレビューハンドラが渡すステップと、
前記添付されたドキュメントが正常にロードされなかったとの決定に応答して、前記ビーコンインターフェース上で前記添付されたドキュメントのビジュアルプレビューを生成するために必要なサポートファイルをロードする許可を求めて前記電子メールクライアントアプリケーションに前記プレビューハンドラが照会するステップと
を含むことを特徴とする請求項６に記載の方法。
【請求項１０】
コンピュータによって実行されると、
前記コンピュータに、プレビューハンドラインターフェースを電子メールクライアントアプリケーションに公開させて、
前記プレビューハンドラインターフェースに、ドキュメントのプレビューを生成するためにプレビューハンドラを初期化してプレビューアをロードするための少なくとも１つのメソッドを公開させて、
前記プレビューハンドラに、
前記電子メールクライアントアプリケーションから、電子メールメッセージに添付されたドキュメントのビジュアルプレビューを生成する要求を受信させ、
前記要求に応答して、前記添付されたドキュメントのファイルの拡張子を含んでいる照会を前記電子メールクライアントアプリケーションへ送信させ、
前記照会に対する応答を前記電子メールクライアントアプリケーションから受信させ、
前記電子メールクライアントアプリケーションから受信した照会に対する応答に基づいて個々に実行可能な複数のプレビューアから前記添付されたドキュメントのビジュアルプレビューを生成するために前記添付されたドキュメントのドキュメントタイプ用のプレビューアを識別させ、
前記複数のプレビューアの各々は、特定のドキュメントタイプについてのドキュメントのプレビュー用のプレビューアとして前記プレビューハンドラにより登録され、
前記複数のプレビューアは、前記添付されたドキュメントのドキュメントタイプのドキュメントをプレビューするための少なくとも１つの登録されるプレビューアを含み、
前記電子メールクライアントアプリケーションに対する前記登録されるプレビューアは、前記添付されたドキュメントのビジュアルプレビューを提供することができ且つ前記電子メールクライアントアプリケーションにより開始することが可能な、ワードプロセッサアプリケーションプログラムおよびスプレッドシートアプリケーションプログラムのうちの少なくとも１つを含み、
前記添付されたドキュメントのビジュアルプレビューを提供するために前記添付されたドキュメントのドキュメントタイプ用のプレビューアとして前記ワードプロセッサアプリケーションプログラムまたは前記スプレッドシートアプリケーションプログラムをロードさせ、前記ワードプロセッサアプリケーションプログラムまたは前記スプレッドシートアプリケーションプログラムは、ロードされると、前記添付されたドキュメントのドキュメントタイプの他のドキュメントのビジュアルプレビューを生成するために、ロードされたプレビューアとして前記電子メールクライアントアプリケーションにより指定されて、
前記添付されたドキュメントをロードして前記添付されたドキュメントのビジュアルプレビューを生成するよう、前記ロードされたプレビューアに指示する要求を前記ロードされたプレビューアへ送信させて、前記ロードされたプレビューアは、ユーザ入力を受信して前記添付されたドキュメントのビジュアルプレビューにページの移動およびナビゲートを可能にするための１つまたは複数のインターフェースを提供する
コンピュータ実行可能命令を有するコンピュータ読取可能な記録媒体。
【請求項１１】
前記プレビューハンドラは、前記電子メールクライアントアプリケーションによって公開されるインターフェースを呼び出し、前記添付されたドキュメントのドキュメントタイプ用のプレビューアの識別子を含んでいる応答を前記電子メールクライアントアプリケーションから受信することを特徴とする請求項１０に記載のコンピュータ読取可能な記録媒体。
【請求項１２】
前記プレビューハンドラは、前記電子メールクライアントアプリケーションによって公開されるインターフェースを呼び出し、前記添付されたドキュメントのドキュメントタイプ用のプレビューアを識別するためのプレビューアクラス識別子を含んでいる応答を前記電子メールクライアントアプリケーションから受信することを特徴とする請求項１０に記載のコンピュータ読取可能な記録媒体。
【請求項１３】
前記プレビューハンドラに、個々に実行可能な複数のプレビューアから、前記添付されたドキュメントのドキュメントタイプ用のプレビューアを識別するためにレジストリを検索させることを特徴とする請求項１２に記載のコンピュータ読取可能な記録媒体。
【請求項１４】
前記プレビューハンドラインターフェースは、前記添付されたドキュメントのビジュアルプレビューを表示するための第１のｓｈｏｗメソッドを含むことを特徴とする請求項１０に記載のコンピュータ読取可能な記録媒体。
【請求項１５】
前記ロードされたプレビューアは、前記添付されたドキュメントのビジュアルプレビューを表示するための第２のｓｈｏｗメソッドを含むプレビューアインターフェースを含み、前記プレビューハンドラは、前記プレビューハンドラインターフェース上で前記第１のｓｈｏｗメソッドに対する呼出しの受信に応答して、前記プレビューアインターフェース上で前記第２のｓｈｏｗメソッドを呼び出すことを特徴とする請求項１４に記載のコンピュータ読取可能な記録媒体。
【請求項１６】
コンピュータ上にドキュメントプレビューを提供する、コンピュータに実装される方法であって、
前記コンピュータ上に実行中の電子メールクライアントアプリケーションにおいてプレビューホストのインターフェースを公開するステップであって、前記プレビューホストのインターフェースは、
前記コンピュータが備えるプレビューハンドラが、照会を前記電子メールクライアントアプリケーションに送信し、前記照会に対する応答を前記電子メールクライアントアプリケーションから受信するｇｅｔ  ｐｒｅｖｉｅｗｅｒメソッドであって、前記プレビューハンドラは、前記電子メールクライアントアプリケーションからの、電子メールメッセ
ージに添付されたドキュメントのビジュアルプレビューを生成する要求の受信に応答して、前記照会を送信して、前記要求は、前記添付されたドキュメントのファイルの拡張子に基づいて前記添付されたドキュメントのビジュアルプレビューを生成するために前記電子メールクライアントアプリケーションにより指定されるプレビューアを識別することを前記電子メールクライアントアプリケーションに要求するための、前記添付されたドキュメントのファイルの拡張子を含み、前記電子メールクライアントアプリケーションからの前記照会に対する応答は、前記電子メールクライアントアプリケーションが前記添付されたドキュメントのドキュメントタイプ用のプレビューアを指定する場合にプレビューアの識別子を含む、ｇｅｔ  ｐｒｅｖｉｅｗｅｒメソッドと、
前記ｇｅｔ  ｐｒｅｖｉｅｗｅｒメソッドがプレビューアの識別子を戻さない場合に前記プレビューハンドラが次の照会を前記電子メールクライアントアプリケーションに送信するｇｅｔ  ｐｒｅｖｉｅｗｅｒ  ｃｌａｓｓ  ｉｄｅｎｔｉｆｉｅｒメソッドであって、前記電子メールクライアントアプリケーションからの前記次の照会に対する応答は、前記電子メールクライアントアプリケーションが前記添付されたドキュメントのドキュメントタイプ用のプレビューアを指定しない場合にプレビューアクラス識別子を含み、
前記プレビューハンドラは、前記電子メールクライアントアプリケーションからの応答に基づいて個々に実行可能な複数のプレビューアから前記添付されたドキュメントのビジュアルプレビューを生成するために前記添付されたドキュメントのドキュメントタイプ用のプレビューアを識別し、
前記複数のプレビューアの各々は、特定のドキュメントタイプについてのドキュメントのプレビュー用のプレビューアとして前記プレビューハンドラにより登録され、
前記複数のプレビューアは、前記添付されたドキュメントのドキュメントタイプのドキュメントをプレビューするための少なくとも１つの登録されるプレビューアを含み、
前記電子メールクライアントアプリケーションに対する前記登録されるプレビューアは、前記添付されたドキュメントのビジュアルプレビューを提供することができ且つ前記電子メールクライアントアプリケーションにより開始することが可能な、ワードプロセッサアプリケーションプログラムおよびスプレッドシートアプリケーションプログラムのうちの少なくとも１つを含む、ｇｅｔ  ｐｒｅｖｉｅｗｅｒ  ｃｌａｓｓ  ｉｄｅｎｔｉｆｉｅｒメソッドと、
前記プレビューハンドラが前記電子メールクライアントアプリケーションによって提供される他のインターフェースへのポインタを取得するｇｅｔ  ｉｎｔｅｒｆａｃｅメソッドと、
前記プレビューハンドラが、ビジュアルプレビューすべき前記添付されたドキュメントがロードされていることを前記電子メールクライアントアプリケーションに通知するｄｏｎｅ  ｌｏａｄｉｎｇメソッドと
を含む、ステップと、
前記添付されたドキュメントのビジュアルプレビューを提供するために前記添付されたドキュメントのドキュメントタイプ用のプレビューアとして前記ワードプロセッサアプリケーションプログラムか前記スプレッドシートアプリケーションプログラムかを前記プレビューハンドラがロードするステップであって、前記ワードプロセッサアプリケーションプログラムまたは前記スプレッドシートアプリケーションプログラムは、ロードされると、前記添付されたドキュメントのドキュメントタイプの他のドキュメントのビジュアルプレビューを生成するために、ロードされたプレビューアとして前記電子メールクライアントアプリケーションにより指定されて、前記ロードされたプレビューアは、前記添付されたドキュメントのビジュアルプレビューにページの移動およびナビゲートを可能にするユーザ入力を受信するための１つまたは複数のインターフェースを提供する、ステップと
を備えたことを特徴とする方法。
【請求項１７】
前記プレビューハンドラにおいて前記プレビューハンドラのインターフェースを公開するステップであって、前記プレビューハンドラのインターフェースは、
前記プレビューハンドラを初期化するｉｎｉｔｉａｌｉｚｅメソッドと、
前記添付されたドキュメントのドキュメントタイプ用のプレビューアを識別するよう前記プレビューハンドラに指示して、ビジュアルプレビューすべき前記添付されたドキュメントを前記添付されたドキュメントのドキュメントタイプ用のプレビューアにロードするｌｏａｄメソッドと、
前記添付されたドキュメントのビジュアルプレビューを表示するｓｈｏｗメソッドと、
前記添付されたドキュメントのビジュアルプレビューが表示されたウィンドウが変化したことを前記プレビューハンドラに指示するｗｉｎｄｏｗ  ｃｈａｎｇｅｄメソッドと、
前記プレビューハンドラの動作を初期化しないｕｎｉｎｉｔｉａｌｉｚｅメソッドと
を含む、ステップ
をさらに備えたことを特徴とする請求項１６に記載の方法。
【請求項１８】
前記プレビューアにおいて前記プレビューアのインターフェースを公開するステップであって、前記プレビューアのインターフェースは、
ビジュアルプレビューすべき前記添付されたドキュメントをロードする命令を受信するｌｏａｄメソッドと、
前記添付されたドキュメントのビジュアルプレビューを表示する命令を表示するｓｈｏｗメソッドと、
前記添付されたドキュメントのビジュアルプレビューが表示される前記ウィンドウが変化したことの表示を受信するｗｉｎｄｏｗ  ｃｈａｎｇｅｄメソッドと
を含む、ステップ
をさらに備えたことを特徴とする請求項１７に記載の方法。
【請求項１９】
前記プレビューアインターフェース上の前記ｌｏａｄメソッドは、前記プレビューハンドラインターフェース上の前記ｌｏａｄメソッドに対する呼出しの受信に応答して、前記プレビューハンドラによって呼び出されることを特徴とする請求項１８に記載の方法。
【請求項２０】
前記プレビューアインターフェース上の前記ｓｈｏｗメソッドは、前記プレビューハンドラインターフェース上の前記ｓｈｏｗメソッドに対する呼出しの受信に応答して、前記プレビューハンドラによって呼び出されることを特徴とする請求項１８に記載の方法。
【請求項２１】
前記プレビューアインターフェース上の前記ｗｉｎｄｏｗ  ｃｈａｎｇｅｄメソッドは、前記プレビューハンドラインターフェース上の前記ｗｉｎｄｏｗ  ｃｈａｎｇｅｄメソッドに対する呼出しの受信に応答して、前記プレビューハンドラによって呼び出されることを特徴とする請求項１８に記載の方法。
【請求項２２】
前記ロードされたプレビューアに指示する要求を前記ロードされたプレビューアへ送信するステップは、
前記添付されたドキュメントのビジュアルプレビューが表示される間に受信されるユーザ入力に応答して、前記添付されたドキュメントを編集するために前記添付されたドキュメントのドキュメントタイプ用のプレビューアとしてロードされたワードプロセッサアプリケーションプログラムまたはスプレッドシートアプリケーションプログラムを前記電子メールクライアントアプリケーションが開始するステップと、
ユーザからの前記添付されたドキュメントに対する変更を前記プレビューハンドラが受信するステップと
を含むことを特徴とする請求項１に記載の方法。
【請求項２３】
コンピュータ上にドキュメントプレビューを提供する、コンピュータに実装される方法であって、
前記コンピュータ上に実行中の電子メールクライアントアプリケーションにより呼び出し可能なプレビューハンドラを中央演算処理装置が提供するステップであって、前記プレビューハンドラは、
前記電子メールクライアントアプリケーションから、電子メールメッセージに添付されたドキュメントのビジュアルプレビューを生成する要求を受信し、
前記添付されたドキュメントのファイルの拡張子を含んでいる照会を前記電子メールクライアントアプリケーションへ送信し、
前記照会に対する応答を前記電子メールクライアントアプリケーションから受信し、
前記電子メールクライアントアプリケーションから受信した照会に対する応答に基づいて個々に実行可能な複数のプレビューアから前記添付されたドキュメントのビジュアルプレビューを生成するために前記添付されたドキュメントのドキュメントタイプ用のプレビューアを識別し、
前記複数のプレビューアの各々は、特定のドキュメントタイプについてのドキュメントのプレビュー用のプレビューアとして前記プレビューハンドラにより登録され、
前記複数のプレビューアは、前記添付されたドキュメントのドキュメントタイプのドキュメントをプレビューするための少なくとも１つの登録されるプレビューアを含み、
前記電子メールクライアントアプリケーションに対する前記登録されるプレビューアは、前記添付されたドキュメントのビジュアルプレビューを提供することができ且つ前記電子メールクライアントアプリケーションにより開始することが可能な、ワードプロセッサアプリケーションプログラムおよびスプレッドシートアプリケーションプログラムのうちの少なくとも１つを含み、
前記添付されたドキュメントのビジュアルプレビューを提供するために前記添付されたドキュメントのドキュメントタイプ用のプレビューアとして前記ワードプロセッサアプリケーションプログラムまたは前記スプレッドシートアプリケーションプログラムをロードし、前記ワードプロセッサアプリケーションプログラムまたは前記スプレッドシートアプリケーションプログラムは、ロードされると、前記添付されたドキュメントのドキュメントタイプの他のドキュメントのビジュアルプレビューを生成するために、ロードされたプレビューアとして前記電子メールクライアントアプリケーションにより指定されて、前記ロードされたプレビューアは、前記添付されたドキュメントのビジュアルプレビューにページの移動およびナビゲートを可能にするユーザ入力を受信するための１つまたは複数のインターフェースを提供する、
ステップと、
前記添付されたドキュメントのビジュアルプレビューが表示される間に受信されるユーザ入力に応答して、前記添付されたドキュメントを編集するために前記添付されたドキュメントのドキュメントタイプ用のプレビューアとしてロードされたワードプロセッサアプリケーションプログラムまたはスプレッドシートアプリケーションプログラムを前記中央演算処理装置が開始するステップと
を備えたことを特徴とする方法。
【請求項２４】
レビュー状態で前記添付されたドキュメントのドキュメントタイプ用のプレビューアとしてロードされたワードプロセッサアプリケーションプログラムまたはスプレッドシートアプリケーションプログラムを前記中央演算処理装置が開始するステップをさらに備えたことを特徴とする請求項２３に記載の方法。
【請求項２５】
前記添付されたドキュメントに対する変更を前記中央演算処理装置が識別するステップをさらに備えたことを特徴とする請求項２４に記載の方法。
【請求項２６】
ユーザからの前記添付されたドキュメントに対する変更を前記中央演算処理装置が受信するステップをさらに備えたことを特徴とする請求項２３に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般には、コンピュータシステムに関し、より詳細には、ドキュメントプレビューを提供する方法、システムおよび装置に関する。
【背景技術】
【０００２】
現代のグラフィックオペレーティングシステムを有するコンピュータシステムを使用する際には、ドキュメントのプレビューを閲覧することがしばしば望ましい。ドキュメントプレビューとは、ドキュメントに関連するアプリケーションプログラムを用いてドキュメントがオープンされた場合に、ユーザが何を見るはずであるかについての模擬を行うドキュメントの読取り専用のレンダリングのことである。一部のアプリケーションプログラムにより、ユーザは、ドキュメントの静的イメージを閲覧できるようになるが、静的イメージは、ユーザがページを移動し、またはナビゲートすることができる真のプレビューではない。他のプログラムでは、ユーザが、ドキュメントに関連するアプリケーションプログラムを起動して、ドキュメントの内容を閲覧する必要がある。例えば、電子メール（「Ｅメール（ｅ−ｍａｉｌ）」）のクライアントアプリケーションプログラム内においては、電子メールのメッセージに添付された１つまたは複数のドキュメントのプレビューを閲覧することが時として望ましいことがある。しかし、現行の電子メールのアプリケーションプログラムでは、ユーザは、添付されたドキュメントに関連するアプリケーションを起動してドキュメントを閲覧する必要がある。このプロセスは、ユーザにとって時間がかかり、また苛立たしい場合がある。
【０００３】
様々なコンテキストにおいて、ドキュメントプレビューを閲覧することが望ましいこともある。例えば、前述の電子メールのクライアントアプリケーションプログラムなどのアプリケーションプログラムのコンテキストの中からドキュメントプレビューを閲覧することが望ましいこともある。また、グラフィックデスクトップシェル（ｇｒａｐｈｉｃａｌｄｅｓｋｔｏｐ ｓｈｅｌｌ）などのオペレーティングシステムプログラムのコンテキストの中からドキュメントプレビューを閲覧することが望ましいこともある。例えば、ユーザが、シェルを利用して、ドキュメントを含むフォルダへとナビゲートするとき、ユーザは、関連するアプリケーションプログラムを起動する必要なしに、ドキュメントのプレビューを速やかに閲覧することが望ましいこともある。同様に、ファイルを開くために利用されるダイアログボックスのコンテキストにおいてドキュメントプレビューを速やかに閲覧することが望ましいこともある。このようにして、ユーザは、ドキュメントに関連するアプリケーションプログラムを開く必要なしに、ドキュメントプレビューを閲覧して、ドキュメントの内容を速やかに調べることができる。しかし、現行のシステムを利用してドキュメントをプレビューするためには、各アプリケーションプログラムおよびオペレーティングシステムは、ドキュメントをプレビューするためにそれら自体のコードを実装する必要がある。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
コンピュータシステムの応答性に悪影響を及ぼすことなく様々なコンテキストの中でドキュメントを速やかにプレビューするための機構を提供することが望ましいこともある。さらに、ドキュメントをプレビューする際に出合うどのようなエラーも、ホストオペレーティングシステムまたはアプリケーションの性能または安定性に影響を与えるべきではない。本発明の様々な実施形態が構成されてきたのは、これらおよび他の考察に関連している。
【課題を解決するための手段】
【０００５】
本発明の実施形態によれば、以上および他の問題は、ドキュメントプレビューを提供するための方法、システム、および装置によって解決される。本発明の実施形態では、オペレーティングシステムプログラムおよびアプリケーションプログラムが利用して、ドキュメントに関連するアプリケーションプログラムを起動することなしにドキュメントの速やかなプレビューを提供することができる共通の機構が提供される。本発明の様々な実施形態が提供する機構により、プレビューは、ページを移動し、ナビゲートすることができるようになる。これらの実施形態では、コンピュータシステムの性能または安定性に厳しい影響を与えることがないプレビュー機構も提供される。
【０００６】
本発明の一態様によれば、ドキュメントプレビューを生成するための方法が提供される。この方法によれば、ドキュメントのプレビューを表示することを望むホストアプリケーションが呼び出すことができるプレビューハンドラインターフェース（ｐｒｅｖｉｅｗｈａｎｄｌｅｒ ｉｎｔｅｒｆａｃｅ）を示すプレビューハンドラが提供される。例えば、電子メールクライアントアプリケーションは、ホストアプリケーションを含んでおり、プレビューハンドラインターフェースを呼び出して、電子メールメッセージに添付されたドキュメントのプレビューを表示することができる。プレビューハンドラインターフェースを介して、プレビューハンドラは、プレビューア（ｐｒｅｖｉｅｗｅｒ）を識別して、ドキュメントのプレビューを表示し、プレビューアをロードし、プレビューアに指示してプレビューを構成し表示するように動作可能である。
【０００７】
プレビューを構成し表示するために、ホストアプリケーションは、要求を用いてプレビューハンドラインターフェースを呼び出して、プレビューすべきドキュメントをロードすることができる。要求は、ドキュメントへのパスと、プレビューを表示すべきウィンドウへのハンドルを含むことができる。要求を受け取ることに応答して、プレビューハンドラは、その適切なプレビューアを識別して、ドキュメントについてのプレビューを生成することができる。プレビューアは、ホストアプリケーションが提供するオプションのインターフェースに照会することにより、登録済みのプレビューアを求めてレジストリを検索することにより、または他の手段によって、識別することができる。
【０００８】
プレビューアがそのドキュメントタイプについて識別された後に、プレビューハンドラは、プレビューアが示すインターフェースを呼び出して、プレビューアに指示してドキュメントをロードすることができる。プレビューハンドラはまた、プレビューアインターフェースを呼び出して、ホストアプリケーションが識別するウィンドウのサブウィンドウ内のドキュメントのプレビューを示すことができる。プレビューアを別のプロセス空間で実行して、ホストアプリケーションの性能に影響を与えないようにすることもできる。同様な理由から、プレビューハンドラとプレビューアの間の通信は、バックグラウンドスレッド（ｂａｃｋｇｒｏｕｎｄｔｈｒｅａｄ）上で行うこともできる。
【０００９】
プレビューアが使用するためのホストアプリケーションにより、いくつかのオプションのインターフェースを実装することができる。特に、ホストアプリケーションにより、ビーコンインターフェース（ｂｅａｃｏｎｉｎｇｉｎｔｅｒｆａｃｅ）を提供することができ、インターフェースを介して、プレビューアは、ドキュメントのプレビューを生成するために必要なサポートファイルをロードする許可を求めてホストアプリケーションに照会することができる。ホストアプリケーションにより、進行インターフェース（ｐｒｏｇｒｅｓｓｉｎｔｅｒｆａｃｅ）を実装することができ、インターフェースを介してプレビューアは、ドキュメントのローディングおよびプレビューの生成の進行などの進行インジケータを提供することができる。またプレビューアが、ドキュメントのプレビューを生成するために必要な追加のファイルの位置を見出すためのインターフェースを取得することができるようにするインターフェースも提供することができる。
【００１０】
本発明の実施形態は、コンピュータプロセス、コンピューティングシステムとして実装することもでき、またコンピュータプログラム製品やコンピュータ読取可能な媒体などの製品として実装することもできる。コンピュータプログラム製品は、コンピュータシステムによって読取り可能な、コンピュータプロセスを実行するための命令のコンピュータプログラムを符号化したコンピュータ記憶媒体とすることができる。コンピュータプログラム製品はまた、コンピューティングシステムによって読取り可能な、コンピュータプロセスを実行するための命令のコンピュータプログラムを符号化した、搬送波上の伝搬信号とすることもできる。
【００１１】
本発明を特徴づける、これらおよび他の様々な特徴、ならびに利点については、以下の詳細な説明を読み、その関連する図面を検討することから明らかになろう。
【図面の簡単な説明】
【００１２】
【図１】本発明の様々な実施形態に関して、利用されおよび提供されるコンピュータシステムを例示するコンピュータシステムのアーキテクチャの図である。
【図２】本発明の実施形態によって提供される様々なソフトウェアコンポーネントおよびインターフェースの態様を例示するソフトウェアのアーキテクチャの図である。
【図３】本発明の実施形態に従って提供される、ドキュメントプレビューを提供するための様々なソフトウェアコンポーネントの動作を示すフロー図である。
【図４】本発明の実施形態に従って提供される、ドキュメントプレビューを提供するための様々なソフトウェアコンポーネントの動作を示すフロー図である。
【図５】本発明の実施形態に従って提供される、ドキュメントプレビューを提供するための様々なソフトウェアコンポーネントの動作を示すフロー図である。
【発明を実施するための形態】
【００１３】
次に図面を参照して、本発明の様々な態様について説明する。図面において、同一の参照符号は、同一の要素を示す。特に、図１およびその対応する説明では、本発明の実施形態を実装することができる適切なコンピューティング環境の簡単な全般的な説明を提供することを意図している。本発明では、パーソナルコンピュータ上のオペレーティングシステム上で実行されるプログラムモジュールに関連して実行されるプログラムモジュールの一般的な文脈で説明しているが、本発明は、他のタイプのコンピュータシステムおよびプログラムモジュールと組み合わせて実装することもできることが、当業者には理解されよう。
【００１４】
一般的に、プログラムモジュールは、特定のタスクを実施し、特定の抽象データ型を実装するルーチン、プログラム、コンポーネント、データ構造および他のタイプの構造体を含んでいる。さらに、本発明は、ハンドヘルド装置、マルチプロセッサシステム、マイクロプロセッサベースまたはプログラム可能な家庭用電化製品、ミニコンピュータ、メインフレームコンピュータなどを含めて、他のコンピュータシステムコンフィギュレーションを用いて実行することもできることが当業者には理解されよう。本発明はまた、タスクが、通信ネットワークを介してリンクされたリモート処理装置によって実施される分散コンピューティング環境で実行することもできる。分散コンピューティング環境においては、プログラムモジュールは、ローカルとリモートとの両方のメモリ記憶装置において配置することができる。
【００１５】
次に図１を参照して、本発明の様々な実施形態において利用されるコンピュータ２の例示のコンピュータアーキテクチャについて説明することにする。図１に示すコンピュータアーキテクチャは、中央演算処理装置５（「ＣＰＵ」）、ランダムアクセスメモリ９（「ＲＡＭ」）および読取り専用メモリ１１（「ＲＯＭ」）を含むシステムメモリ７、ならびにメモリをＣＰＵ５に結合するシステムバス１２を含む従来のデスクトップコンピュータまたはラップトップコンピュータを示している。起動時などコンピュータ内のエレメント間で情報を転送する助けをする基本ルーチンを含む基本入出力システムは、ＲＯＭ１１に記憶される。コンピュータ２は、以下でさらに詳細に説明しているオペレーティングシステム１６、アプリケーションプログラム、および他のプログラムモジュールを記憶するための主記憶装置１４をさらに含んでいる。
【００１６】
主記憶装置１４は、バス１２に接続された主記憶装置コントローラ（図示せず）を介してＣＰＵ５に接続される。主記憶装置１４およびその関連するコンピュータ読取可能な媒体は、コンピュータ２のための不揮発性記憶装置を提供する。本明細書に含まれるコンピュータ読取可能な媒体の説明は、ハードディスクやＣＤ−ＲＯＭドライブなどの主記憶装置のことを意味しているが、コンピュータ読取可能な媒体は、コンピュータ２からアクセスすることができるどのような使用可能な媒体とすることもできることを当業者には理解されたい。
【００１７】
実施例として、限定するものではないが、コンピュータ読取可能な媒体は、コンピュータ記憶媒体および通信媒体を含むことができる。コンピュータ記憶媒体は、コンピュータ読取可能な命令、データ構造、プログラムモジュール、他のデータなどの情報の記憶のためのあらゆる方法または技術で実装される揮発性媒体および不揮発性媒体、着脱可能媒体および着脱不能媒体を含んでいる。コンピュータ記憶媒体は、それだけには限定されないが、ＲＡＭ、ＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたは他のソリッドステートメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（「ＤＶＤ」）または他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶装置、あるいは所望の情報を記憶するために使用することができ、コンピュータ２によってアクセスすることができる他のあらゆる媒体を含んでいる。
【００１８】
本発明の様々な実施形態によれば、コンピュータ２は、インターネットなどのネットワーク１８を介したリモートコンピュータに対する論理接続を使用してネットワーク環境で動作することができる。コンピュータ２は、バス１２に接続されるネットワークインターフェースユニット２０を介してネットワーク１８に接続することができる。ネットワークインターフェースユニット２０を利用して、他のタイプのネットワークおよびリモートコンピュータシステムに接続することもできることを理解されたい。コンピュータ２は、（図１には示していない）キーボード、マウス、または電子スタイラスを含めて、いくつかの他の装置からの入力を受け取り、処理するための入出力コントローラ２２も含むことができる。同様に、入出力コントローラ２２は、ディスプレイスクリーン、プリンタ、または他のタイプの出力装置に対して出力を提供することもできる。
【００１９】
以上で簡単に述べたように、ワシントン州レッドモンド市在の本願発明の特許出願人からのＷＩＮＤＯＷＳ（登録商標）ＸＰオペレーティングシステムなど、ネットワーク化されたパーソナルコンピュータの動作を制御するための適切なオペレーティングシステム１６を含めて、いくつかのプログラムモジュールおよびデータファイルをコンピュータ２の主記憶装置１４およびＲＡＭ９に記憶することができる。主記憶装置１４およびＲＡＭ９は、１つまたは複数のプログラムモジュールを記憶することもできる。特に、主記憶装置１４およびＲＡＭ９は、ホストアプリケーション２６を記憶することもできる。ホストアプリケーション２６は、ユーザに対してドキュメント３２のプレビューを提供することを望む、あらゆるタイプのプログラムを含んでいる。本発明の実施形態によれば、ホストアプリケーション２６は、マイクロソフトコーポレーションからのＯＵＴＬＯＯＫパーソナル情報マネージャアプリケーションプログラムを含んでいる。本発明の様々な実施形態を介して、電子メールメッセージに添付されたドキュメントについてプレビューを生成し、表示することができる。しかし、ホストアプリケーション２６は、ワードプロセッサアプリケーションプログラム、スプレッドシートアプリケーションプログラム、プレゼンテーションアプリケーションプログラム、オペレーティングシステム１６、または他のあらゆるタイプのプログラムを含むことができることを理解されたい。これらのプログラムでは、例えば、ファイルオープンダイアログボックスにおいて、オペレーティングシステムシェル内に、または他のあらゆるロケーションにおけるドキュメントプレビューを提供するために、本明細書で説明している機構を利用することができる。
【００２０】
主記憶装置１４およびＲＡＭ９は、プレビューハンドラプログラム２８を記憶するようにも動作可能である。プレビューハンドラ２８は、ドキュメントのプレビューを提供するための機構である。以下でより詳細に説明しているように、プレビューハンドラ２８は、ホストアプリケーション２６などのアプリケーションがドキュメントプレビューを生成するために呼び出すことができるインターフェースを実装する。ドキュメントプレビューの用意については、プレビューハンドラ２８が提供するインターフェースによってホストアプリケーション２６から抽出される。
【００２１】
本発明の実施形態によれば、プレビューハンドラ２８は、１つまたは複数のプレビューアプログラム３０を利用して、ドキュメント３２の実際のプレビューを生成することができる。プレビューアは、特定のタイプのドキュメントについてのプレビューアとして、プレビューハンドラ２８、ホストアプリケーション２６、またはオペレーティングシステム１６に登録することができる。登録済みのプレビューアに関する情報は、登録済みのプレビューアの識別子およびロケーションに関して、プレビューハンドラ２８、ホストアプリケーション２６、またはオペレーティングシステム１６が保持することができる。オペレーティングシステム１６は、情報をレジストリ２４に記憶することができる。ホストアプリケーション２６は、様々なタイプのドキュメントについてのプレビューアとしてそれ自体を登録することもできること理解されたい。ホストアプリケーション２６、プレビューハンドラ２８、およびプレビューア３０の動作に関するさらなる詳細については、図２〜５に関して以下で説明することにする。
【００２２】
次に図２を参照して、本発明の実施形態が利用する様々なソフトウェアコンポーネントに関して、追加の詳細を提供することにする。図２に示すように、ホストアプリケーション２６は、プレビューハンドラ２８が実装するプレビューハンドラインターフェース４２の使用を介してプレビューハンドラ２８と情報をやりとりする。次にプレビューハンドラ２８は、ホストアプリケーションが実装するプレビューホストインターフェース４０を経由してホストアプリケーションと情報をやりとりすることができる。プレビューハンドラ２８は、プレビューアインターフェース５０の使用を介してこれらのプレビューア３０Ａ〜３０Ｄと情報をやりとりすることもできる。ホストアプリケーション２６は、プレビューア３０Ａ〜３０Ｃに関して本明細書で説明している方法と同様な方法で、プレビューア３０Ｄを実装し、プレビューハンドラ２８と情報をやりとりすることができることを理解されたい。プレビューハンドラ２８は、レジストリ２４から値を検索して、適切なプレビューアおよびそのロケーションを識別することができることも理解されたい。
【００２３】
以上で簡単に説明したように、プレビューア３０Ａ〜３０Ｃのそれぞれは、１つまたは複数のドキュメントタイプについてのプレビューを生成するように動作可能である。ドキュメント３２Ａ〜３２Ｃは、一般的に主記憶装置１４上のプレビューア３０Ａ〜３０Ｃからアクセス可能なロケーションに記憶される。ロードする要求がプレビューハンドラ２８によって発行されるときに、ロケーションは、プレビューア３０Ａ〜３０Ｃに渡される。プロセスについては、以下でさらに詳細に説明することにする。
【００２４】
プレビューア３０Ａ〜３０Ｃは、１つまたは複数のオプションのインターフェースの使用を介して、ホストアプリケーション２６と直接に情報をやりとりすることができる。特に、進行インターフェース４４を利用して、ホストアプリケーション２６に対して進行インジケータを提供することができる。次いで進行インジケータをユーザに対して表示して、例えば、プレビュー表示の進行のグラフィック表示を提供することができる。ビーコンインターフェース４６をプレビューア３０Ａ〜３０Ｃが利用して、ホストアプリケーション２６からドキュメントに関連するサポートファイルをロードする許可を取得することができる。例えば、プレビューすべきドキュメントが、ハイパーテキストマークアップ言語（「ＨＴＭＬ」）ドキュメントである場合、グラフィックスおよび他の参照ファイルをロードして、プレビューを提供する必要があることもある。参照ファイルをロードするのに先立って、プレビューアは、ホストアプリケーション２６からの許可を要求して、ビーコンインターフェース４６を介してそれを行うことができる。ＩＵｎｋｎｏｗｎインターフェース４８をプレビューア３０Ａ〜３０Ｃが利用して、ドキュメントのプレビューを生成するために必要なサポートファイルの位置を見出すなど、様々なファンクションを実施するためのインターフェースを提供することができる。当業者には知られているように、ＩＵｎｋｎｏｗｎインターフェース４８は、所与のオブジェクト上で他のインターフェースに対するポインタをクライアントに取得させる。
【００２５】
プレビューを提供するために、ホストアプリケーション２６は、ウィンドウ５２に対するハンドルをプレビューハンドラ２８に渡す。次いでプレビューハンドラは、ホストアプリケーションが作成するウィンドウの内側に子ウィンドウ（またはサブウィンドウ）を作成する。次いで、プレビューアが識別されインスタンス化されるときに、子ウィンドウに対するハンドルは、適切なプレビューア３０Ａ〜３０Ｃに渡される。ウィンドウ内のプレビュー５６をレンダリングするために、プレビューアは、ウィンドウ５２内にサブウィンドウ５４を作成する。プレビューを指示するユーザ入力は、プレビューアが受け取ることになるので、プレビューアは、あるタイプの入力を処理し、他のタイプの入力をプレビューハンドラ２８へと渡し、その後、ホストアプリケーション２６に渡すように動作可能とすることができる。このようにして、実際にはホストアプリケーション２６のために意図される、プレビューアが受け取る入力を、ホストアプリケーション２６が処理することもできる。
【００２６】
依然として図２を参照して、プレビューハンドラインターフェース４２、プレビューホストインターフェース４０、およびプレビューアインターフェース５０に関する追加の詳細を提供することにする。プレビューハンドラインターフェース４２は、ホストアプリケーション２６がプレビューハンドラ２８のインスタンスを作成した後に呼び出される「ｉｎｉｔｉａｌｉｚｅ（初期化）」メソッドを提供する。ｉｎｉｔｉａｌｉｚｅメソッドにより、プレビューハンドラ２８は、ウィンドウ５２上でそれ自体を初期化できるようになる。ｉｎｉｔｉａｌｉｚｅメソッドに対して渡されるパラメータは、ホストアプリケーション２６のインスタンス、プレビューホストインターフェース４０に対するポインタ、およびプレビューハンドラ２８の動作を定義するために利用することができる１つまたは複数のフラグである。インターフェース４２上で、プレビューをレンダリングすべきウィンドウ５２に対するハンドルを獲得するｓｅｔｗｉｎｄｏｗ（ウィンドウ設定）メソッドを提供することもできる。
【００２７】
プレビューハンドラインターフェース４２は、「ｌｏａｄ（ロード）」メソッドも提供する。ユーザが、プレビューしたいと思うファイルまたは１組のファイルを選択するときなど、ドキュメントプレビューを生成する要求を受け取るときには、ｌｏａｄメソッドが、ホストアプリケーション２６によって呼び出される。メソッドが呼び出されるときに、プレビューハンドラ２８は、プレビューする１つまたは複数のファイル名を保存し、ファイルをプレビューするバックグラウンドスレッドを呼び出す。次いで、バックグラウンドスレッドは、プレビューするファイルが実際に存在することを確認し、ファイルについての拡張子を取得し、拡張子についてプレビューア３０Ａ〜３０Ｃの位置を見出そうと試みる。プレビューアの位置が見出されると、プレビューアを利用してファイルをプレビューする。ｌｏａｄメソッドは、プレビューするファイルに至るフルパスをパラメータとして獲得する。ｌｏａｄメソッドの動作に関するさらなる詳細については、以下で提供することにする。
【００２８】
プレビューハンドラインターフェース４２は、「ｓｈｏｗ（表示）」メソッドも含んでいる。ｌｏａｄメソッドに対する呼出しにより、ファイルがプレビューアに正常にロードされた後に、ｓｈｏｗメソッドは、ホストアプリケーション２６によって呼び出される。ホストアプリケーション２６がプレビューへとファイルをレンダリングしたいと思う場合に、ホストアプリケーションは、ｓｈｏｗメソッドを呼び出す。プレビューハンドラインターフェース４２は、「ｓｈｏｗｅｒｒｏｒ ｍｅｓｓａｇｅ（エラーメッセージ表示）」メソッドも含んでいる。ｌｏａｄメソッドまたはｓｈｏｗメソッドが、エラーコードを返しており、ホストアプリケーション２６は、プレビューハンドラ２８が、コードについてのエラーメッセージを表示することを望む場合に、ｓｈｏｗｅｒｒｏｒ ｍｅｓｓａｇｅメソッドは、呼び出される。ｓｈｏｗｅｒｒｏｒ ｍｅｓｓａｇｅメソッドは、ロードし、またはパラメーラとして示すことができなかったエラーコードおよびファイルのファイル名を獲得する。
【００２９】
プレビューハンドラインターフェース４２は、「ｗｉｎｄｏｗ ｃｈａｎｇｅｄ（ウィンドウ変化）」メソッドも含んでいる。ｓｅｔ ｗｉｎｄｏｗメソッドに渡されたウィンドウ５２が何らかの方法で変化するときにメソッドは呼び出される。例えば、ウィンドウ５２のサイズが変化する場合に、ホストアプリケーション２６は、メソッドを呼び出して、プレビューハンドラ２８に変化について通知することができる。次いで、プレビューハンドラ２８は、適切なプレビューアを呼び出して、サブウィンドウ５２およびプレビュー５６のサイズをアップデートすることができる。プレビューハンドラインターフェース４２はまた、プレビューすべき追加のファイルが残っていないときに呼び出すことができる「ｕｎｉｎｉｔｉａｌｉｚｅ（初期化しない）」メソッドも含んでいる。ｕｎｉｎｉｔｉａｌｉｚｅメソッドは、プレビューハンドラ２８を初期化しない（ｕｎｉｎｉｔｉａｌｉｚｅ）。
【００３０】
プレビューホストインターフェース４０は、プレビューハンドラ２８がホストアプリケーション２６にとって使用可能となり得るリソースを使用できるようにするためにホストアプリケーション２６が実装するオプションのコールバックインターフェースである。例えば、ホストアプリケーション２６が、特定のドキュメントタイプについてのプレビューアをすでにロードしている場合、ホストアプリケーション２６が、プレビューハンドラ２８にプレビューアそれ自体をロードするように試みさせる代わりに、インターフェースをロード済みのプレビューアに渡すことが有用となり得る。
【００３１】
プレビューホストインターフェース４０は、「ｇｅｔ ｐｒｅｖｉｅｗｅｒ（プレビューア獲得）」メソッドを提供する。プレビューハンドラ２８が、あるファイルについてのプレビューアの位置を見出そうと試みているときに、メソッドは、プレビューハンドラ２８によって呼び出すことができる。ｇｅｔｐｒｅｖｉｅｗｅｒメソッドを介して、プレビューハンドラ２８は、ファイルタイプについてのプレビューアの識別子についてホストアプリケーション２６に照会することができる。ｇｅｔｐｒｅｖｉｅｗｅｒメソッドは、プレビューすべきファイルの拡張子を入力として獲得し、ファイルタイプについてのプレビューアの識別子を示す出力パラメータ、またはＮＵＬＬを提供する。メソッドは、例えばホストアプリケーション２６がすでにプレビューアをロードし終わっているとき、またはホストアプリケーション２６がプレビューア３０Ｄそれ自体を提供するときに有用となり得る。
【００３２】
ｇｅｔ ｐｒｅｖｉｅｗｅｒメソッドがプレビューアを返さない場合には、プレビューハンドラ２８は、プレビューホストインターフェース４０が提供する「ｇｅｔｐｒｅｖｉｅｗｅｒ ｃｌａｓｓ ＩＤ（プレビューアクラスＩＤ獲得）」メソッドを利用することができる。ｇｅｔ ｐｒｅｖｉｅｗｅｒｃｌａｓｓ ＩＤメソッドを介して、ホストアプリケーション２６は、ホストアプリケーションが所与の拡張子の特定のファイルについて使用したいと望むあらゆるプレビューアについてのクラスＩＤをプレビューハンドラ２８に対して渡すことができる。例えば、ホストアプリケーション２６は、特定の拡張マークアップ言語（「ＸＭＬ」）ファイルでは特定のプレビューアを利用することを指定したいと思うこともある。ｇｅｔｐｒｅｖｉｅｗｅｒ ｃｌａｓｓ ＩＤメソッドは、プレビューすべきファイルの拡張子を入力として獲得し、ファイルタイプについてのプレビューアのクラスＩＤを示す出力パラメータ、またはＮＵＬＬを提供する。
【００３３】
プレビューホストインターフェース４０はまた、「ｇｅｔ ｉｎｔｅｒｆａｃｅ（インターフェース獲得）」メソッドも提供する。プレビューハンドラ２８が、ファイルをロードするように指示されるとき、プレビューハンドラは、ロードおよびショーに使用するために、プレビューアに渡すために、ビーコンインターフェース４６、進行インターフェース４４、およびＩＵｎｋｎｏｗｎインターフェース４８に対するポインタを獲得しようと試みる。ｇｅｔｉｎｔｅｒｆａｃｅメソッドは、目的のために利用される。ｇｅｔ ｉｎｔｅｒｆａｃｅメソッドは、要求されているインターフェースの識別子をパラメータとして獲得し、それが返される場合には、要求されたインターフェースに対するポインタを出力パラメータとして返す。
【００３４】
プレビューホストインターフェース４０はまた、「ｄｏｎｅ ｌｏａｄｉｎｇ（ローディング完了）」メソッドも提供する。プレビューアにファイルのローディングが行われるときに、メソッドを呼び出して、ホストアプリケーション２６に次のステップを取り込むことができることを知らせることができる。例えば、ｄｏｎｅｌｏａｄｉｎｇメソッドに対する呼出しを受け取ることに応答して、ホストアプリケーション２６は、プレビューハンドラインターフェース４２上でｓｈｏｗメソッドを呼び出すことができる。代わりに、ドキュメントをロードすることができなかった場合、ｄｏｎｅｌｏａｄｉｎｇメソッドは、エラーメッセージと共に呼び出すことができる。この場合には、ホストアプリケーション２６は、プレビューハンドラインターフェース４２上で「ｓｈｏｗｅｒｒｏｒ ｍｅｓｓａｇｅ」メソッドを呼び出すことができる。
【００３５】
プレビューアインターフェース５０は、プレビューア３０Ａ〜３０Ｄが実装するベースインターフェースである。インターフェースを実装することにより、プレビューアを呼び出して、ファイルをロードし、ファイルをサブウィンドウにレンダリングし、必要に応じてドキュメント内ナビゲーションを提供し、プレビューが完了したときにファイルをロードしない（ｕｎｌｏａｄ）ことができる。プレビューアは、バックグラウンドスレッド上で呼び出すことができ、ユーザがプレビュー上で待っていることがあるので、できるだけ速くロードしレンダリングするようにも試みるべきである。
【００３６】
プレビューアインターフェース５０は、特定のファイル上でプレビューアを初期化するために呼び出される「ｌｏａｄ」メソッドを見せている。ｌｏａｄメソッドは、プレビューすべきドキュメントへのパス、ならびにビーコンインターフェース４６、進行インターフェース４４、およびＩＵｎｋｎｏｗｎインターフェース４８に対するオプションのポインタをパラメータとして獲得する。これらのインターフェースは、前述の方法で利用することができる。
【００３７】
ｌｏａｄメソッドに対する呼出しに応答してドキュメントをロードする際に、プレビューアは、進行ダイアログなどのどのようなユーザインターフェースも呼び出すべきではない。ドキュメントは、書込みについてロックされるべきではなく、プレビューアは、決してドキュメントを変更またはアップデートすべきではない。プレビューアはまた、ドキュメントがパスワード保護されている場合には、静かに機能しなくなるべきである。プレビューアはまた、ドキュメントに含まれるどのようなマクロも実行すべきではない。プレビューアはまた、ｌｏａｄメソッドを一度呼び出すことができ、異なる可能性のあるウィンドウを用いて（以下で説明する）「ｓｈｏｗ」メソッドを、何度も呼び出すことができるように設計すべきである。ｌｏａｄメソッドは、レンダリングすべきファイルを準備するに際して、含まれるどのような時間のかかる作業でも実施すべきであり、したがって、「ｓｈｏｗ」メソッドは、できる限り高速にすることが可能である。ユーザがプレビューをキャンセルしようと試みる場合には、ｌｏａｄメソッドは、ファイルのロードを停止し、できる限り速やかに戻るべきである。
【００３８】
以上で簡潔に説明したように、プレビューアインターフェース５０もまた、「ｓｈｏｗ」メソッドを見せることができる。メソッドを呼び出して、プレビューアに、ｌｏａｄメソッドに渡されたドキュメントを指定されたウィンドウ内へとレンダリングさせる。これは、またファイルをウィンドウに対してレンダリングする必要なしに、ビューアがファイルをロードできるようにするｌｏａｄメソッドとは異なるメソッドである。ｓｈｏｗメソッドは、プレビューをレンダリングすべきウィンドウに対するハンドルをパラメータとして獲得する。
【００３９】
プレビューアインターフェース５０は、「ｗｉｎｄｏｗ ｃｈａｎｇｅｄ」メソッドも見せている。メソッドを呼び出して、プレビューアが現在使用しているウィンドウが、何らかの形で変化していることをプレビューアに知らせる。メソッドは、一般的にプレビューハンドラインターフェース４２上におけるｗｉｎｄｏｗｃｈａｎｇｅｄメソッドに対する呼出しに応答して呼び出される。プレビューアインターフェース５０はまた、「ｕｎｌｏａｄ（ロードしない）」メソッドも示す。メソッドを呼び出して、プレビューアがｌｏａｄメソッドを介してロードされたファイルをロードしないべきであることをプレビューアに知らせる。プレビューハンドラインターフェース４２、プレビューホストインターフェース、およびプレビューアインターフェース５０が提供するこれらの様々なメソッドの用途および動作に関するさらなる詳細については、図３〜５を参照して以下でさらに詳細に説明することにする。
【００４０】
本発明の実施形態によれば、プレビューハンドラ２８はまた、ＩＳｅｒｖｉｃｅＰｒｏｖｉｄｅｒインターフェース５１またはＩＯｌｅ ＣｏｍｍａｎｄＴａｒｇｅｔインターフェース５３もサポートすることができる。インターフェース５１は、コンポーネントが無関係の機能を見せることができるようにする既存のインターフェースである。インターフェース５１を介して、ホストアプリケーション２６は、現行のプレビューアに、あるタイプの機能をプレビューアがサポートするかどうかについて照会することができる。インターフェース５３は、呼出し元（ホスト２６）が、クライアント（プレビューア）に対してコマンドを発行できるようにする別の既存のインターフェースである。プレビューハンドラ２８は、現行のプレビューアに対するパススルー（ｐａｓｓ−ｔｈｒｏｕｇｈ）としてインターフェースを実装する。
【００４１】
次に図３を参照して、ドキュメントプレビューを提供するためのプロセスを示す例示のルーチン３００について説明することにする。本明細書で提示されるこれらのルーチンの説明を読むに際して、本発明の様々な実施形態の論理的な動作は、（１）コンピューティングシステム上で実行されるコンピュータ実装された動作シーケンスもしくはプログラムモジュール、および／または（２）コンピューティングシステム内の相互接続されたマシン論理回路もしくは回路モジュールとして実装されることを理解されたい。実装については、本発明を実装するコンピューティングシステムの性能要件に依存した選択の問題である。したがって、図３〜５に示す論理的な動作、および本明細書で説明している本発明の実施形態を作成することについては、動作、構造装置、動作またはモジュールと様々に呼ばれる。これらの動作、構造装置、動作およびモジュールは、本明細書に添付される特許請求の範囲内に列挙されるように、本発明の趣旨および範囲を逸脱することなく、ソフトウェア、ファームウェア、専用デジタルロジック、およびこれらのあらゆる組合せの形で実装することができることが、当業者には理解されよう。
【００４２】
ルーチン３００は、動作３０２から開始され、ここでは、１つまたは複数のドキュメントのプレビューを生成する要求を受け取っているかどうかについての決定が行われる。かかる要求は、例えば、ユーザが添付された１つまたは複数のドキュメントを有する電子メールメッセージを選択することによって行うことができる。代わりに、かかる要求については、オペレーティングシステムまたは他のタイプのプログラムによって、プログラム的に行うこともできる。プレビュー要求を受け取っていない場合、ルーチン３００は、動作３０２に戻り、ここでかかる別の決定が行われる。要求を受け取っている場合には、ルーチン３００は、動作３０２から動作３０４へと継続される。
【００４３】
動作３０４において、ホストアプリケーション２６は、プレビューハンドラ２８のインスタンスを作成する。次いで、ルーチン３００は、動作３０６へと継続され、ここで、ホストアプリケーション２６は、プレビューハンドラインターフェース４２上で、ｉｎｉｔｉａｌｉｚｅメソッドを呼び出す。ｉｎｉｔｉａｌｉｚｅメソッドに対する呼出しを受け取ることに応答して、プレビューハンドラ２８は、前述の方法でそれ自体を初期化する。ｓｅｔｗｉｎｄｏｗメソッドを、プレビューを生成すべきウィンドウに対するハンドルを用いて呼び出すこともできる。
【００４４】
動作３０６から、ルーチン３００は、動作３０８へと継続され、ここでホストアプリケーション２６は、プレビューハンドラインターフェース４２上でｌｏａｄメソッドを呼び出す。ｌｏａｄメソッドに対する呼出しを受け取ることに応答して、プレビューハンドラ２８は、プレビューすべき特定のタイプのドキュメントについてのプレビューアを識別し、プレビューアをロードし、プレビューアに指示してドキュメントをロードするように試みる。このプロセスは、動作３１０において行われる。プレビューアの位置を見出し、ドキュメントをロードするための例示のルーチン４００について、図４を参照して以下で説明することにする。
【００４５】
動作３１０から、ルーチン３００は、動作３１２へと継続され、ここでは、プレビューアが識別され、指定済みのドキュメントをロードすることができたかどうかについての決定が行われる。プレビューアが、ドキュメントをロードすることができなかった場合、ルーチン３００は、動作３１６へと分岐し、ここでは、エラーメッセージを用いて、プレビューホストインターフェース４０上でｄｏｎｅｌｏａｄｉｎｇメソッドに対する呼出しによって、エラーメッセージがホストアプリケーション２６に対して戻される。かかるエラーに応答して、ホストアプリケーション２６は、プレビューハンドラインターフェース４２上でｓｈｏｗｅｒｒｏｒ ｍｅｓｓａｇｅメソッドを呼び出すことができる。動作３１６から、ルーチン３００は、動作３１８へと継続され、ここでルーチン３００は、終了する。
【００４６】
動作３１２において、プレビューアがドキュメントをロードすることができたと決定される場合には、ルーチン３００は、動作３１４へと継続され、ここで、成功メッセージを用いてプレビューホストインターフェース４０上でｄｏｎｅｌｏａｄｉｎｇメソッドを呼び出すことができる。かかるメッセージを受け取ることに応答して、ホストアプリケーション２６は、プレビューハンドラインターフェース４２上でｓｈｏｗメソッドを呼び出すことができる。それに応じて、プレビューハンドラ２８は、プレビューアインターフェース５０上でｓｈｏｗメソッドを呼び出して、プレビューアにプレビューをサブウィンドウ５４で表示させることができる。プレビューがもはや必要なくなると、様々なｕｎｉｎｉｔｉａｌｉｚｅメソッドを呼び出してプレビューアおよびプレビューハンドラ２８を初期化しないことができる。これらのコンポーネントを初期化しないための例示のルーチン５００について、図５に関連して以下で説明する。動作３１４から、ルーチン３００は、動作３１８へと継続され、ここでルーチン３００は終了する。
【００４７】
次に図４を参照して、ドキュメントについての適切なプレビューアを識別し、ロードするための例示のルーチン４００について説明することにする。ルーチン４００は、動作４０２から開始され、ここでは、バックグラウンドスレッドが、プレビューアと情報をやりとりするために作成される。バックグラウンドスレッドを利用し、その結果、プレビューアが応答しなくなるイベントにおいて新しいバックグラウンドスレッドを作成し利用することができるようになる。これにより、ホストアプリケーション２６は応答可能な状態にとどまることもできるが、一方、プレビューハンドラ２８は、プレビューアがファイルをロードしレンダリングするのを待つ。これにより、プレビューハンドラ２８は、ユーザがプレビューするよう要求しているファイルをプレビューしたいとは思わないとユーザが決定する場合について取り扱うことが可能になる。例えば、ユーザがあるスプレッドシートファイルを選択し、プレビューアがファイルをロードしている間に、ユーザがあるイメージを本当にプレビューしたいと思うと決定する場合、ユーザは、ホストアプリケーション２６でイメージを選択することができる。プレビューハンドラ２８は、既存のバックグラウンドスレッドが、イメージについてのプレビューアをロードできる状態にあるかどうかを速やかに決定することができる。そうでない場合には、プレビューハンドラ２８は、イメージプレビューアについてのバックグラウンドスレッドをロードし、スプレッドシートファイルがローディングを完了するのを待たずに、イメージのプレビューをロードすることができる。
【００４８】
動作４０２から、ルーチン４００は、動作４０４へと継続され、ここでは、必要とされるプレビューアがすでにロードされているかどうかについての決定が行われる。性能を改善するために、プレビューハンドラ２８は、プレビューアが必要とされた後のある期間にわたって、メモリにおいてプレビューアから離れることができる。このようにして、プレビューアは、効率的にキャッシュすることができ、プレビューアについての後続要求においてロード時間を節約することができる。動作４０６において、プレビューアがすでにロードされている場合、ルーチン４００は、動作４０８へと継続され、ここでは、現行のロード済みのプレビューアが、プレビューすべきドキュメントについてのプレビューアとして指定される。必要とされるプレビューアがロードされていない場合には、ルーチン４００は、動作４０６から動作４２２へと分岐する。
【００４９】
動作４２２において、プレビューアが、それ自体を特定のドキュメントファイルタイプのプレビューアとして登録されているかどうかを決定する検索がレジストリ２４について行われる。プレビューアがレジストリにおいて識別される場合、ルーチン４００は、動作４２６へと分岐し、ここで、レジストリで識別されたプレビューアは、ドキュメントについてのプレビューアとして指定される。プレビューアがレジストリで見出されない場合には、ルーチン４００は、動作４１０へと継続される。
【００５０】
動作４１０において、プレビューハンドラ２８は、プレビューホストインターフェース４０上でｇｅｔｐｒｅｖｉｅｗｅｒメソッドを呼び出す。前述のように、ｇｅｔ ｐｒｅｖｉｅｗｅｒメソッドにより、プレビューハンドラ２８は、ホストアプリケーション２６からプレビューアの識別子を要求することができるようになる。動作４１２において、ホストが、ｇｅｔｐｒｅｖｉｅｗｅｒメソッドに対する呼出しに応答してプレビューアを識別していることが決定される場合、ルーチン４００は、動作４１４へと分岐し、ここで識別済みのプレビューアが、ドキュメントについてのプレビューアとして指定される。ホストアプリケーション２６がプレビューアを指定しない場合には、ルーチン４００は、動作４１６へと継続される。
【００５１】
動作４１６において、プレビューホストインターフェース４０上でｇｅｔｐｒｅｖｉｅｗｅｒ ｃｌａｓｓ ＩＤメソッドに対して呼出しが行われる。ホストアプリケーション２６が、呼出しに応答してプレビューアのクラスＩＤを戻す場合、ルーチン４００は、動作４１８から動作４２０に分岐し、ここでクラスＩＤによって識別されるプレビューアが、現行のドキュメントについてのプレビューアとして指定される。そうでない場合には、ルーチン４００は、動作４１８から動作４２８へと継続され、ここでエラーメッセージが戻される。
【００５２】
動作４０８、４１４、４２０、および４２６から、ルーチン４００は、動作４３０へと継続される。動作４３０において、指定されたプレビューアは、バックグラウンドスレッド上でプロセス外オブジェクトとしてロードされる。次いでルーチン４００は、動作４３２へと継続され、ここで、ドキュメントをロードし、プレビューを構築する試みがプレビューアによって行われる。次いで、ルーチン４００は、動作４３４へと継続され、ここで、ドキュメントが正常にロードされたかどうかについての決定が行われる。ドキュメントが正常にロードされなかった場合、ルーチン４００は、動作４３４から動作４３８へと分岐し、ここでエラーメッセージが戻される。ドキュメントが正常にロードされる場合には、ルーチン４００は、動作４３６へと継続され、ここで成功メッセージが戻される。動作４３６および４３８から、ルーチン４００は、動作４４０へと継続され、ここでルーチン４００は戻る。
【００５３】
次に図５を参照して、プレビューアおよびプレビューハンドラ２８をロードしないための例示のルーチン５００について説明することにする。ルーチン５００は、動作５０２から開始され、ここでプレビューハンドラ２８は、プレビューア上でｕｎｌｏａｄメソッドを呼び出す。かかる呼出しを受け取ることに応答して、プレビューアは、ドキュメントをロードせず、それ自体の初期化を行わない。次いでルーチン５００は、動作５０４へと継続され、ここでは、ｕｎｉｎｉｔｉａｌｉｚｅメソッドがプレビューハンドラインターフェース４２上で呼び出される。この呼出しは、プレビューハンドラにそれ自体の初期化を行わない。動作５０４から、ルーチン５００は、動作５０６へと継続され、ここでルーチン５００は終了する。
【００５４】
上述に基づいて、本発明の様々な実施形態は、ドキュメントプレビューを提供するための方法、システム、装置、およびコンピュータ読取可能な媒体を含むことを理解されたい。以上の明細書、実施例およびデータは、本発明の構成の製造および使用についての完全な説明を提供する。本発明の多数の実施形態は、本発明の趣旨および範囲を逸脱することなく行うことができるので、本発明は、添付の特許請求の範囲に属する。
【図１】
2014238876.tif 000003
【図２】
2014238876.tif 000004
【図３】
2014238876.tif 000005
【図４】
2014238876.tif 000006
【図５】
2014238876.tif 000007