(57)【要約】【課題】超特大文字ライブラリを確立する方法と装置、および、文字を表示する方法と装置。【解決手段】この表示方法は、フォント起動メッセージをフォント・エンジン・ミドルウェアによってシステム・フォント・エンジンからインターセプトすることと、ここで、このフォント起動メッセージはアプリケーションによって表示される文字に対応する文字コードとフォント名とを含むものであり、その文字コードとフォント名に基づいて非標準フォーマットでの超特大文字ライブラリからの文字に対応するアウトライン・データを取得することと、文字アウトライン・データにしたがって、システム・フォント・エンジンが文字を表示することを可能にするように、システム・フォント・エンジンにその文字のアウトライン・データを伝送することと、を含む。この発明を用いて、文字ライブラリのキャパシティを増加することができ、非標準形式超特大文字ライブラリにおける文字を、便利に認識することができる。このように、文字検索と表示との効率が改善される。【選択図】図４
2016533568.tif 000002
【特許請求の範囲】
【請求項１】
ブート文字ライブラリを確立するステップと、
非標準フォーマットで超特大文字ライブラリを確立するステップと、
前記超特大文字ライブラリを解釈するためのフォント・エンジン・ミドルウェアを作成するステップと、
を含む、超特大文字ライブラリを確立するための方法。
【請求項２】
前記ブート文字ライブラリは、基本的なＡＳＣＩＩシンボルのみを備える、請求項１に記載の方法。
【請求項３】
前記非標準フォーマットの前記超特大文字ライブラリにおけるコードは、４バイト・コードである、請求項１に記載の方法。
【請求項４】
前記非標準フォーマットの前記超特大文字ライブラリは、文字コードとインデックスとの間の対応を保存するコード・テーブルと、前記インデックスとキャラクタ・データ・オフセットとの間の対応を格納するための位置情報テーブルと、文字アウトライン・データを格納するためのグリフ・テーブルと、を含む、請求項３に記載の方法。
【請求項５】
システム・フォント・エンジンから送られるフォント起動メッセージを、フォント・エンジン・ミドルウェアによって、インターセプトするステップであって、前記フォント起動メッセージは、アプリケーションによって表示される文字に対応する文字コードとフォント名とを含む、ステップと、
前記文字コードと前記フォント名に基づいて、超特大文字ライブラリからの前記文字に対応するアウトライン・データを取得するステップであって、該超特大文字ライブラリは、非標準フォーマットでの文字ライブラリである、ステップと、
前記文字アウトライン・データにしたがって、前記システム・フォント・エンジンが前記文字を表示することを可能にするように、前記システム・フォント・エンジンに、前記文字のアウトライン・データを伝送するステップと、
含む、文字を表示するための方法。
【請求項６】
フォント起動メッセージをフォント・エンジン・ミドルウェアによってシステム・フォント・エンジンからインターセプトするステップは、前記フォント・エンジン・ミドルウェアによって前記フォント起動メッセージをフック機能を用いてインターセプトすることと、前記文字コードと前記フォント名とを取得することを含む、請求項５に記載の方法。
【請求項７】
前記文字コードと前記フォント名に基づいて、超特大文字ライブラリからの文字に対応するアウトライン・データを取得するステップは、前記フォント名に基づいて、前記超特大文字ライブラリの中で、フォント・ファイルをサーチすることと、前記文字コードに基づいて、前記発見されたフォント・ファイルから前記文字コードに対応するインデックス値を取得することと、前記インデックス値に基づいて、文字アウトライン・データ・テーブルから前記文字のアウトライン・データを取得することと、を含む、請求項５に記載の方法。
【請求項８】
ブート文字ライブラリを確立するように構成されるブート文字ライブラリ確立ユニットと、
非標準フォーマットで超特大文字ライブラリ確立ユニットを確立するように構成される超特大文字ライブラリ確立ユニットと、
前記超特大文字ライブラリを解釈するためのフォント・エンジン・ミドルウェアを作成するように構成されるミドルウェア作成ユニットと、
を備える、超特大文字ライブラリを確立する装置。
【請求項９】
システム・フォント・エンジンから送ったフォント起動メッセージをインターセプトするように構成されたインターセプト・ユニットであって、該フォント起動メッセージは文字コードおよびアプリケーションによって表示される文字に対応するフォント名を含む、インターセプト・ユニットと、
前記文字コードと前記フォント名に基づいて、超特大文字ライブラリからの前記文字に対応するアウトライン・データを取得するように構成されるアウトライン・データ取得ユニットであって、該超特大文字ライブラリは、非標準フォーマットでの文字ライブラリである、アウトライン・データ取得ユニットと、
前記アウトライン・データにしたがい、前記システム・フォント・エンジンが前記文字を表示することを可能にするように、前記文字の前記アウトライン・データを前記システム・フォント・エンジンに伝送するように構成される伝送ユニットと、
を備える、文字を表示するための装置。
【請求項１０】
前記インターセプト・ユニットは、フック機能を用いて前記フォント起動メッセージをインターセプトし、前記文字コードと前記フォント名を取得するように構成される、請求項９に記載の装置。
【請求項１１】
前記アウトライン・データ取得ユニットは、前記フォント名に基づいて、前記超特大文字ライブラリの中でフォント・ファイルをサーチするように構成されるフォント・ファイル・サーチ・サブユニットと、前記文字コードに基づいて、前記発見されたフォント・ファイルから前記文字コードに対応するインデックス値を取得するように構成されるインデックス値サーチ・サブユニットと、前記インデックス値にしたがって、文字アウトライン・データ・テーブルから前記文字のアウトライン・データを取得するように構成される取得サブユニットと、を備える、請求項９に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本願発明は、コンピュータ・テキスト入力の技術分野に関し、そして、特に、超特大文字ライブラリを確立する方法と装置および文字を表示する方法と装置に関する。
【背景技術】
【０００２】
当該技術領域で一般に使用される文字ライブラリは、一般的に、少ない数の文字のみを有し、一般的に、およそ６０００文字である。したがって、そのような少数の文字の全てを、１つの文字ライブラリ・ファイルに含むことができる。ＧＢＫあるいは１８０３０のコードの文字ライブラリにおいてさえ、およそ２０，０００−３０，０００文字のみであり、また、１つの文字ライブラリ・ファイルを用いてこれらの文字を保持し、表示することが可能である。しかしながら、いくつかの場合において、より多くの文字が必要である。例えば、いくつかの特別なドメインで使用される場合などである。結果として、文字ライブラリに格納されるべき文字の数は、６０，０００を超えることがあり得る。文字ライブラリのデータ構造の制限のために、単一の文字ライブラリにおいて、それほど多くの文字を格納することは、非常に難しいかもしれない。単一の文字ライブラリにおいて、それほど多くの文字を格納する場合でも、それらの文字を表示することは、問題を含む。この場合、それらの文字は、２つのグループに分割し、２またはさらに多くの文字ライブラリ・ファイルに別々に格納しなければならない。「フォント・リンク」方法が、マイクロソフト・コーポレイションによって提供され、これを用いて、２つの文字ライブラリを一緒にリンクすることができる。例えば、文字ライブラリＡとＢとが文字の異なる部分を別々にその中に格納する場合に、文字ライブラリＡが選択されたフォントとして指定されるとき、ユーザが、文字ライブラリＢに保存された文字を入力すると、この文字を、フォント・リンク方法を利用して表示することもできる。この方法は単純であるが、しかし、いくつかの欠点を持つ。特に、第０面ではなく他の面上の文字を表示する場合には（第０面上の文字は、０Ｘ００００〜０ｘＦＦＦＦの範囲のユニコードのコードを有する。第１面上の文字は、０Ｘ１００００〜０ｘ１ＦＦＦＦの範囲のユニコードのコードを有する。第２面上の文字は、  ０Ｘ２００００〜０ｘ２ＦＦＦＦのユニコードのコードを有する。等々）、いくつかの場合において、それらの文字を呼び出す、あるいは、表示することができない。また、コード化すべき文字の数が増加すると、ますます多くの文字ライブラリをリンクすることが必要であり、したがって、文字検索および表示の効率は、悪化する。
【発明の概要】
【０００３】
本願発明の１つの態様は、文字ライブラリのデータ構造の規制のために、文字ライブラリに含まれる文字の数が制限されるという先行技術における問題を解決するために超特大文字ライブラリを確立する方法と装置を提供することである。
【０００４】
本願発明の別の態様は、文字検索および表示の効率を改善するように、非標準フォーマットで超特大文字ライブラリにおける文字を容易に、また、便利に識別するために、文字を表示する方法と装置を提供することである。
【０００５】
したがって、本願発明は、以下の技術的なソリューションを提供する。
【０００６】
ブート文字ライブラリを確立するステップと、非標準フォーマットでの超特大文字ライブラリを確立するステップと、前記超特大文字ライブラリを解釈するためのフォント・エンジン・ミドルウェアを作成するステップと、を備える、超特大文字ライブラリを確立するための方法が提供される。
【０００７】
好適には、前記ブート文字ライブラリは、基本的なＡＳＣＩＩシンボルのみを備える。
【０００８】
好適には、前記非標準フォーマットの前記超特大文字ライブラリにおけるコードは、４バイト・コードである。
【０００９】
好適には、前記非標準フォーマットの前記超特大文字ライブラリは、文字コードとインデックスとの間の対応を保存するコード・テーブルと、前記インデックスとキャラクタ・データ・オフセットとの間の対応を格納するための位置情報テーブルと、文字アウトライン・データを格納するためのグリフ・テーブルと、を含む。
【００１０】
システム・フォント・エンジンから送られるフォント起動メッセージを、フォント・エンジン・ミドルウェアによって、インターセプトするステップであって、前記フォント起動メッセージは、アプリケーションによって表示される文字に対応する文字コードとフォント名とを含む、ステップと、前記文字コードと前記フォント名に基づいて、超特大文字ライブラリからの文字に対応するアウトライン・データを取得するステップであって、該超特大文字ライブラリは、非標準フォーマットでの文字ライブラリである、ステップと、前記文字アウトライン・データにしたがって、システム・フォント・エンジンが文字を表示することを可能にするように、前記システム・フォント・エンジンに、その文字のアウトライン・データを伝送するステップと、を含む、文字を表示するための方法が提供される。
【００１１】
好適には、フォント起動メッセージをフォント・エンジン・ミドルウェアによってシステム・フォント・エンジンからインターセプトするステップは、前記フォント・エンジン・ミドルウェアによって前記フォント起動メッセージをフック機能を用いてインターセプトすることと、前記文字コードと前記フォント名とを取得することを含む。
【００１２】
好適には、前記文字コードと前記フォント名に基づいて、超特大文字ライブラリからの文字に対応するアウトライン・データを取得するステップは、前記フォント名に基づいて、フォント・ファイルを捜して前記超特大文字ライブラリをサーチすることと、文字コードに基づいて、発見されたフォント・ファイルから前記文字コードに対応するインデックス値を取得することと、前記インデックス値に基づいて、文字アウトライン・データ・テーブルから前記文字のアウトライン・データを取得することと、を含む。
【００１３】
ブート文字ライブラリを確立するように構成されるブート文字ライブラリ確立ユニットと、非標準フォーマットでの超特大文字ライブラリ確立ユニットを確立するように構成される超特大文字ライブラリ確立ユニットと、前記超特大文字ライブラリを解釈するためのフォント・エンジン・ミドルウェアを作成するように構成されるミドルウェア作成ユニットと、を備える、超特大文字ライブラリを確立する装置が提供される。
【００１４】
システム・フォント・エンジンから送ったフォント起動メッセージをインターセプトするように構成されたインターセプト・ユニットであって、ここで、このフォント起動メッセージは文字コードおよび、アプリケーションによって表示される文字に対応するフォント名を含む、インターセプト・ユニットと、前記文字コードと前記フォント名に基づいて、超特大文字ライブラリからの文字に対応するアウトライン・データを取得するように構成されるアウトライン・データ取得ユニットであって、該超特大文字ライブラリは、非標準フォーマットでの文字ライブラリである、アウトライン・データ取得ユニットと、前記アウトライン・データにしたがい、システム・フォント・エンジンが文字を表示することを可能にするように、前記文字の前記アウトライン・データを前記システム・フォント・エンジンに伝送するように構成される伝送ユニットと、を備える、文字を表示するための装置が提供される。
【００１５】
好適には、前記インターセプト・ユニットは、フック機能を用いて前記フォント起動メッセージをインターセプトし、前記文字コードと前記フォント名を取得するように構成される。
【００１６】
好適には、前記アウトライン・データ取得ユニットは、前記フォント名に基づいて、フォント・ファイルを捜して前記超特大文字ライブラリをサーチするように構成されるフォント・ファイル・サーチ・サブユニットと、文字コードに基づいて、発見されたフォント・ファイルから前記文字コードに対応するインデックス値を取得するように構成されるインデックス値サーチ・サブユニットと、前記インデックス値にしたがって、文字アウトライン・データ・テーブルから前記文字のアウトライン・データを取得するように構成される取得サブユニットと、を備える。
【００１７】
本願発明の実施形態にしたがう超特大文字ライブラリを確立する方法と装置は、非標準フォーマットでの超特大文字ライブラリを採用する。したがって、より多くの文字をその中に収容することを可能にする。一方、システム・フォント・エンジンが超特大文字ライブラリに含まれる文字を認識することを可能にするために、対応するフォント・エンジン・ミドルウェアおよびブート文字ライブラリが、それに応じて確立される。
【００１８】
ブート文字ライブラリおよびフォント・エンジン・ミドルウェアに基づいて、本願発明の実施形態にしたがう文字を示す方法と装置を用いて、超特大文字ライブラリは、フォント・エンジン・ミドルウェアの助けを借りて、システム・フォント・エンジンによって解釈されることができる。表示されるべき文字に関する情報は、超特大文字ライブラリから読み出され、システム・フォント・エンジンに要求される情報形式に再構成され、そして、次にシステム・フォント・エンジンに送られ、最後に、システム・フォント・エンジンが、その文字をユーザ・インタフェースに表示する。そうすることにより、リンク機構による呼出しの効率が低く、異なる文字ライブラリにおける文字を互いから呼び出すことができないという先行技術における問題を、解決することができる。
【００１９】
本願発明を用いて、単一の文字ライブラリに含まれる文字の数を、増やすことができ、そして、この非標準フォーマットの超特大文字ライブラリにおける文字は、容易にかつ便利に識別することができる。したがって、文字検索および表示の効率が改善される。
【図面の簡単な説明】
【００２０】
本願の実施形態、または、先行技術におけるそれらのソリューションを明確に図示するために、実施形態で使用される添付の図面の簡単な説明が、以下になされる。明らかに、以下に記載される図面は、単にこの発明のいくつかの実施形態のみを表示し、これらから、当事者であれば、他の図面を導出することができる。
【図１】図１は、この発明の実施形態にしたがう超特大文字ライブラリを確立する方法のフローチャートである。
【図２】図２は、この発明の実施形態にしたがう超特大文字ライブラリを確立する装置の構造を表している概略図である。
【図３】図３は、先行技術における文字ライブラリに含まれる文字の表示のフローチャートである。
【図４】図４は、この発明の実施形態にしたがう文字を表示する方法のフローチャートである。
【図５】図５は、この発明の実施形態にしたがう文字を表示する装置の構造を表している概略図である。
【発明を実施するための形態】
【００２１】
当業者に対して、本願発明にしたがう実施形態のソリューションのより良い理解を達成するために、本願発明のこの実施形態は、以下において、添付の図面を参照して、詳細に記述される。
【００２２】
現在のオペレーティング・システムにおいて、一般に使用されるＴｒｕｅＴｙｐｅ文字ライブラリで、６５５３５以上の文字を含んでいる単一の超特大文字ライブラリを造ることはできない。文字ライブラリ・フォーマットのデータ構造の制限のために、文字ライブラリは、６５５３５以上のキャラクタを収容することができない。たとえ６５５３５文字以上が文字ライブラリに格納されるとしても、それらの文字は、オペレーティング・システムのフォント・エンジンで呼び出すことができない。あるいは、その文字ライブラリは、無効であるとさえ考えられる。この問題を解決する大部分の既存の方法は、フォント・リンクを採用する。それにより、２つ以上の文字ライブラリが、より多くの文字を表示する目的のために一緒にリンクされる。しかしながら、そのような方法は、まだ、例えば、現在のオペレーティング・システムにおいて、ＩＳＯ／ＩＥＣ１０６４６コード化文字セットのＣＪＫ−ＥｘｔＢ文字を含む文字ライブラリの場合になど、いくつかの欠点を持つ。ＣＪＫ−ＥｘｔＡ文字を含んでいる文字ライブラリの文字は、入力し、フォント・リンクを通して表示することができる。しかし、その逆はできない。それぞれＩＳＯ／ＩＥＣ１０６４６コード化文字セットの基本面および第２面を含む２つの文字ライブラリのフォント・リンクにおいて、それらの第２面の文字は、互いから呼び出されることができない等である。コード化すべき文字の数が増加すると、ますます、多くの面を、ＩＳＯ／ＩＥＣ１０６４６コード化文字セットに使用することが必要となった。そして、ますます多くの文字ライブラリをリンクすることが必要となった。その結果、文字検索の効率が、さらに悪化することとなった。
【００２３】
これを考慮して、超特大文字ライブラリを確立する方法と装置が、この発明の実施形態において提供される。既存の文字ライブラリ・フォーマットおよび表示方法に基づいて、より多くの文字を格納することができるＴｒｕｅＴｙｐｅベース超特大文字ライブラリが、確立される。この非標準フォーマットを現在のオペレーティング・システムがサポートしない問題に対処するために、フォント・エンジン・ミドルウェアおよびブート文字ライブラリが、確立される。
【００２４】
対応して、この種の超特大文字ライブラリに基づいて、文字ディスプレイ方法および装置が、また、この発明の実施形態において、提供される。非標準フォーマットにおける超特大文字ライブラリは、システム・フォント・エンジンにより、フォント・エンジン・ミドルウェアの助けを借りて解釈される。表示される文字に関する情報が、超特大文字ライブラリから読み出され、システム・フォント・エンジンに要求される情報形式に再構成され、そして、次に、システム・フォント・エンジンに送られる。最後に、システム・フォント・エンジンは、ユーザ・インタフェースに文字を表示する。
【００２５】
図１に示されるように、本願発明の実施形態にしたがって超特大文字ライブラリを確立するこの方法は、以下のステップを含む。
【００２６】
ステップ１０１：ブート文字ライブラリを確立するステップ。
【００２７】
標準フォーマットにおける既存の文字ライブラリと比較すると、ブート文字ライブラリは、標準形式であることができるが、しかし、基本的なＡＳＣＩＩシンボルだけを備え、実際の漢字を備えていない。
【００２８】
ステップ１０２：非標準フォーマットでの超特大文字ライブラリを確立するステップ。
【００２９】
超特大文字ライブラリを確立する際に、標準形式文字ライブラリに全く含まれることができない多数の文字のために、それらの文字は、非標準フォーマットにおいて保存される。すなわち、超特大文字ライブラリは、非標準フォーマットでの文字ライブラリである。特に、いくつかの修正を、既存の標準フォーマットに対して行うことができる。例えば、コードのバイト数を、オリジナルのフォーマットの０ｘＦＦＦＦではなく、０ｘＦＦＦＦＦＦＦＦまでの、文字を格納することができるように、２から４に変えることができる。これは、超特大文字ライブラリの要求に合致するものである。
【００３０】
格納される文字を、それぞれのフォント開発者または個人によって所望のように、文字ライブラリに組織することができる。多数の文字のために、それら文字は、完全には、標準フォーマットにおいて組織することができない。したがって、専用フォント・エンジンが、解釈のために必要である。
【００３１】
この非標準フォーマットの超特大文字ライブラリは、主として、文字コードとインデックスとの間の対応を保存するコード・テーブルと、前記インデックスとキャラクタ・データ・オフセットとの間の対応を格納するための位置情報テーブルと、文字アウトライン・データを格納するためのグリフ・テーブルと、その他を備えることができる。既存の標準フォーマット文字ライブラリと比較すると、超特大文字ライブラリにおいて、コード、インデックスおよびオフセットに、それらの範囲を拡大する改善がなされ、超特大文字ライブラリが、より多くの文字を収容することが可能になる。
【００３２】
ステップ１０３：超特大文字ライブラリを解釈するためのフォント・エンジン・ミドルウェアを作成するステップ。
【００３３】
標準フォーマット文字ライブラリだけが、既存のシステム・フォント・エンジンによって、直接解釈されることができ、非標準フォーマットの文字ライブラリは、システム・フォント・エンジンにより無効であると見なされる。したがって、超特大文字ライブラリに含まれる文字を認識するために、本願発明の実施形態において、システム・フォント・エンジンが、超特大文字ライブラリの解釈を支援し、超特大文字ライブラリから表示される文字に関する情報を読み出し、それを、システム・フォント・エンジンによって要求される情報フォーマットに再構成し、そして、次に、その再構成された情報をシステム・フォント・エンジンに送るためにフォント・エンジン・ミドルウェアを呼び出すことができるようにフォント・エンジン・ミドルウェアが確立される。最後に、システム・フォント・エンジンは、ユーザ・インタフェースに文字を表示する。
【００３４】
本願発明のこの実施形態で記述される超特大文字ライブラリは、特に、単一の文字ライブラリに、６０，０００文字以上を格納することを望む会社または個人に適切である。
【００３５】
本願発明の実施形態の方法を用いて、文字ライブラリのキャパシティを、増やすことができ、ユーザが、便利にかつ容易に、異なる文字を使用することを可能にすることが分かる。
【００３６】
対応して、超特大文字ライブラリを確立する装置が、また、この発明の実施形態において提供される。図２は、この装置の構造の概要図を示す。
【００３７】
この実施の形態において、装置２００は、ブート文字ライブラリ確立ユニット２０１、超特大文字ライブラリ確立ユニット２０２、および、ミドルウェア作成ユニット２０３を備える。ブート文字ライブラリ確立ユニット２０１は、ブート文字ライブラリを確立するように構成される。超特大文字ライブラリ確立ユニット２０２は、非標準フォーマットで超特大文字ライブラリを確立するように構成される。ミドルウェア作成ユニット２０３は、超特大文字ライブラリを解釈するためのフォント・エンジン・ミドルウェアを作成するように構成される。
【００３８】
対応して、上記したように、非標準フォーマットの超特大文字ライブラリに基づいて、文字を表示する方法が、また、この発明の実施形態において提供される。当業者に対して、本願発明の実施形態のソリューション、および、本願発明の実施形態のソリューションと先行技術との違いを、よりよく理解させるために、最初に、先行技術における文字を表示する方法の概要を以下に述べる。
【００３９】
図３に示されるように、先行技術における、文字ライブラリに含まれる文字を表示する方法は、次のステップを含む。
【００４０】
ステップ３０１：システム・フォント・エンジンへ、アプリケーションによって表示される文字に対応する文字コードとフォント名とを送信するステップ。
【００４１】
ステップ３０２：システム・フォント・エンジンにより、そのフォント名に基づいて、フォント・ファイルをサーチするステップ。
【００４２】
ステップ３０３：フォント・コードに基づいて、システム・フォント・エンジンにより、文字の見つかったフォント・ファイルをサーチするステップ。
【００４３】
特に、このサーチは、フォント・ファイルの中のコード・インデックス対応テーブルにしたがって、実行することができる。
【００４４】
ステップ３０４：この文字のアウトライン・データをその文字がフォント・ファイルで見つかった場合、対応するインデックス値に基づいて，文字アウトライン・データ・テーブルから得るステップ。
【００４５】
ステップ３０５：システム・フォント・エンジンにより、得られたアウトライン・データにしたがって、文字を表示するステップ。
【００４６】
そのような超特大文字ライブラリの格納範囲は、上述したように、標準的な範囲を超えるので、この非標準フォーマット超特大文字ライブラリは、既存のオペレーティング・システムが、サポートすることができない。したがって、本願発明の実施形態にしたがう文字を表示する方法において、システム・フォント・エンジンは、フォント・エンジン・ミドルウェアを、超特大文字ライブラリに含まれる文字の検索と表示を容易にするために呼び出す。これは、文字を表示することの効率を大いに改善する。
【００４７】
図４に示されるように、本願発明の実施形態にしたがう文字を表示する方法のフローチャートは、次のステップを含む。
【００４８】
ステップ４０１：フォント・エンジン・ミドルウェアが、システム・フォント・エンジンからブート文字ライブラリに送られたフォント起動メッセージをインターセプトするステップ。このフォント起動メッセージは、アプリケーションによって表示される文字に対応する文字コードとフォント名とを含む。
【００４９】
特に、フォント・エンジン・ミドルウェアは、ウインドウズ・オペレーティング・システムの上で利用できるフック機能を用いて、フォント起動メッセージをインターセプトし、そして、文字コードとフォント名とを取得する。このフック機能は、ウインドウズ・オペレーティング・システムで送られるメッセージだけをインターセプトするだけでなく、機能のアプリケーション・コール、機能のオペレーティング・システム・コールを含む、機能の呼び出しをすることができる。
【００５０】
ステップ４０２：フォント・エンジン・ミドルウェアが、その文字に対応するアウトライン・データを、その文字コードとそのフォント名に基づいて、非標準フォーマットにおける超特大文字ライブラリから要求するステップ。
【００５１】
既存の標準フォーマット文字ライブラリと比較すると、超特大文字ライブラリは、より多くの文字コードとより多くのアウトライン・データとに関する情報を含むことができる。
【００５２】
特定のインプリメンテーションにおいて、１対１の対応を、ブート文字ライブラリと超特大文字ライブラリとの間で、確立することができる。そして、次に、フォント・エンジン・ミドルウェアに導入することができる。フォント・エンジン・ミドルウェアが、システム・フォント・エンジンがブート文字ライブラリを呼び出したいことを知っているときに、それは、システム・フォント・エンジンのアクセスを、その対応にしたがって、ブート文字ライブラリへの超特大文字ライブラリへのアクセスに変換することができる。
【００５３】
超特大文字ライブラリから、フォント・エンジン・ミドルウェアによって、アウトライン・データを得るプロセスは、既存のシステム・フォント・エンジンによって、ブート文字ライブラリからアウトライン・データを得るプロセスと同様である。第１に、インターセプトされたフォント名に基づいて読まれるべきフォント・ファイルを決定することが要求される。次に、文字コードに対応するインデックス値が、インターセプトされた文字コード、および、フォント・ファイルの中のＣＭＡＰテーブル（キャラクタ・コード―インデックス対応テーブル）に基づいて、得られる。次に、そのインデックス値にしたがって、ＧＬＹＦテーブルにおけるインデックス値に対応する文字のオフセットが、ＬＯＣＡテーブルにおいて見いだされる。このオフセットを得た後に、グリフ・アウトライン・データが、直接、ＧＬＹＦテーブルから読み出される。このＧＬＹＦテーブルは、すべての文字のグリフ・アウトライン・データを格納する。
【００５４】
上のＣＭＡＰテーブル、ＬＯＣＡテーブル、および、ＧＬＹＦテーブルは、先行技術の文字ライブラリにおいて対応するものと同様であり、ここでは、詳細には記述しないことに留意する。
【００５５】
ステップ４０３：この文字のアウトライン・データは、文字アウトライン・データにしたがって、システム・フォント・エンジンが文字を表示することを可能にするように、システム・フォント・エンジンに返される。
【００５６】
本願発明の実施形態の文字表示方法において、フォント・エンジン・ミドルウェアが、ブート文字ライブラリへのシステム・フォント・エンジンのアクセスが、超特大文字ライブラリへのフォント・エンジン・ミドルウェアのアクセスに変換されるように、システム・フォント・エンジンからブート文字ライブラリに送られたフォント起動メッセージをインターセプトするために使用される。超特大文字ライブラリへのアクセスの後に、このように得られがグリフ・アウトライン・データは、システム・フォント・エンジンによって戻され、それによって、超特大文字ライブラリにおける文字の検索と表示を、単純かつ便利な方法で実現することができ、文字表示の効率を大いに増大する。アプリケーション層から見ると、アクセスが、ユーザの感覚に対する影響がなく、システム・フォント・エンジン自体によって実行されるように見える。
【００５７】
また、文字を表示するための装置が、本願発明の実施形態において、提供される。図５は、この装置の構造の概要図を示す。
【００５８】
この実施の形態において、この装置は、以下を備える。
【００５９】
システム・フォント・エンジンから送ったフォント起動メッセージをインターセプトするように構成されたインターセプト・ユニットであって、このフォント起動メッセージは、アプリケーションによって表示される文字に対応する文字コードとフォント名とを備えている、インターセプト・ユニット５０１。
【００６０】
前記文字コードと前記フォント名に基づいて、超特大文字ライブラリからその文字に対応するアウトライン・データを取得するように構成されるアウトライン・データ取得ユニットであって、該超特大文字ライブラリは、非標準フォーマットでの文字ライブラリである、アウトライン・データ取得ユニット５０２。
【００６１】
前記文字アウトライン・データにしたがって、システム・フォント・エンジンが文字を表示することを可能にするように、前記文字の前記アウトライン・データを前記システム・フォント・エンジンに伝送するように構成される伝送ユニット５０３。
【００６２】
既存の標準フォーマット文字ライブラリと比較すると、超特大文字ライブラリは、より多くの文字コードとより多くのアウトライン・データに関する情報を含むことができ、そして、そのコンテンツは、標準フォーマット文字ライブラリのものと同様である。これは、上述されており、ここでは、詳細には記述しない。
【００６３】
実際のアプリケーションにおいて、インターセプト・ユニット５０１は、フォント起動メッセージをインターセプトするためにフック機能を使用することができる。そして、文字コードおよびをフォント名を入手することができる。
【００６４】
アウトライン・データ取得ユニット５０２は、フォント・ファイル・サーチ・サブユニットと、インデックス値サーチ・サブユニットと、取得サブユニット（図示せず）と、を備える。
【００６５】
フォント・ファイル・サーチ・サブユニットは、フォント名に基づいて、超特大文字ライブラリの中でフォント・ファイルをサーチするように構成されている。インデックス値サーチ・サブユニットは、文字コードに基づいて、発見されたフォント・ファイルから前記文字コードに対応するインデックス値を取得するように構成される。取得サブユニットは、前記インデックス値にしたがって、文字アウトライン・データ・テーブルから文字のアウトライン・データを取得するように構成される。
【００６６】
本願発明の実施形態にしたがって文字を表示する装置において、システム・フォント・エンジンからブート文字ライブラリに送られたフォント起動メッセージが、ブート文字ライブラリへのシステム・フォント・エンジンのアクセスが、超特大文字ライブラリへのフォント・エンジン・ミドルウェアのアクセスに変換されるように、インターセプトされる。超特大文字ライブラリへのアクセスの後に、このように得られたグリフ・アウトライン・データは、システム・フォント・エンジンによって戻され、それによって、文字の検索と表示を、単純かつ便利なように実現することができ、文字表示の効率を大いに増大する。アプリケーション層から見ると、アクセスが、ユーザの感覚に対する影響がなく、システム・フォント・エンジン自体によって実行されるように見える。
【００６７】
本願発明の実施形態にしたがう、文字を表示する方法および装置は、多様なアプリケーションに、それらのアプリケーションの種々の要求に合致するように、適用することができ、また、速くて、効率的であることに留意する。
【００６８】
この実施形態は、本願明細書において、進歩的な方法で記載される。種々の実施形態の同じか、同様の部分に対して、実施形態の間の参照が行われる。各々の実施形態は、他の実施形態からの違いに集中する。特に、装置の実施形態は、基本的に、方法の実施形態に対応するので、関連した部分に対して、方法の実施形態の説明の記載への参照が行われる。上述の装置の実施形態は、単に図示的なものであり、要素は、別々なものとして記載されているが、互いに物理的に分離していても、いなくても、よく、そして、個々に示されたものは、物理的な要素であっても、そうでなくてもよい。これは、１つの位置に配置することができ、あるいは、複数のネットワーク・ユニットに分散することもできる。それらのいくつか、あるいは、すべてのモジュールを、必要に応じて、この発明の実施形態の目的を実現するために、選択することができる。これは、当事者であれば、いかなる創造的な努力を要することなく、理解でき、実施することができる。
【００６９】
この開示は、また、コンピュータで実行されるとき、超特大文字ライブラリを確立するように方法の種々のステップを実行する、その上にコンピュータ実行可能な命令を格納した１つ以上のコンピュータ読取り可能メディア、および、上記したような文字を表示する方法を提供する。
【００７０】
この開示は、また、コンピュータで実行されるとき、超特大文字ライブラリを確立するように方法の種々のステップを実行する、その上にコンピュータ実行可能な命令を格納した１つ以上のコンピュータ読取り可能メディアを有するコンピュータ、および、上記したような文字を表示する方法を提供する。
【００７１】
［例示的な操作環境］
【００７２】
ここに記述されたコンピュータまたはコンピューティング・デバイスは、１つ以上のプロセッサーまたは処理ユニットと、システム・メモリと、いくつかのタイプのコンピュータ読取り可能メディアと、を含むハードウェアを備える。制限的ではない、例として、コンピュータ読取り可能媒体は、コンピュータ記憶媒体および、通信メディアを備える。このコンピュータ記憶媒体は，コンピュータ読取り可能な命令、データ構造、プログラム・モジュールまたは、他のデータなど、情報ストレージのためのいかなる方法またはテクノロジーでインプリメントされた揮発性または不揮発性、取り外し可能または取り外し不可能メディアを備える。通信メディアは、典型的には、コンピュータ読取り可能命令、データ構造、プログラム・モジュール、または、搬送波、または、他の移送メカニズムなど変調されたデータ信号における他のデータを具体化し、そして、いかなる情報配送メディアをも含む。上記のいかなるものの組合せも、また、コンピュータ読取り可能メディアの範囲の中に含まれる。
【００７３】
このコンピュータは、ネットワーク環境で動作するリモート・コンピュータへの論理的接続などの１つ以上のリモート・コンピュータを使用ことができる。本願開示の種々の実施形態が典型的なコンピューティング・システム環境のコンテキストにおいて、記載されたが、本願開示の種々の例示的実施形態は、多数の他の一般的な目的、または、特殊用途のコンピュータ・システム環境または構成において使用することができる。このコンピューティング・システム環境は、本願発明の使用または機能の範囲のいかなる態様をも制限することを意図するものではない。加えて、このコンピュータ環境は、例示的な操作環境に示されたコンポーネントのいずれか１つ、または、組合せに依存する、または、それを要求するものと解釈されてはならない。そのコンピュータ・システムの有名な例、本願開示のすべての態様に対して適切な環境や構成は、パーソナル・コンピュータ、サーバ・コンピュータ、ハンドヘルドまたはラップトップ・デバイス、マルチプロセッサー・システム、マイクロプロセッサ・ベース・システム、セット・トップ・ボックス、プログラム可能家電、モバイル電話、ネットワークＰＣ、ミニコンピュータ、メインフレーム・コンピュータ、上記のシステムまたはデバイスのいずれかを含む分散コンピューティング環境、その他を含む。しかし、それらに限られるものではない。
【００７４】
本願発明の種々の例示的実施形態は、１つ以上のコンピュータまたは他のデバイスで実行されるプログラム・モジュールなどコンピュータ実行可能命令の一般的なコンテキストにおいて記述することができる。そのコンピュータ実行可能命令は、１つ以上のコンピュータ実行可能コンポーネントまたはモジュールに、ソフトウェアとして組織されることができる。一般的に、プログラム・モジュールは、ルーチン、プログラム、オブジェクト、コンポーネント、および、特定のタスクを実行する、または、特定の抽象データ・タイプをインプリメントするデータ構造を含む。しかし、それらに制限されるものではない。本願発明の態様は、そのようなコンポーネントまたはモジュールの任意数、および、組織でインプリメントすることができる。例えば、本願発明の態様は、図において図示された、また、ここに記載された、特定のコンピュータ実行可能命令または、特性のコンポーネント、または、モジュールに制限されない。本願発明の他の例示的実施形態は、異なるコンピュータ実行可能命令、または、図において図示された、また、ここに記載されたものよりも多い、または、少ない機能を有するコンポーネントを含むことができる。本願発明の態様は、また、通信ネットワークを通してリンクされたリモート処理デバイスによってタスクが実行される、分散コンピューティング環境で実施することができる。分散コンピューティング環境において、プログラム・モジュールは、メモリー格納デバイスを含む、ローカルおよびリモートのコンピュータ記憶媒体の両方に位置することができる。
【００７５】
本願発明の方法と装置を多くの方法で実行することができる。例えば、本願発明の方法と装置をソフトウェア、ハードウェア、ファームウェア、または、それらの任意の組合せを通して、実行することができる。本願方法のためのステップの記述された順序は、単に、説明としての例を意図するものであり、本願発明の方法のステップは、特に述べられない限り、上述の順序に、特に限られていない。また、いくつかの実施形態において、本願発明は、また、本願発明にしたがう方法をインプリメントするための機械読み取り可能命令を含む記録媒体に記録されたプログラムとして具体化される。したがって、本願発明は、また、本願発明にしたがう方法をインプリメントするためのプログラムを格納する記録媒体をカバーするものである。
【００７６】
いくつかの特定の実施形態は、例示するだけのために、上で記述されたが、しかし、本願発明の保護範囲を制限するものではない。当業者は、本願発明の要旨および範囲から逸脱することなく、本願発明のどんな修正や変更でもすぐに行うことができる。また、本願発明のそのような修正および変更は、本願発明の保護範囲の中に含まれるものである。
【図１】
2016533568.tif 000003
【図２】
2016533568.tif 000004
【図３】
2016533568.tif 000005
【図４】
2016533568.tif 000006
【図５】
2016533568.tif 000007
【国際調査報告】
2016533568.tif 000008
2016533568.tif 000009
2016533568.tif 000010
2016533568.tif 000011