(57)【要約】電子メールクライアントソフトウェア（１６）は、各メッセージ用のアイコンと共にメッセージを一覧表示するメールボックスディスプレイヤ（１４）を備えており、これらのアイコンは各メッセージのＭＩＭＥタイプに関連付けられている。添付ファイル（１８）を含むメールは、そのメールに添付されたファイルのタイプを示すアイコンと共に受信ボックスに一覧表示される。メールボックスディスプレイヤがＭＩＭＥタイプを解釈し、ＯＳ内のアイコンレジストリ又はＥメールクライアントソフトウェアが維持管理するアイコンディレクトリから適切なアイコンを選択する。アイコンディレクトリに適切なアイコンが存在しない場合には、メールボックスディスプレイヤは、ＭＩＭＥメッセージのサブパートに含まれているアイコン画像データを使用する（データが提供されている場合）。そうでなければ、アイコンを使用しないか、或いは一般アイコンが使用される。好適な実施例によれば、タイプテーブル（２０）がタイプアップデータ（１２）コンポーネントによって維持管理される。このタイプテーブルには、メールボックスディスプレイヤが使用する拡大縮小可能なアイコンのファイル名と共に、メッセージタイプ及びサブタイプのリストが含まれている。
2004502239.tif 000002
【特許請求の範囲】
【請求項１】
表示装置と共に使用する電子メールクライアントソフトウェアであって、
ａ）メールボックスの内容を前記表示装置上にスクロール可能なリストとして表示するメールボックスディスプレイヤ手段であって、各メールアイテムが複数のプロパティと共に一覧表示され、前記プロパティは件名、送信者の名前、及び送信日付からなる群から選択されるメールボックスディスプレイヤ手段と、
ｂ）複数のＭＩＭＥタイプを複数のアイコン画像と関連付ける関連付け手段と、
を有し、
前記メールボックスディスプレイヤ手段は、メールボックス内の少なくともいくつかのメールアイテムのＭＩＭＥタイプを判定する手段と、前記関連付け手段を読み取る手段と、前記スクロール可能なリスト内にアイコン画像を前記少なくともいつかのメールアイテムのそれぞれに関連付けられたプロパティとして表示する手段と、を含み、
前記少なくともいくつかのメールアイテムのそれぞれ用のアイコン画像は、前記少なくともいくつかのメールアイテムのそれぞれのＭＩＭＥタイプに従って前記関連付け手段から選択されることを特徴とする電子メールクライアントソフトウェア。
【請求項２】
ｃ）前記関連付け手段を更新して更なるＭＩＭＥタイプと更なるアイコン画像を含めるタイプアップデータ手段を、
更に有する請求項１記載の電子メールクライアントソフトウェア。
【請求項３】
ｃ）それぞれがファイル名を備える複数のアイコン画像を更に有し、前記関連付け手段は、少なくともいくつかのＭＩＭＥタイプのそれぞれを前記アイコン画像のファイル名と関連付けるデータ構造である請求項１記載の電子メールクライアントソフトウェア。
【請求項４】
前記関連付け手段は、ＭＩＭＥタイプをプログラムと関連付ける手段を含み、いくつかのＭＩＭＥタイプは、アイコン画像とは関連付けられず、プログラムと関連付けられる請求項１記載の電子メールクライアントソフトウェア。
【請求項５】
前記タイプアップデータ手段は、ユーザー入力に応答する請求項２記載の電子メールクライアントソフトウェア。
【請求項６】
前記複数の画像の少なくともいくつかは拡大縮小可能である請求項３記載の電子メールクライアントソフトウェア。
【請求項７】
前記電子メールクライアントソフトウェアは、アイコンのレジストリを維持管理するオペレーティングシステムと共に使用するように設計されており、
前記関連付け手段は、少なくともいくつかのＭＩＭＥタイプを前記アイコンのレジストリから選択されたアイコンと関連付ける請求項１記載の電子メールクライアントソフトウェア。
【請求項８】
ｃ）Ｅメール又はＥメールの添付ファイルに格納されているグラフィカルアイコン情報を読み取るアイコン回復手段を更に有し、
前記関連付け手段は、その他のアイコンが見つからない場合に、ＭＩＭＥタイプを前記アイコン回復手段によって回復されたアイコンと関連付ける請求項１記載の電子メールクライアントソフトウェア。
【請求項９】
前記タイプアップデータ手段は、前記電子メールクライアントソフトウェアのユーザーが手動で操作可能である請求項２記載の電子メールクライアントソフトウェア。
【請求項１０】
前記タイプアップデータ手段は、
新しいＭＩＭＥタイプのオーサリング／読み取りを行う能力を有する新しいアプリケーション又はコンポーネントがインストールされるイベントと、
受信したメールメッセージにおいて新しいＭＩＭＥタイプを検出するイベントと、
定期的にスケジュールされたイベントにより新しいアイコンを取得するべく前記タイプアップデータがサーバーをチェックするイベントと、
から構成される群から選択されたイベントに従って新しいアイコンを自動的にインストールする請求項２記載の電子メールクライアントソフトウェア。
【請求項１１】
電子メールボックスの内容リストを表示装置上に表示する方法であって、
ａ）前記メールボックスの内容をスクロール可能なリストとして前記表示装置上に表示する段階であって、各メールアイテムは複数のプロパティと共に一覧表示され、前記プロパティは、件名、送信者の名前、送信日付からなる群から選択される段階と、
ｂ）前記メールボックス内の少なくともいくつかのメールアイテムのＭＩＭＥタイプを判定する段階と、
ｃ）前記スクロール可能なリスト内にアイコン画像を前記少なくともいくつかのメールアイテムのそれぞれと関連付けられたプロパティとして表示する段階であって、前記少なくともいくつかのメールアイテムのそれぞれ用のアイコン画像は、前記少なくともいくつかのメールアイテムのそれぞれのＭＩＭＥタイプに従って選択される段階と、
を有することを特徴とする方法。
【請求項１２】
ｄ）ＭＩＭＥタイプをプログラムと関連付ける段階と、
ｅ）あるＭＩＭＥタイプのメールアイテムが開かれた際に当該ＭＩＭＥタイプと関連付けられたプログラムを実行する段階と、
を更に有する請求項１１記載の方法。
【請求項１３】
前記アイコン画像の少なくともいくつかは拡大縮小可能である請求項１１記載の方法。
【請求項１４】
前記表示段階は、アイコンの中央レジストリから少なくともいくつかのアイコンを選択する段階を含む請求項１１記載の方法。
【請求項１５】
前記表示段階は、Ｅメール又はＥメールの添付ファイルに格納されたグラフィカルアイコン情報を読み取る段階を含む請求項１１記載の方法。
【請求項１６】
ｄ）前記表示段階を実行する際に使用するグラフィカルアイコンの保存データを維持管理する段階を、
更に有する請求項１１記載の方法。
【請求項１７】
ｅ）新しいＭＩＭＥタイプのオーサリング／読み取りを実行する能力を有する新しいアプリケーション又はコンポーネントがインストールされた際と、
受信したメールメッセージ内で新しいＭＩＭＥタイプを検出した際と、
定期的にスケジュールされたイベントにより新しいアイコンを取得するべく前記タイプアップデータがサーバーをチェックした際と、
からなる群から選択されたイベントに応答して前記グラフィカルアイコンの保存データ内に新しいアイコン画像を自動的にインストールする段階を、
更に有する請求項１６記載の方法。
【発明の詳細な説明】
【０００１】
（関連出願の相互参照）
本出願は、１９９８年１２月１０日付けの米国特許出願第０９／２０９，１６２号の一部継続出願であり、本引用により、その開示内容のすべてが本明細書に包含される。又、本出願は、同時に出願された同時継続中の米国特許出願第ＢＡＫ−００７号と関連しており、そのすべての開示内容も本引用によって本明細書に包含される。
【０００２】
（発明の分野）
本発明は電子メールプログラムに関し、更に詳しくはメールアイテムのＭＩＭＥタイプごとに異なるアイコンを表示するメールボックスブラウザ表示を備えた電子メールプログラムに関する。
【０００３】
（本技術分野の状況）
近年、電子メール（「Ｅメール」）が、ビジネス、教育、及び個人的な通信に広く使用されるようになっている。電子メールの（特に、ビジネス及び教育分野における）最も便利な機能の１つがバイナリコンピュータファイルをＥメールメッセージに添付する能力である。この機能により、Ｅメールの利用者は、ワードプロセッサ文書、データベース文書、表計算文書、マルチメディア文書などのコンピュータによって作成されたほとんどすべての種類のバイナリファイルを迅速に共有することができる。しかしながら、Ｅメールメッセージへのバイナリファイルの添付には深刻な制約と不都合が存在している。
【０００４】
ＲＦＣ（Ｒｅｑｕｅｓｔ　ｆｏｒ　Ｃｏｍｍｅｎｔｓ）８２１及び８２２によって１９８２年に定義されたオリジナルのインターネットメールシステムには、いくつかの重要な制約事項が存在していた。特に、このシステムは、Ｅメールメッセージで任意の大量データを搬送するように設計されていなかったのである。現実に、１９８２年のＳＭＴＰ（Ｓｉｍｐｌｅ　Ｍａｉｌ　Ｔｒａｎｓｐｏｒｔ　Ｐｒｏｔｏｃｏｌ）規格によれば、Ｅメールメッセージは、行当たりの文字数が１０００文字（３２ｋのブロック）以下のＡＳＣＩＩ文字のみからなる単一メッセージで構成する必要があった。
【０００５】
インターネット電子メールシステムを介してバイナリデータを送信する能力は、インターネットメッセージ用のＭＩＭＥ（Ｍｕｌｔｉｐｕｒｐｏｓｅ　Ｉｎｔｅｒｎｅｔ　Ｍａｉｌ　Ｅｘｔｅｎｓｉｏｎｓ）規格によって実現されたものである。オリジナルのＭＩＭＥ規格は、インターネットＲＦＣ文書（ＲＦＣ１３４１）として公表され、１９９２年６月に承認されている（最新のＭＩＭＥ規格については、ＲＦＣ２０４５、２０４６、及び２０４７を参照されたい）。このＭＩＭＥ規格には、ＭＩＭＥに準拠するためのＥメールのフォーマット方法が記述されている。ＭＩＭＥには、１組のメッセージヘッダフィールドと１組のメッセージ符号化規格が定義されており、これらは、ＲＦＣ８２２のメッセージフォーマットに存在していた制約を克服すると共にインターネット上で使用されている多数のレガシーメール配送システムのいずれを介しても配送できるように設計されている（具体的には、ネットワークワーキンググループ（Ｎｅｔｗｏｒｋ　Ｗｏｒｋｉｎｇ　Ｇｒｏｕｐ）のＮ．フリード（Ｎ．　Ｆｒｅｅｄ）及びＮ．ボレンスタイン（Ｎ．　Ｂｏｒｅｎｓｔｅｉｎ）による１９９６年１１月発行のＲＦＣ２０４５「ＭＩＭＥの第１部：メッセージ本文のフォーマット（Ｍｕｌｔｉｐｕｒｐｏｓｅ　Ｉｎｔｅｒｎｅｔ　Ｍａｉｌ　Ｅｘｔｅｎｓｉｏｎｓ　（ＭＩＭＥ）　Ｐａｒｔ　Ｉ：　Ｆｏｒｍａｔ　ｏｆ　Ｍｅｓｓａｇｅ　Ｂｏｄｉｅｓ）」を参照されたい）。ＭＩＭＥメッセージヘッダフィールドでは、ＲＦＣ８２２に定義されていたものを拡張し、Ｅメールメッセージの内容と符号化タイプを記述する。ＭＩＭＥ規格で許されている符号化体系には、「ｑｕｏｔｅｄ−ｐｒｉｎｔａｂｌｅ」と「ｂａｓｅ６４」が含まれている。更に、これに加えて、３つの非符号化データタイプも許されており、これらは、「８ｂｉｔ」、「７ｂｉｔ」、及び「ｂｉｎａｒｙ」と呼ばれている。尚、レガシーゲートウェイでは、まだバイナリデータを処理しておらず、ほとんどすべてのＭＩＭＥ準拠メッセージは、バイナリデータをＭＩＭＥの既定の符号化体系である「７ｂｉｔ」として処理していることに留意されたい。
【０００６】
現在、ＭＩＭＥは、主要な電子メールクライアント、即ち、「ユーザーエージェント」のすべて（例：Ｍｉｃｒｏｓｏｆｔ　Ｏｕｔｌｏｏｋ及びＯｕｔｌｏｏｋ　Ｅｘｐｒｅｓｓ、Ｎｅｔｓｃａｐｅ　Ｃｏｍｍｕｎｉｃａｔｏｒ、及びＱｕａｌｃｏｍｍ　Ｅｕｄｏｒａ）において実装されている。但し、これらのプログラムが処理できるのは、「ｔｅｓｔ／ｐｌａｉｎ」、「ｔｅｘｔ／ｈｔｍｌ」、「ｍｕｌｔｉｐａｒｔ／ａｌｔｅｒｎａｔｉｖｅ」、及び「ｍｕｌｔｉｐａｒｔ／ｍｉｘｅｄ」を含むいくつかのＭＩＭＥタイプのみである。恐らく、ＭＩＭＥ規格の最も重要な機能は、あらゆるバイナリデータを適切に符号化し古いメールゲートウェイ及びエクスチェンジのＳＭＴＰシステムを介して送信することを可能にしたということであろう。前述のものなどの各メールクライアントプログラムは、あらゆるタイプのファイルをユーザーがメールメッセージに添付できるように変更されており、これは、（ａ）任意ファイルのバイナリデータを「７ｂｉｔ」や「ｂａｓｅ６４」などの認められているＭＩＭＥ符号化体系に変換する符号化モジュールの組み込み、（ｂ）ＭＩＭＥタイプが「ｍｕｌｔｉｐａｒｔ」に設定されているメッセージを処理するためのメールクライアント機能の拡張、（ｃ）ユーザーが指定したファイルを「ｍｕｌｔｉｐａｒｔ」メッセージの一部として組み込むこと、によって実現されたものである。従って、長年にわたってメールクライアントプログラムがユーザーに提供してきたのは、単純なテキストメッセージの送信（「ｃｏｎｔｅｎｔ−ｔｙｐｅ＝ｔｅｘｔ／ｐｌａｉｎ」による送信）と、単純なテキストメッセージへのファイルの添付（「ｃｏｎｔｅｎｔ−ｔｙｐｅ＝ｍｕｌｔｉｐａｒｔ／ｍｉｘｅｄ」）という２つの選択肢のみであったのである。
【０００７】
最近になり、前述の各プログラムは、作成者が別のフォントやスタイルなどのテキストフォーマットの基本的なタイプを使用できるように拡張されているが、これは、これらの機能をメールクライアントのテキストエディタに組み込み、ＭＩＭＥタイプを「ｔｅｘｔ／ｈｔｍｌ」に設定してメッセージを送信することによって実現されている。現在、マイクロソフト（Ｍｉｃｒｏｓｏｆｔ）社のＯｕｔｌｏｏｋの場合には、フル機能テキストエディタであるＷｏｒｄによる電子メールメッセージの作成も可能になっており、これは、ＷｏｒｄのファイルフォーマットをＨＴＭＬに変換した後に、メールメッセージの本文に手作業で挿入して送信することによって実現されている。しかしながら、その他のタイプのファイルフォーマットの場合には、メールクライアントプログラムは、まだＭＩＭＥタイプを「ｍｕｌｔｉｐａｒｔ」に設定したメッセージへのファイルの添付に依存しているのである。
【０００８】
バイナリファイルが添付されたＥメールメッセージの送信者と受信者がブランドとバージョンが同一のＥメールプログラムを使用していると共に、両方のプログラムの設定が実質的に同一であれば、受信者のＥメールプログラムは、添付されたバイナリファイルに適切な復号を自動的に施し、送信者がＥメールに添付したファイルとまったく同一のファイルを生成するであろう。しかしながら、送信者と受信者が使用するＥメールプログラムが異なる場合には、受信したファイルを復号するのに別の復号プログラムの使用を要することもある。
【０００９】
ファイルが適切に受信並びに復号された後においても、当該ファイルを開くことがファイルの受信者にとって困難な場合も多い。ファイルの受信者は「ファイルのアイコンをクリックすればファイルが開く」と考えるのだが、ファイルのアイコンをクリックしてもファイルが開かないことも多く、「ａｐｐｌｉｃａｔｉｏｎ　ｎｏｔ　ｆｏｕｎｄ」のようなエラーメッセージが表示されたり、ひどい場合には、不適切なアプリケーションによってファイルが開かれ、「意味不明な文字列」が表示されたりするのである。即ち、ファイルの受信者は、ファイルを読み取る（開く）ことができるプログラムを備えていなければならないのであり、例えば、Ｅメールメッセージに表計算ファイルが添付されておれば、当該ファイルをファイルの受信者が開くためには、表計算プログラムを備えていなければならない。無論、技術的には、ファイルの受信者は当該ファイルを作成したものと同一ブランドのプログラムを備えている必要はない。しかしながら、作成したものとは異なるプログラムによってファイルを開くのは可能だとはいうものの、それはかなり厄介なことになり得る。即ち、ファイルの受信者は、どのような種類のファイルがＥメールメッセージに添付されているのかを知らなければならず、自分のコンピュータに存在するどのプログラムがそのファイルタイプを読み取ることができるのかを知らなければならず、そのプログラムを起動しなければならず、そのプログラム内から当該ファイルを開かねばならず、更には、そのプログラムが当該ファイルを変換する間、待機しなければならないのである。
【００１０】
このようなインターネット電子メールに伴う制約事項は、送信者と受取人が使用するオペレーティングシステム（ＯＳ）が異なる場合には、更に厄介なものになり得る。メール添付ファイルの符号化体系（及びファイル圧縮体系）の中にはＯＳに依存したものがあり、受信したファイルを復号（又は解凍）できないということも起こり得るのである。
【００１１】
電子メールに伴うこれらの制約事項により、ファイルの電子メールメッセージへの添付操作は、多くの人々（特に上級者ではないコンピュータユーザー）にとって億劫なものになっている。実際、初心者ユーザーの中には、１つのアプリケーションを起動して文書を作成し、その文書を保存し、別のＥメールアプリケーションを起動してＥメールメッセージを作成し、先程保存しておいた文書を探し出してＥメールメッセージに添付するという作業が余りに難しく、怯んでしまう者もいるのである。更に、初心者ユーザーの場合には、Ｅメールメッセージに添付されたファイルを「ダウンロード」した後に、当該ファイルをハードディスク上で見つけ出すことができないという不満を漏らす者も多い。
【００１２】
【外１】
2004502239.tif 000003
【００１３】
【外２】
2004502239.tif 000004
【００１４】
現在のシステムでは、アイコンをファイルに関連付けるのに、ＭＩＭＥタイプではなく、ファイルタイプ拡張子が使用されている。この結果、バージョンが異なるソフトウェアによって作成されたバージョンの異なるソフトウェアや文書を異なるアイコンと関連付ける機能に重要な制約が生じている。例えば、ＭＳ　Ｗｏｒｄで作成されたすべての文書には、使用したＷｏｒｄのバージョンとは無関係に同一のファイルタイプ（ファイル拡張子）が付加され、この結果、同一のアイコンと関連付けられてしまう。しかしながら、多くの場合、新しいバージョンのファイルは古いバージョンのソフトウェアで読み取ることができないため、問題となる。
【００１５】
先程包含された親出願には、メインＥメールコンポーネントといくつかのインストール可能コンポーネントを含む電子メールソフトウェアが開示されている。インストール可能コンポーネントには、様々な種類の文書の作成／読み取りを行うオーサリング／読み取りコンポーネント（ａｕｔｈｏｒｉｎｇ／ｒｅａｄｉｎｇ　ｃｏｍｐｏｎｅｎｔ）と様々な種類のメッセージを一覧表示したり異なるスタイルでメッセージを一覧表示するメールボックスコンポーネントが含まれている。メインＥメールコンポーネントは、電子メールメッセージの保存と転送に直接関連する機能の基礎となるグラフィカル・ユーザー・インターフェイスを提供すると共に、オーサリング・コンポーネントで作成されたメッセージをＭＩＭＥに準拠したメッセージに変換するのに必要なすべてのデータのバンドリングとアンバンドリングを処理する。オーサリング／読み取りコンポーネントは、Ｅメールプログラムに組み込まれたアプリケーションのように機能し、表計算、グラフィック、データベースなどの特定のタイプの文書をＥメールプログラム内から作成して直接Ｅメールすることを可能にする。又、オーサリング／読み取りコンポーネントは、Ｅメールレターへのバイナリファイルの添付に伴う従来の問題なしに受信文書を読み取ることを可能にしている。本発明のオーサリングコンポーネントがデータをメインＥメールコンポーネントに渡し、メインＥメールコンポーネントがデータをＭＩＭＥに準拠したメッセージとしてパッケージ化する。一方、メッセージを受信した場合には、メインＥメールコンポーネントがＭＩＭＥメッセージを（必要に応じて）連結して復号し、そのデータがＭＩＭＥタイプと関連付けられたオーサリング／読み取りコンポーネントに送られる。
【００１６】
先程包含された親出願には、メールボックス処理ソフトウェアが広範に開示並びに権利請求されており、このソフトウェアにより、モジュラーコンポーネントＥメールソフトウェアのコンテキストにおいて、様々なタイプのメッセージが様々な方法でメールボックスの一覧に表示される。
【００１７】
親出願に開示されているいくつかの機能はあらゆるＥメールクライアントソフトウェアに適用可能であり、それらを使用してＥメールへのファイルの添付とＥメールに添付されたファイルの使用プロセスを改善することができる。
【００１８】
（発明の要約）
従って、異なる種類のメッセージと添付文書を異なる種類のアイコンと共に表示する受信ボックスリストを含む電子メールプログラムを提供することが本発明の目的である。
【００１９】
以下に詳述するこの目的に従い、本発明による電子メール・クライアント・ソフトウェアは、メッセージを各メッセージ用のアイコンと共に一覧表示するメールボックス・ディスプレイヤを備えており、それらの各アイコンは、各メッセージのＭＩＭＥタイプと関連付けられている。添付ファイルを含むメールは、そのＥメールに添付された当該ファイルのタイプを示すアイコンと共に受信ボックスに一覧表示される。メールボックス・ディスプレイヤは、ＭＩＭＥタイプを解釈し、ＯＳ内のアイコンレジストリ又はＥメール・クライアント・ソフトウェアが維持管理するアイコン・ディレクトリから適切なアイコンを選択する。例えば、ＡＤＯＢＥ　ＡＣＲＯＢＡＴファイルが添付されたＥメールを受信すると、メールボックの一覧の当該メールアイテムのそばにＡＤＯＢＥ　ＡＣＲＯＢＡＴアイコンが表示される。更に、親出願で説明されているように特別なオーサリング／読み取りコンポーネントによってメッセージが作成されている場合には、そのオーサリング／読み取りコンポーネントに関連付けられたアイコンがメールアイテムを表示する行の一部としてメールボックスの一覧に表示される。
【００２０】
本発明の電子メールソフトウェアは、親出願のＥメールソフトウェアを参照して例を挙げて説明するが、このＥメールソフトウェアには、メインＥメールコンポーネントと、このＥメールコンポーネントとアプリケーションプログラムインターフェイス（ＡＰＩ）を介して双方向に通信するいくつかのインストール可能コンポーネントが含まれている。そして、インストール可能コンポーネントには、オーサリング／読み取りコンポーネント及びメールボックスディスプレイヤコンポーネントが含まれている。又、好適な実施例によれば、アイコンのデータベースを維持管理するためのコンポーネントも含まれる。
【００２１】
メールボックス・ディスプレイヤ・コンポーネント機能は、メールボックスを開いたりメールのリストをスクロールしたりする際に、ユーザーによって起動される。メールボックス・ディスプレイヤ・コンポートネントには、最新技術のメールボックス・ディスプレイヤのすべての機能を含むと共に、メッセージのＭＩＭＥタイプに基づいてアイコンディレクトリをチェックしアイコンを当該メッセージに関する情報と共に表示する機能を含むことが好ましい。ＬＩＮＧＯによる実施例では、各メッセージごとに、メッセージのＭＩＭＥタイプとサブタイプに基づいた追加のＴＹＰＥフィールドを有するデータ構造が生成され、この内部ＴＹＰＥフィールドを使用してＭＩＭＥタイプをアイコンに関連付けている。別の実施例では、アイコン画像と関連付けるために、メッセージの「ｃｏｎｔｅｎｔ−ｔｙｐｅ」（ＭＩＭＥタイプ）ヘッダの内容を直接使用している。そして、アイコンディレクトリに適切なアイコンが存在しない場合には、メールボックスディスプレイヤは、ＭＩＭＥメッセージのサブパートに格納されているアイコン画像データを使用する（このデータが提供されている場合）。そうでなければ、アイコンを使わないか、或いは、一般アイコンを使用する。好適な実施例によれば、タイプアップデータコンポーネントによってタイプテーブル（ＴＹＰＥＴＡＢＬＥ）が維持管理される。このタイプテーブルには、メッセージタイプ及びサブタイプのリストが、メールボックスディスプレイヤが使用する拡大縮小可能なアイコンのファイル名と共に含まれている。本発明には、メールボックスの内容の表示用に選択されたフォントサイズと整合するよう、アイコンのサイズを変更できる拡大縮小可能なアイコンが好ましい。
【００２２】
タイプアップデータコンポーネントの複数の実施例が提供されている。第１実施例によれば、アイコンは、ユーザーが手作業でインストール／削除する。第２実施例によれば、アイコンは、モジュラーオーサリング／読み取りコンポーネントがインストール／削除される際に自動的にインストール／削除される。第３実施例によれば、メールボックスディスプレイヤが新しいメッセージタイプを検出するごとに新しいアイコンが自動的に追加され、この新しいアイコンは、オペレーティングシステムのレジストリ又はメッセージに組み込まれているアイコン画像データから取得される。そして、第４実施例によれば、タイプアップデータが新しいアイコン情報について自動的にネットワークサーバーに問い合わせ、必要に応じてアイコン画像データをダウンロードする。
【００２３】
本発明の更なる目的と利点は、添付の図面と関連して提示する以下の詳細な説明を参照することにより、当業者に明らかになるであろう。
【００２４】
（好適な実施例の詳細な説明）
図２を参照すれば、本発明による電子メールクライアントソフトウェアは、メッセージを各メッセージ用のアイコンと共に一覧表示するメールボックスディスプレイヤを備えており、これらの各アイコンは各メッセージのＭＩＭＥタイプと関連付けられている。ファイルが添付されているメールは、そのＥメールに添付されたファイルのタイプを示すアイコンと共にこの受信ボックスに一覧表示される。例えば、図２に示すように、「議事録（Ｍｉｎｕｔｅｓ  ｏｆ  Ｍｅｅｔｉｎｇ）」という件名のメールメッセージは、このＥメールメッセージにＷＯＲＤファイルが添付されていることを示すＭＩＣＲＯＳＯＦＴ  ＷＯＲＤアイコンと共に一覧表示されている。そして、「新しいラジオ広告」という件名のメッセージは、このＥメールにオーディオファイルが添付されていることを示すＱＵＩＣＫＴＩＭＥ  ＷＡＶアイコンと共に一覧表示されており、「新しい広告パンフレット」という件名のメッセージには、ＡＣＲＯＢＡＴアイコンが示しているように、ＡＤＯＢＥ  ＡＣＲＯＢＡＴファイルが添付されている。同様に「売上予測」メッセージは、ＥＸＣＥＬ表計算アイコンと共に表示され、「顧客データベース」メッセージは、ＦＩＬＥＭＡＫＥＲ  ＰＲＯデータベースアイコンと共に表示され、「年末会計」メッセージは、ＱＵＩＣＫＥＮアイコンと共に表示されている。本発明によれば、メールボックスディスプレイヤは、メッセージのＭＩＭＥタイプ及び／又は添付ファイル（存在する場合）のＭＩＭＥタイプ又は文書タイプを解釈し、ＯＳ内のアイコンレジストリ又はＥメールクライアントソフトウェアが維持管理するアイコンディレクトリから適切なアイコンを選択する。
【００２５】
本発明の電子メールソフトウェアは、先に包含された親出願のＥメールソフトウェアを参照して例を挙げて説明するが、このＥメールソフトウェアには、メインＥメールコンポーネントと、このＥメールコンポーネントとアプリケーションプログラミングインターフェイス（ＡＰＩ）を介して双方向に通信するいくつかのインストール可能コンポーネントが含まれている。そして、インストール可能コンポーネントには、オーサリング／読み取りコンポーネントと少なくとも１つのメールボックスディスプレイヤコンポーネントが含まれる。図２ａは、先程包含された親出願のＥメールソフトウェアの実施例を示しており、メールメッセージに関連付けられたオーサリング／読み取りコンポーネントを示すアイコンが表示されている。この実施例は、従来技術のＥメールクライアントからＥメールを受信すると共に、それらに対してＥメールを送信する能力を有している。図２ａには、２つのアイコン（即ち、ペーパークリップ及びＡＣＲＯＢＡＴアイコン並びにペーパークリップ及びＰＨＯＴＯＳＨＯＰアイコン）を有する２つのメールアイテムが表示されたメールボックスリストが示されている。これらのデュアルアイコン表示は、当該メールが特別なオーサリング／読み取りコンポーネントなしに作成され、その他のプログラム（この場合には、ＡＣＲＯＢＡＴ及びＰＨＯＴＯＳＨＯＰ）によって作成された添付ファイルを備えていることを示している。
【００２６】
前述のように、本発明の電子メールソフトウェアは、先程包含された親出願のＥメールソフトウェアを参照して例を挙げて説明するが、このＥメールソフトウェアには、メインＥメールコンポーネントといくつかのインストール可能コンポーネントが含まれている。又、好適な実施例によれば、アイコンのデータベースを維持管理するためのコンポーネントも含まれており、図３に、これらのコンポーネントの間の関係が示されている。
【００２７】
この図３に示すように、ＴＹＰＥＴＡＢＬＥと呼ばれるデータ構造１０がタイプアップデータ（ＴＹＰＥ  ＵＰＤＡＴＥＲ）と呼ばれるコンポーネント１２によって作成され、維持管理される。本発明によるタイプアップデータの実用的な例が付属書Ｂに示されているが、これについては後程詳細に説明する。ＴＹＰＥＴＡＢＬＥの主な目的は、メールボックスディスプレイヤコンポーネント１４によって読み取られることである。タイプアップデータ１２とメールボックスディスプレイヤ１４は、関数の呼び出しと共有データ構造ＴＹＰＥＴＡＢＬＥを使用して互いに通信する。例えば、メールボックスディスプレイヤは、タイプ・アップデータ・コンポーネント内の「ｉｎｉｔｉａｌｉｚｅ＿ＴＹＰＥＴＡＢＬＥ」関数（図６ａの３０６）に対する呼び出しを含んでいる。メールボックスディスプレイヤは、親出願及び先程包含された出願第ＢＡＫ−００７号に説明されているＡＰＩを使用して電子メールクライアント・ソフトウェアと通信する。図３に示すように、メールボックスディスプレイヤコンポーネント１４と電子メールクライアントソフトウェア１６もユーザーのメールボックス内の電子メールメッセージデータに対して双方向にアクセスしている。好適な実施例によれば、親出願に説明されている種類のインストール可能なアプリケーションコンポーネントによってメッセージが作成されている場合には、電子メールメッセージは、そのＭＩＭＥタイプ及びサブタイプヘッダフィールドから導出された情報を含む任意選択のタイプフィールドと共に保存される。
【００２８】
メールボックスディスプレイヤコンポーネント機能は、メールボックスを開いたりメールのリストをスクロールした際に、ユーザーによって自動的に起動される。当業者であれば、大部分の電子メールクライアントソフトウェアは、受信ボックス、送信ボックス、読み取り済みメール、送信済みメールなどのいくつかの異なるメールボックスを備えていることを理解するであろう。メールボックスディスプレイヤコンポーネント１４は、最新技術のメールボックスディスプレイヤのすべての機能を含むと共に、ＴＹＰＥＴＡＢＬＥ（及び、後述するように、ＭＩＭＥメッセージの本文）をチェックして適切なアイコンを探し出してメールボックス表示の当該メッセージの件名のそばに表示する機能を含むことが好ましい。好適な実施例によれば、アイコンは小さな画像ファイル（例：ＥＰＳファイル又はＧＩＦファイル）で保存され、ＴＹＰＥＴＡＢＬＥデータ構造によってポイントされている。又、メールボックス表示において様々なサイズのフォントを使用できるよう、アイコングラフィックのサイズを拡大縮小する手段も提供される。これには、３つの方法が使用可能であり、まず、標準的な補間アルゴリズムを使用して画像を拡大縮小することができる。２番目として、解像度が異なる複数のアイコン画像のコピーを保存しておき、限られた数のフォントポイントサイズに整合するように取得してもよい。更には、３番目として（現状ではこれが好ましい）、以上の２つの方法を組み合わせて使用し、各アイコンごとに少なくとも１つの画像を保存し、フォントのポイントサイズに最も密接に整合するアイコンを選択した後に、必要に応じて拡大縮小し、フォントポイントサイズに更に整合させるのである。
【００２９】
表１は、ＴＹＰＥＴＡＢＬＥデータを永久ストレージ（例：ハードディスク）に保存する方法を示している。
【００３０】
【表１】
2004502239.tif 000005
【００３１】
この表１には、少なくとも５つのＭＩＭＥタイプが示されている。最初の４つは、オーサリング／読み取り用のインストール可能コンポーネントを利用するＭＩＭＥタイプである。インストール可能コンポーネントは、「．ｄｘｒ」ファイル拡張子によって示されている。表１に示されているｍｕｌｔｉｐａｒｔ／ｍｉｘｅｄ（５番目）ＭＩＭＥタイプは、インストール可能コンポーネントではなく、外部アプリケーションによって作成された添付ファイルを示している。図２ａを参照して述べたように、インストール可能コンポーネントで作成されたメールメッセージとこの添付ファイルを一般的なペーパークリップアイコンを使用して区別している。
【００３２】
表２は、ＲＡＭにロードされる際のＴＹＰＥＴＡＢＬＥデータ構造を示している。
【００３３】
【表２】
2004502239.tif 000006
【００３４】
ＴＹＰＥＴＡＢＬＥデータ構造をＲＡＭにロードしたものはＳＧ＿ＴＹＰＥＴＡＢＬＥと呼ばれ、図２に示す構造を有している。この構造には、アイコンに対するポインタが含まれており、模範的な実施例におけるこのポインタは、ＬＩＮＧＯのキャストメンバである。
【００３５】
前述のように、模範的な実施例によれば、Ｅメールメッセージが添付ファイルを有している場合には、一般的な添付ファイルアイコンが表示されると同時に、当該添付ファイルに固有のアイコンも表示される。この２番目のアイコンは、オンザフライで作成され（例えば、図６ｂに示されているように）、ＳＧ＿ＡＴＴＡＣＨ＿ＴＹＰＥＴＡＢＬＥと呼ばれるＲＡＭ内のデータ構造によってポイントされる。このＳＧ＿ＡＴＴＡＣＨ＿ＴＹＰＥＴＡＢＬＥの基本構造が表３に示されている。
【００３６】
【表３】
2004502239.tif 000007
【００３７】
この表３に示すように、ファイル拡張子がアイコンポインタと当該添付ファイルの読み取りに使用するプログラムへのパス名に関連付けられている。図６ｂを参照して以下に詳述するように、このＳＧ＿ＡＴＴＣＨ＿ＴＹＰＥＴＡＢＬＥは、システムレジストリのアイコンを使用してオンザフライで作成される。
【００３８】
メールボックスディスプレイヤコンポーネントの好適な実施例が付属書Ａに詳細に定義されているが、この付属書Ａは、先程包含された親出願の付属書Ｂと類似している。本明細書の付属書Ａに示すコードリストは、メインメールボックス表示関数が始まる第２８７行以降において親出願のコードリストと異なっており、このメインメールボックス表示関数は、図４のフローチャートにも示されている。ここでこの図４と付属書Ａを参照する。この関数は、付属書Ａでは第２８７行及び図４のフローチャートの開始点１０１から始まっている。まず、メールボックスの内容を表示する前に、付属書Ａの第２９３〜３００行及び図４の１０３、１０５に示すように、ＴＹＰＥＴＡＢＬＥへのポインタと関連システム機能がセットアップされる。そして、様々なメールボックスフィールド（例：メッセージ番号、件名、日付、メッセージ読み取りインジケータ）が付属書Ａの第３０２〜３０７行及び図４の１０７においてクリアされる。付属書Ａの第３０９〜３１１行及び図４の１０７において、アイコングラフィックスの表示に使用される「スプライトチャネル」（ＭＡＣＲＯＭＥＤＩＡグラフィックホルダ）がクリアされる。次に、付属書Ａの第３１３行以降及び図４の１０９において、メッセージリストが表示される。メールボックス表示の各行を構成する要素（例：メッセージの件名、日付、送信者の名前、並びにグラフィック要素）は「プロパティ（属性）」と呼ばれるが、付属書Ａの第３２０〜３２６行及び図４の１１１、１１３において、これらのプロパティがメッセージから読み取られる。図４の１１１及び付属書Ａの第３２０〜３２３行に示されているように、メールボックス、ＭＩＭＥタイプ、及びステータスを除き、すべてのプロパティは、読み取られると自動的に表示される。一方、メールボックス、ＭＩＭＥタイプ、及びステータスの各プロパティは、図４の１１３及び付属書Ａの第３２４〜３２６行において読み取っている。好適な実施例によれば、ＭＩＭＥタイプアイコンは、メッセージのステータスの表示にも使用されており、メッセージが既読の場合には、アイコンはグレースケールで表示されるが、メッセージが未読の場合は、アイコンは色付きで表示される。アイコンを見つけ出し、そのアイコンをグレースケール又は色付きに設定する段階が付属書Ａの第３２８〜３５５行に示されている。付属書Ａの第３３２〜３３４行及び図４の１１５でスプライトチャネルカウンタが設定され、ＴＹＰＥＴＡＢＬＥデータ構造が付属書Ａの第３４０〜３４３行及び図４の１１７において解析される。このメッセージのＭＩＭＥタイプを示すアイコンがＴＹＰＥＴＡＢＬＥに含まれていない場合は、付属書Ａの第３４４〜３４６行及び図４の１１９において既定のアイコンが選択される。当該メッセージのステータスがメッセージ（その添付ファイル）が既読であることを示している場合には、付属書Ａの第３４８〜３４９行及び図４の１２１においてグレースケールバージョンのアイコンが設定される。そして、メールボックスの内容リストをスクロールする際に迅速にアクセスできるよう、選択されたアイコンがアイコンリストに追加されるが、これは付属書Ａの第３５１〜３５２行及び図４の１２３に示されている。付属書Ａの第３５４〜３７４行及び図４の１２５のメインメールボックス表示関数の残りの部分は、適切な画面位置へのテキストとアイコンの配置に関連するものである。尚、第３１５〜３７４行に示されているコードは、図４の１２７の判定が示しているように、メールボックス内のメッセージの数だけ繰り返される。そして、一覧表示するメッセージがなくなると、メインメールボックス表示関数は、付属書Ａの第３７６行及び図４の１２９に示すように終了する。
【００３９】
ここでは、これらのコード又はフローチャートには示されていないが、前述のように、アイコンのディレクトリに適切なアイコンが存在しない場合には、メールボックスディスプレイヤは、ＭＩＭＥメッセージのサブパートに格納されているアイコン画像データを使用する（このデータが提供されている場合）。当業者であれば、前述の規格によって定義されているＭＩＭＥファイル内の場所からアイコン画像データを読み取ることにより、この機能を簡単に実行できることを理解するであろう。これを実装するコードは、付属書Ａの第３２５行又は付属書Ａの第３４５行に挿入可能である。
【００４０】
前述のように、付属書Ａの残りの部分は、親出願の付属書Ｂのメールボックスコンポーネントと実質的に同一であり、それらの説明は先程包含された親出願に十分に示されている。当業者であれば、これら付属書のコードリストがＭＡＣＲＯＭＥＤＩＡ　ＤＩＲＥＣＴＯＲ開発スイートに固有のものであり、別の開発環境を使用しても同一の機能を実現することができることを理解するであろう。図５は、このメールボックス表示関数の機能を、別のプログラミング言語に適用可能な更に一般化した形態で示している。
【００４１】
この図５を参照すれば、メールボックスの表示は、２０１において始まり、メッセージのリストが読み取られる。次に２０２において、ＴＹＰＥＴＡＢＬＥが既に初期化されているかどうかをチェックし、判定する。そして、初期化されていなければ、図７を参照して以下に詳述するように、２０４においてＴＹＰＥＴＡＢＬＥが初期化される。２０３において、メールボックス表示は次のメッセージを取得する。そして、２０３で取得されたこのメッセージに関し、メールボックスは、２０５においてそのプロパティ、２０７においてそのプロパティ値を取得する。そして、２０９において、そのプロパティが表示用アイコンを使用すると判定された場合には、２１１において「アイコン取得」ルーチンが呼び出される（このルーチンは図６に示されている）。このアプリケーションに関係するメッセージプロパティは、（ａ）メッセージのＭＩＭＥタイプ、及び（ｂ）メッセージにファイルが添付されているかどうか、の２つである。図５のフローチャート（２０９）において、本システムは、ＬＩＮＧＯのシンボルとして実装されている当該メッセージのプロパティ（例：＃ｔｙｐｅ、＃ｄａｔｅ、＃ｍａｉｌｂｏｘ、＃ｓｔａｔｕｓ）がアイコンによって表されるかどうかをルックアップする。この実装では、各プロパティが個別にコーディングされているが、図５のフローチャートが説明する更に一般的な実装では、ターゲットシンボル（例：＃ｔｙｐｅ）がリストデータ構造の要素であるかどうかを図５の手順２０９においてチェックすることにより（例：Ｐｒｏｐｅｒｔｉｅｓ＿ｗｉｔｈ＿Ｉｃｏｎｓ＝（＃ｔｙｐｅ，＃ｈａｓ＿ａｔｔａｃｈｍｅｎｔ）実現することができる。そして、当該アイコンが２１３で表示される。一方、２０９で、プロパティがアイコンを使用しないと判定された場合には、２１５においてプロパティの値が表示される。そして、２１７において、このメッセージに更なるプロパティが存在するかどうかが判定され、存在する場合には、プログラムは２０５に戻るが、存在しない場合には、２１９において一覧表示すべき更なるメッセージが存在するかどうかが判定される。そして、存在する場合には、プログラムは２０３に戻り、存在しなければ、プログラムは２２１で終了する。
【００４２】
図６は、付属書Ａの第３２８〜３５０行に含まれている機能を一般化したものを示している。これは、図５の２１１で呼び出される「アイコン取得」ルーチンを一般化したものである。このルーチンは、３０１において、呼び出し元のプログラムからプロパティ名とプロパティ値を取得して始まる。そして、３０３において、プロパティが「ＭＩＭＥタイプ」である、即ち、ＬＩＮＧＯ実装の「＃ｔｙｐｅ」に一致していると判定されると、３０５においてＭＩＭＥタイプのアイコンが取得され、３０７においてそのアイコンへのポインタが呼び出し元のプログラムに返される。このＭＩＭＥタイプのアイコン取得に必要な実際の段階は図６ａに示されている。３０９において、プロパティが「添付ファイルが存在する（ｈａｓ　ａｔｔａｃｈｍｅｎｔ）」であると判定されると、「添付ファイルが存在する」のアイコンが３１１において取得され、３０７において、そのアイコンへのポインタが呼び出し元のプログラムに返される。Ｍｉｃｒｏｓｏｆｔ　Ｗｉｎｄｏｗｓプラットフォーム用のファイル添付アイコンの取得手順が図６ｂで説明されている。この代わりに、ファイル拡張子からＭＩＭＥタイプ及びＭＩＭＥタイプアイコンへのマッピングに使用するファイルタイプ用のフィールドをＴＹＰＥＴＡＢＬＥデータ構造に含めてもよい。この方法でＴＹＰＥＤＡＴＡを変更した場合には、メッセージタイプ及びファイルタイプのアイコンルックアップの両方でＴＹＰＥＴＡＢＬＥを使用することになる。これに関連し、従来未知のメッセージタイプ又はファイルタイプと検出した際にそれらのファイルタイプ／ＭＩＭＥタイプの関連付けをインストールするためのＴＹＰＥ＿ＵＰＤＡＴＥＲの変更も必要になろう。又、ファイルタイプ拡張子は、ＭＩＭＥタイプほどに豊富ではないため、同一のファイルタイプ拡張子が多数の異なるＭＩＭＥタイプにマッピングされることになる。例えば、ソフトウェア製造者が彼らのソフトウェアのバージョンごとに異なるＭＩＭＥサブタイプを割り当てた場合、その同一ソフトウェアの異なるバージョンにおいて、このような状況が生じることになる。
【００４３】
３１３において、プロパティが「既読（ｍｅｓｓａｇｅ　ｒｅａｄ）」であると判定された場合は、「既読」用のアイコンが３１５で取得され、３０７において、そのアイコンへのポインタが呼び出し元のプログラムに返される。そして、３１７において、プロパティが「優先順位（ｐｒｉｏｒｉｔｙ）」であると判定されると、「優先順位」用のアイコンが３１９で取得され、３０７においてそのアイコンへのポインタが呼び出し元のプログラムに返される。以上の内容から、当業者であれば、様々なプロパティに対して多数の異なるアイコンを表示することができることを理解するであろう。
【００４４】
図６ａは、付属書Ａの第３２８〜３４６行に含まれている実装を一般化したものを示している。これは、図６の３０５で呼び出される「ＭＩＭＥタイプ用アイコン取得（ｇｅｔ　ｉｃｏｎ　ｆｏｒ　ｍｉｍｅｔｙｐｅ）」関数である。このルーチンは、呼び出し元のプログラムから「ＭＩＭＥタイプ」を与えられ、３０２において始まる。まず３０４において、ＴＹＰＥＴＡＢＬＥが既に初期化されているかどうかを判定する。そして、初期化されていない場合は、３０６において初期化する。この初期化ルーチンは、タイプアップデータコンポーネントに存在するか、或いは、タイプアップデータコンポーネントに存在する関数を呼び出す形態であってもよい。例えば、ＬＩＮＧＯの実装においては、タイプアップデータコンポーネントの一部である関数Ｒｅａｄ＿ＴｙｐｅＴａｂｌｅ＿Ｆｉｌｅ（図８）を使用してＴＹＰＥＴＡＢＬＥデータ構造を初期化している。そして、この初期化の後に、或いは、３０６においてＴＹＰＥＴＡＢＬＥが既に初期化済みであると判定された場合には、３０８において、ＭＩＭＥタイプを使用してＴＹＰＥＴＡＢＬＥからアイコンポインタを取得する。付属書Ａの第３２８〜３４２行を参照されたい。次に３１０において、そのアイコンポインタがＮＵＬＬ（空）であるかどうかを判定する。そして、ＮＵＬＬである場合には、３１２において、「メッセージタイプインストール（ｉｎｓｔａｌｌ　ｍｅｓｓａｇｅ　ｔｙｐｅ）」ルーチンが呼び出される。タイプアップデータコンポーネントに含まれているこの「メッセージタイプインストール」ルーチンについては、ＭＩＭＥタイプ用の新しいメッセージハンドラとアイコンのインストールを示す図１１を参照して後程詳細に説明する。一方、アイコンポインタがＮＵＬＬでなければ、３１４において、アイコンポインタが「アイコンがインストールされていない（ｉｃｏｎ　ｎｏｔ　ｉｎｓｔａｌｌｅｄ）」をポイントしているかどうかを判定する。そして、これをポイントしている場合には、３１６において、アイコンポインタを既定のポインタに設定するが、いずれの場合にも、３１８において、ＮＵＬＬではないポインタが呼び出し元のプログラムに返される。
【００４５】
図６ｂは、Ｅメールメッセージの添付ファイル用のアイコンを取得する模範的な手順を示している。３２０で始まり、まず添付ファイルのファイル拡張子を読み取る（Ｗｉｎｄｏｗｓプラットフォームの場合には、ファイル名の「．」に続く３文字によって「ファイルタイプ」が決定されるが、Ｍａｃｉｎｔｏｓｈプラットフォームなどのその他のプラットフォームでは、ファイルタイプと「クリエータコード」が、ファイルの「リソースフォーク」に一覧表示されている。従って、これらのプラットフォームの場合には、まず、ファイルのリソースフォークからファイルタイプ（及びクリエータコード）を読み取ることに留意されたい）。このファイルタイプ（又はファイルタイプとクリエータコード）の判定が完了すると、このルーチンは、３２２においてＳＧ＿ＴＹＰＥＴＡＢＬＥ内で適切なアイコンを見つけ出そうと試みる。そして、３２４において適切なアイコンが見つけられなかったと判定された場合には、３２６において、ＳＧ＿ＡＴＴＡＣＨ＿ＴＹＰＥＴＡＢＬＥ内で適切なアイコンを見つけ出そうと試みる。そして、３２８において、再度適切なアイコンが見つけられなかったと判定されると、ルーチンは、３３０及び３３２において、システムレジストリ内で適切なアイコンを見つけ出そうと試みる（その他のオペレーティングシステムでは、アイコンリソースが別の場所に保存されている場合がある。例えば、Ｍａｃｉｎｔｏｓｈ　ＯＳの場合には、アイコンリソースは、非表示の「デスクトップ」ファイル内に保存されていることに留意されたい）。３３４において適切なアイコンが検出された場合には、３３６においてそのアイコンへのポインタが設定され、そのポインタが３３８においてＳＧ＿ＡＴＴＡＣＨ＿ＴＹＰＥＴＡＢＬＥに書き込まれる。そして、３４０において、そのアイコンポインタがメールボックスディスプレイヤに返される。図６の３１１と図５の２１１を参照されたい。一方、３４２において適切なアイコンが検出されない場合には、アイコンポインタは提供されない。
【００４６】
次に付属書Ｂを参照すれば、第１〜２６行には、タイプアップデータの概要と紹介情報が提供されている。このタイプアップデータには、１１個の関数が含まれている。この中の３つは、メールボックスディスプレイヤによって呼び出されるパブリック関数であり、これらには、Ｉｎｉｔｉａｌｉｚｅ＿ＴｙｐｅＴａｂｌｅ、Ｉｎｓｔａｌｌ＿Ｔｙｐｅ、及びＵｎｉｎｓｔａｌｌ＿Ｔｙｐｅが含まれる。そして、残りの８つの関数は、タイプアップデータ内部で使用されるプライベート関数であり、これらには、Ｗｒｉｔｅ＿Ｔｙｐｅｔａｂｌｅ、Ｒｅａｄ＿Ｔｙｐｅｔａｂｌｅ＿Ｆｉｌｅ、Ｒｅａｄ＿Ｉｃｏｎ＿Ｆｉｌｅｓ＿Ｔｏ＿ＲＡＭ、ｒｅａｄ＿ｉｃｏｎＦｉｌｅ、ｄｅｌｅｔｅ＿ｍｉｍｅｔｙｐｅ、ｉｎｓｅｒｔ＿ｍｉｍｅｔｙｐｅ、ｄｅｌｅｔｅ＿ｆｉｌｅｔｙｐｅ、ｉｎｓｅｒｔ＿ｆｉｌｅｔｙｐｅが含まれる。まず、Ｉｎｉｔｉａｌｉｚｅ＿ＴｙｐｅＴａｂｌｅ関数は、図７及び付属書Ｂの第２９〜６０行に示されている。この関数は図７の３６０において始まり、まず３６２においてＳＧ＿ＴＹＰＥＴＡＢＬＥをＮＩＬ（空）に設定する（付属書Ｂの第３９行）。次に３６４において、ＳＧ＿ＡＴＴＡＣＨ＿ＴＹＰＥＴＡＢＬＥをＮＩＬに設定する（付属書Ｂの第４３行）。そして、３６６においてディスク上に保存されているＴＹＰＥＴＡＢＬＥファイルがＳＧ＿ＴＹＰＥＴＡＢＬＥに読み込まれる（付属書Ｂの第４４行）。このｒｅａｄ＿ｔｙｐｅｔａｂｌｅ＿ｆｉｌｅ内部関数は、図８及び付属書Ｂの第２０７〜２５２行に示されている。３６８（付属書Ｂの第４６行）においてエラーチェックが実行され、データがＲＡＭにロードされたかどうかを判定する。そして、データが読み込まれていない場合には、３７０（付属書Ｂの第４７行）においてユーザーに警告し、３７２（付属書Ｂの第４８行）において失敗（ｆａｉｌｕｒｅ）を返す。一方、データが読み込まれている場合には、３７４（付属書Ｂの第５１行）においてアイコンファイルがＲＡＭに読み込まれる。そして、３７６（付属書Ｂの第４７行）においてエラーチェックが実行され、データの読み込みに成功していれば、３７８（付属書Ｂの第６０行）においてこの関数は終了する。
【００４７】
次に図８及び付属書Ｂの第２０７〜２５２行を参照すれば、ｒｅａｄ＿ｔｙｐｅｔａｂｌｅ＿ｆｉｌｅ関数は３８０（付属書Ｂの第２１８行）において始まる。まず３８２（付属書Ｂの第２２２行）において、ＳＧ＿ＴＹＰＥＴＡＢＬＥをＮＩＬに設定する。そして、３８４（付属書Ｂの第２２４より２２７行）でｔｙｐｅｔａｂｌｅ．ｔｘｔファイルを開き、３８６（付属書Ｂの第２２９行）においてファイルのオープンエラーのチェックを行う。そして、ファイルのオープンエラーが検出された場合には、３８８（付属書Ｂの第２３０行）においてエラー警告を生成し、３９０（付属書Ｂの第２３１行）でファイルを閉じ、３９２（付属書Ｂの第２３２行）においてＳＧ＿ＴＹＰＥＴＡＢＬＥを返す。一方、エラーなしにファイルがオープンされた場合には、３９１において最初の行を読み込むが、ファイルの末尾に到達した際に最終的に３９４で終了するループ（第３９４〜４０８行）がこの３９１から始まっている。このループが終了すると、３９０（付属書Ｂの第２３１行）においてファイルが閉じられ、３９２（付属書Ｂの第２３２行）においてＳＧ＿ＴＹＰＥＴＡＢＬＥが返される。尚、付属書Ｂの第２３５〜２３９行に示すように、ＬＩＮＧＯの場合には行単位の読み取りができないため、このＬＩＮＧＯによる実装では、ファイル全体を１つの文字列に読み込んで行単位の読み取りをシミュレートしている。１つの行を読み取ると、その行の最初のワード（データ）がＭＩＭＥタイプである（付属書Ｂの第２４３行）。このＭＩＭＥタイプを３９６（付属書Ｂの第２４４行）においてＳＧ＿ＴＹＰＥＴＡＢＬＥに挿入する。そして、３９８において、ＭＩＭＥタイプが定義されていないことが判明した場合には、４００でユーザーに警告し、３９１において次の行が読み込まれる。一方、ＭＩＭＥタイプが定義されている場合には、４０２（付属書Ｂの第２４５行）において、その行の次のワード（ファイルタイプ）が読み込まれ、ＳＧ＿ＴＹＰＥＴＡＢＬＥに挿入される。続いて、４０４（付属書Ｂの第２４６行）において、行内の次のワード（ｉｃｏｎＦｉｌｅＮａｍｅ）が読み込まれてＳＧ＿ＴＹＰＥＴＡＢＬＥに挿入され、４０６（付属書Ｂの第２４７行）において行内の次のワード（ｍｓｇＨａｎｄｌｅｒ）が読み込まれてＳＧ＿ＴＹＰＥＴＡＢＬＥに挿入される。４０８において検出されたすべてのエラーが４００において報告されるが、前述のように、このプロセスは、ｔｙｐｅｔａｂｌｅ．ｔｘｔファイルのすべての読み取りが完了するまで継続される。
【００４８】
関数Ｗｒｉｔｅ＿ＴｙｐｅＴａｂｌｅ＿Ｆｉｌｅが図９及び付属書Ｂの第１５９〜２０６行に説明されている。この関数は、図１１を参照して後述するＩｎｓｔａｌｌ＿Ｔｙｐｅ関数によって新しいＭＩＭＥタイプとアイコンがＳＧ＿ＴＹＰＥＴＡＢＬＥに追加された後に、そのＳＧ＿ＴＹＰＥＴＡＢＬＥの内容をｔｙｐｅｔａｂｌｅ．ｔｘｔに書き戻す。このＷｒｉｔｅ＿ＴｙｐｅＴａｂｌｅ＿Ｆｉｌｅ関数は４１０（付属書Ｂの第１６３行）において始まり、まず４１２（付属書Ｂの第１６８行）においてＳＧ＿ＴＹＰＥＴＡＢＬＥ構造がＮＩＬであるかどうかをチェックする。そして、ＮＩＬの場合には、４１４（付属書Ｂの第１６９行）においてエラーメッセージを生成し、４１６（付属書Ｂの第１７０行）において「失敗」メッセージを返す。一方、ＳＧ＿ＴＹＰＥＴＡＢＬＥ構造がＮＩＬでなければ、４１８（付属書Ｂの第１７３行）においてｔｙｐｅｔａｂｌｅ．ｔｘｔファイルのバックアップコピーを作成し、４２０（付属書Ｂの第１７６〜１８０行）において新しい空のファイルが作成される。そして、４２２（付属書Ｂの第１８１行）においてエラーチェックが実行され、新しいファイルの作成にエラーが検出された場合には、４２４（付属書Ｂの第１８２行）においてエラーメッセージが返され、４２６（付属書Ｂの第１８３行）でバックアップファイルが回復された後に、４２８（付属書Ｂの第１８４行）において戻りコードが「失敗」に設定される。そして、４３０（付属書Ｂの第２０３行）でｔｙｐｅｔａｂｌｅ．ｔｘｔファイルが閉じされ、４３２（付属書Ｂの第２０４行）においてバックアップファイルを削除した後に、４３４（付属書Ｂの第２０５〜２０６行）において戻りコードを返す。一方、新しいファイルの作成にエラーがなければ、第１８７〜１８８行においてそのファイルを書き込みアクセス用に開き、第１９１行において開始行カウンタを設定する。そして、４３６（付属書Ｂの第１９２行）でＳＧ＿ＴＹＰＥＴＡＢＬＥ内の最初の（次の）エントリを読み込み、４３８（付属書Ｂの第１９３行）においてＳＧ＿ＴＹＰＥＴＡＢＬＥの末尾に到達したと判定された場合には、４４０（付属書Ｂの第２０１行）において戻りコードを「成功（ｓｕｃｃｅｓｓ）」に設定し、４３０でファイルを閉じ、４３２でバックアップを削除した後に、４３４で戻りコードを返す。
【００４９】
ＳＧ＿ＴＹＰＥＴＡＢＥの末尾に到達するまでは、４４２において書き込みデータを設定され、４４６（付属書Ｂの第１９４行）においてＭＩＭＥタイプが文字列に書き込まれる。更に、４４６、４４８、及び４５０（付属書Ｂの第１９５〜１９７行）において、ｆｉｌｅｔｙｐｅ、ｉｃｏｎｆｉｌｅｎａｍｅ、及びｍｅｓｓａｇｅｈａｎｄｌｅｒｆｉｌｅｎａｍｅが、それぞれ文字列に追加される。そして、４５２（付属書Ｂの第１９８行）において、その文字列を新しいｔｙｐｅｔａｂｌｅ．ｔｘｔファイルに書き込み、４５４（付属書Ｂの第１９９〜２００行）において行区切り文字を書き込んだ後に、この関数は４３６にループして戻るが、これらの動作は、ＳＧ＿ＴＹＰＥＴＡＢＬＥ内のすべてのエントリが読み込まれ、新しいｔｙｐｅｔａｂｌｅ．ｔｘｔファイルに書き込まれるまで継続する。
【００５０】
図１０は、付属書Ｂの第２５５〜２９０行に示されている関数Ｒｅａｄ＿Ｉｃｏｎ＿Ｆｉｌｅｓ＿Ｔｏ＿ＲＡＭを示している。この関数は、図１０の４５６（付属書Ｂの第２５５行）において始まり、まず４５８（付属書Ｂの第２５９行）でＳＧ＿ＴＹＰＥＴＡＢＬＥ構造内になにかＭＩＭＥタイプが定義されているかどうかを判定する。そして、存在していなければ、アイコンが定義されておらず、４６０（付属書Ｂの第２６０行）においてエラーメッセージが返され、４６２（付属書Ｂの第２６１行）で戻りコードが「失敗」に設定されて４６４（付属書Ｂの第２６１〜２６２行）においてこの戻りコードが返される。一方、ＳＧ＿ＴＹＰＥＴＡＢＬＥ構造が空でなければ、この関数は、既定のアイコンをＲＡＭにロードし、４６６（付属書Ｂの第２６５行）において、それに対するポインタを設定する。このアイコンポインタの番号は、付属書Ｂの第２６８行のＬＩＮＧＯのｃａｓｔＮｕｍｂｅｒに関連したものになっており、このｃａｓｔＮｕｍｂｅｒを増分するカウンタを第２７０行で設定している。４６８（付属書Ｂの第２７１行）において、ＳＧ＿ＴＹＰＥＴＡＢＬＥ構造内の最初の（次の）エントリを読み込む。そして、４７０（付属書Ｂの第２７２行）において、読み取るエントリが存在していないと判定された場合には、４７２において戻りコードが「成功」に設定され、４６４（付属書Ｂの第２８８行）でその戻りコードが返される。一方、エントリが残っている間は、４７４においてＭＩＭＥタイプが読み込まれ、４７６（付属書Ｂの第２７３行）においてそのＭＩＭＥタイプに対するｉｃｏｎｆｉｌｅｎａｍｅが読み込まれる。そして、４７８（付属書Ｂの第２７４行）において、このＭＩＭＥタイプに関連付けられたアイコンが存在しないと判定されると、４８０（付属書Ｂの第２７５行）において既定のアイコンポインタが割り当てられるが、そうでなければ、４８２（付属書Ｂの第２７７行）において、関数ｒｅａｄ＿ｉｃｏｎｆｉｌｅ（付属書Ｂの第２９５〜２９８行）を使用して次のアイコンビットマップとポインタを読み込む。そして、４８４（付属書Ｂの第２７８行）においてアイコンポインタがＮＩＬではないと判定された場合には、第２７９行においてｃａｓｔＮｕｍが増分される。そうでなければ、ｃａｓｔＮｕｍは増分されず、４８０（付属書Ｂの第２８０行）において既定のアイコンポインタが使用されるが、いずれの場合にも、ＭＩＭＥタイプと関連付けられているアイコンポインタが４８６（付属書Ｂの第２８３行）において挿入される。そして、第２８４行でカウンタが増分され、４６８（付属書Ｂの第２８５行）において次のエントリがＳＧ＿ＴＹＰＥＴＡＢＬＥから読み込まれる。
【００５１】
図１１は、特定のＭＩＭＥタイプ又はファイルタイプ用の新しいアイコン及び／又はメッセージハンドラのインストールに使用するｉｎｓｔａｌｌ＿ｔｙｐｅ関数を示している。この関数は、アイコンファイル名、メッセージハンドラプログラム名、及びＭＩＭＥタイプ又はファイルタイプのいずれかを含む入力を取得して６００から始まる（付属書Ｂの第７１〜７５行）。この入力は、ユーザーから、或いは、後述する自動手段によって提供することができる。まず、６０２（付属書Ｂの第７８行）においてＴＹＰＥＴＡＢＬＥファイルがＲＡＭに読み込まれ、ＳＧ＿ＴＹＰＥＴＡＢＬＥが作成される。そして、６０４（付属書Ｂの第８０行）での判定において、そのＳＧ＿ＴＹＰＥＴＡＢＬＥが空であれば、６０６（付属書Ｂの第８１〜８２行）でエラーが返される。そうでなければ、６０８（付属書Ｂの第８７行）において、６００で指定されたＭＩＭＥタイプ（又はファイルタイプ）をＳＧ＿ＴＹＰＥＴＡＢＬＥから取得する（存在している場合）。ＳＧ＿ＴＹＰＥＴＡＢＬＥにそのＭＩＭＥタイプ（又はファイルタイプ）が存在し、それが既にアイコン及びメッセージハンドラに関連付けられている場合には、６１２（付属書Ｂの第９０行）において、それを再定義するべきかどうかに関してユーザーに確認を求める。そして、ユーザーがＮＯを選択した場合には、６１４（付属書Ｂの第９４行）においてエラーが返される。一方、そのＭＩＭＥタイプが以前に定義されていなかったり、或いはユーザーがそれを再定義することを選択した場合には、６１６（付属書Ｂの第１０２行）において、６００で指定されたメッセージハンドラプログラムの有効性（例：それがハードディスク上又はネットワークに存在するかどうか）をチェックする。そして、それが有効ではない場合には、６１４（付属書Ｂの第１０４〜１０５行）においてエラーが返される。一方、メッセージハンドラとＭＩＭＥタイプ（ファイルタイプ）が有効な場合には、６１８（付属書Ｂの第１０８行）においてＳＧ＿ＴＹＰＥＴＡＢＬＥ内でそれらを互いに関連付ける。次に、６２０（付属書Ｂの第１１０行）において、６００で指定されたアイコンファイル名の有効性をチェックし、有効でない場合には、６２２（付属書Ｂの第１１２行）で既定のアイコンを指定し、６２４（付属書Ｂの第１１１行）においてエラー警告が返されるが、いずれの場合にも、６２６（付属書Ｂの第１１４行）において、指定されたアイコンファイル名又は（必要に応じて）既定のアイコンがメッセージハンドラ及びＭＩＭＥタイプ（ファイルタイプ）とＳＧ＿ＴＹＰＥＴＡＢＬＥ内で関連付けられる。そして、６２８（付属書Ｂの第１２２〜１２５行）でＳＧ＿ＴＹＰＥＴＡＢＬＥからｔｙｐｅｔａｂｌｅ．ｔｘｔファイルに書き戻し、エラーが発生しなければ、６３０（付属書Ｂの第１２６行）において「成功」が返される。
【００５２】
当業者であれば、モジュラーオーサリング／読み取りコンポーネントがインストール／除去される際に、アイコンが自動的にインストール／除去されるよう、ｉｎｓｔａｌｌ＿ｔｙｐｅ関数を別のプログラムによって呼び出すことができることを理解するであろう。本明細書のコード又は図面には具体的に示されていないが、当業者であれば、本明細書の付属書Ｂと親出願のコンポーネントインストールコードを参照することにより、この第２の実施例の実装方法を理解するであろう。
【００５３】
第３の実施例によれば、メールボックスディスプレイヤが新しいメッセージタイプを検出するたびに新しいアイコンが自動的に追加される。これらの新しいアイコンは、オペレーティングシステムのレジストリ又はメッセージに組み込まれたアイコン画像データから取得されるが、当業者であれば、本明細書の付属書Ｂと前述のＭＩＭＥ規格を参照することにより、この実施例の実装方法を理解するであろう。
【００５４】
第４の実施例によれば、必要に応じて、或いはスケジュールに従って、タイプアップデータが新しいアイコン情報についてネットワークサーバーに問い合わせ、アイコン画像データをダウンロードする。当業者であれば、ファイルサーバーからデータをダウンロードする自動アップデータは周知であり、そのような周知の自動アップデータを本明細書の付属書Ｂと共に参照することにより、この実施例を実装できることを理解するであろう。
【００５５】
以上、本明細書では、ＭＩＭＥタイプを識別し異なるアイコンを表示する方法及び装置を含む機能拡張された電子メールシステムのいくつかの実施例について説明及び例証した。尚、本発明の特定の実施例について説明しているが、これは、本発明をそれらに限定することを意図するものではなく、本発明は、その技術が許容するだけの広い範囲を有しており、その仕様も同様に読み取られるべきである。従って、特定のコードリストを開示しているが、その他のコードも利用することができるものと理解されたい。例えば、付属書においては、ＭＡＣＲＯＭＥＤＩＡ　ＤＩＲＥＣＴＯＲのＬＩＮＧＯコードによって本発明を示しているが、本発明は、「ＭＯＺＩＬＬＡ」エンジンに基づいて、Ｃ＋＋により、或いは、その他の数多くの一般的な開発ツールによって実装することができる。又、インストール可能なオーサリング／読み取りコンポーネントを備えるＥメールクライアントと関連する本出願人の親出願を参照して本発明を開示しているが、メールボックスのリストにＭＩＭＥタイプを表すアイコンを表示する本明細書に開示された原理は、その他の種類のＥメールクライアントにも適用可能であることを認識されたい。更には、アイコン画像を保存する方法（即ち、拡大縮尺可能な画像）を参照して特定の構成を開示しているが、その他の構成も同様に使用可能であることを理解されたい。又、本発明はコンピュータ画面上での表示を参照して示されているが、この表示は、テレビ、個人用情報端末、携帯電話、腕時計などにおけるものであってもよいことを理解されたい。従って、当業者であれば、権利請求された精神と範囲を逸脱することなく、本発明に対して更なるその他の変更が可能なことを理解するであろう。
（付属書の簡単な説明）
（付属書Ａ）
本発明によるメールボックスディスプレイヤのＭＣＲＯＭＥＤＩＡ　ＤＩＲＥＣＴＯＲ用のプログラムリストである。
（付属書Ｂ）
本発明によるタイプアップデータのＭＡＣＲＯＭＥＤＩＡ　ＤＩＲＥＣＴＯＲ用のプログラムリストである。
（付属書Ａ：メールボックスディスプレイヤのコード）
００１   −−− メールボックスディスプレイヤの実装
００２   −−− キッドコード（ＫｉｄＣｏｄｅ）電子メールクライアントのメールボックスハンドラのコード
００３   −−− このＤｉｒｅｃｔｏｒ ＭＩＡＷは、メールボックスを各メッセージ当たり１行で構成されるリストとしてウィンドウ内に表示するものである。
００４   −−− 各メッセージは、次の表示フィールドを備えている。
００５   −−− １． メッセージの番号
００６   −−− ２． メッセージの送信者
００７   −−− ３． メッセージのＭＩＭＥタイプとステータス（単一のアイコンを使用して両プロパティを示す）
００８   −−− ４． メッセージの件名ヘッダ
００９   −−− ５． メッセージの日付
０１０
０１１
０１２   ｏｎ ｓｔａｒｔＭｏｖｉｅ
０１３         ｇｌｏｂａｌ ＳＧ＿ｌａｓｔＡｃｔｉｖｅＷｉｎｄｏｗ −−− ＫＣの最新のアクティブウィンドウを記録しておくスーパーグローバル変数
０１４         ｇｌｏｂａｌ ｍｂｘＧ＿ｕｓｅｒｎａｍｅ −−− 現在のユーザー名
０１５         ｇｌｏｂａｌ ｍｂｘＧ＿ｍｅｓｓａｇｅｓ −−− メッセージのリスト
０１６         ｇｌｏｂａｌ ｍｂｘＧ＿ｎＭｓｇｓ −−− メールボックス内のメッセージの数
０１７         ｇｌｏｂａｌ ｍｂｘＧ＿ｂｏｘＮａｍｅ −−− 現在のメールボックス名
０１８         ｇｌｏｂａｌ ｍｂｘＧ＿ｗｈｉｃｈＬｉｎｅ −−− 現在のハイライト行 ＝ ｍｓｇＮｕｍｂｅｒ
０１９         ｇｌｏｂａｌ ｍｂｘＧ＿ｓｕｂｔｒａｃｔＬｉｎｅ
０２０         ｇｌｏｂａｌ ｍｂｘＧ＿ｌｉｐｓ
０２１
０２２         ｓｅｔ ｍｂｘＧ＿ｌｉｐｓ ＝ ０
０２３
０２４         −−− ＡＰＩによってメインムービーに呼び出される。
０２５         ｔｅｌｌ ｔｈｅ ｓｔａｇｅ ｔｏ ｅｍｈ＿ｃｏｎｔｉｎｕｅ（＃ｍａｉｌｂｏｘ）
０２６   ｅｎｄ
０２７
０２８
０２９   ｏｎ ａｃｔｉｖａｔｅＷｉｎｄｏｗ
０３０         ｇｌｏｂａｌ ＳＧ＿ｌａｓｔＡｃｔｉｖｅＷｉｎｄｏｗ
０３１         ｇｌｏｂａｌ ｍｂｘＧ＿ｍｙＷｉｎｄｏｗ
０３２         ｓｅｔ ＳＧ＿ｌａｓｔＡｃｔｉｖｅＷｉｎｄｏｗ ＝ ｍｂｘＧ＿ｍｙＷｉｎｄｏｗ
０３３   ｅｎｄ ａｃｔｉｖａｔｅＷｉｎｄｏｗ
０３４
０３５
０３６   −−− ムービーハンドラを停止する。
０３７   −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
０３８   ＭＩＡＷ内のＳｔｏｐＭｏｖｉｅハンドラは、ムービーが最後まで再生されるか、
０３９   −−− 或いは別のムービーにジャンプしたときにのみ呼び出される。
０４０   −−− ウィンドウが閉じられたり、ウィンドウがｆｏｒｇｅｔＷｉｎｄｏｗ
０４１   −−− コマンドによって削除された場合には呼び出されない。
０４２
０４３   ｏｎ ｓｔｏｐＭｏｖｉｅ
０４４         ｃｌｅａｎＵｐＭｏｖｉｅ（）
０４５   ｅｎｄ
０４６   −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
０４７   ＭＩＡＷを閉じるか、或いはｆｏｒｇｅｔＷｉｎｄｏｗが呼び出されたときに
０４８   −−− 自動的に呼び出される。
０４９
０５０   ｏｎ ｃｌｏｓｅＷｉｎｄｏｗ
０５１         ｃｌｅａｎＵｐＭｏｖｉｅ（）
０５２   ｅｎｄ
０５３   −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
０５４
０５５   −−− ｃｌｅａｎＵｐＭｏｖｉｅは、ｓｔｏｐＭｏｖｉｅ及びｃｌｏｓｅＷｉｎｄｏｗの両方から呼び出す
０５６   −−− ことができる。
０５７
０５８   ｏｎ ｃｌｅａｎＵｐＭｏｖｉｅ
０５９         ｇｌｏｂａｌ ｍｂｘＧ＿ｗｈｉｃｈＬｉｎｅ
０６０         ｇｌｏｂａｌ ｍｂｘＧ＿ｓｕｂｔｒａｃｔＬｉｎｅ
０６１         ｇｌｏｂａｌ ｍｂｘＧ＿ｎＭｓｇｓ
０６２         ｇｌｏｂａｌ ｍｂｘＧ＿ｕｓｅｒｎａｍｅ
０６３         ｇｌｏｂａｌ ｍｂｘＧ＿ｌｉｐｓ
０６４
０６５         −−− フィールドとグローバル変数をクリアする。
０６６
０６７         ｐｕｔ ”” ｉｎｔｏ ｆｉｅｌｄ ”ＭａｉｌｂｏｘＴｉｔｌｅ”
０６８         ｐｕｔ ”” ｉｎｔｏ ｆｉｅｌｄ ”ｐｒｅｐｏｓｉｔｉｏｎＴｉｔｌｅ”
０６９         ｐｕｔ ”” ｉｎｔｏ ｆｉｅｌｄ ”ＭｅｓｓａｇｅＮｕｍｂｅｒ”
０７０         ｐｕｔ ”” ｉｎｔｏ ｆｉｅｌｄ ”ＭａｉｌｂｏｘＴｏ”
０７１         ｐｕｔ ”” ｉｎｔｏ ｆｉｅｌｄ ”ＭａｉｌｂｏｘＳｕｂｊｅｃｔ”
０７２         ｐｕｔ ”” ｉｎｔｏ ｆｉｅｌｄ ”ＭａｉｌｂｏｘＤａｔｅ”
０７３         ｐｕｔ ”” ｉｎｔｏ ｆｉｅｌｄ ”ｍｅｓｓａｇｅｒｅａｄ”
０７４
０７５         ｓｅｔ ｍｂｘＧ＿ｎＭｓｇｓ ＝ ０
０７６         ｓｅｔ ｍｂｘＧ＿ｌｉｐｓ ＝ ０
０７７         ｒｅｓｔＨｉｌｉｔｅ（）
０７８
０７９         ｉｆ ｆｉｎｄＥｍｐｔｙ（ｍｅｍｂｅｒ ５０） ＞ ５０ ｔｈｅｎ
０８０               ｓｅｔ ｔｈｅ ｓｃｒｉｐｔＴｅｘｔ ｏｆ ｍｅｍｂｅｒ ５０ ＝ ””
０８１         ｅｎｄ ｉｆ
０８２
０８３         ｓｅｔ ｔｈｅ ｍｅｍｂｅｒＮｕｍ ｏｆ ｓｐｒｉｔｅ ６ ＝ ｔｈｅ ｍｅｍｂｅｒＮｕｍ ｏｆ ｍｅｍｂｅｒ ”ｌｉｐｓ ｕｐ”
０８４         ｓｅｔ ｔｈｅ ｌｏｃ ｏｆ ｓｔｒｉｔｅ ４ ｔｏ ｐｏｉｎｔ（８００， ４）
０８５         ｓｅｔ ｔｈｅ ｌｏｃ ｏｆ ｓｐｒｉｔｅ ５ ＝ ｐｏｉｎｔ（８００， １９）
０８６   ｅｎｄ ｃｌｅａｎＵｐＭｏｖｉｅ
０８７
０８８
０８９   −−− ＡＰＩパブリックハンドラ −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
０９０   −−−
０９１   −−− ＭＩＡＷのＤｉｒｅｃｔｏｒ起動に伴う問題に対処するための不恰好な
０９２   −−− 裏技である。その問題とは、ＭＩＡＷでハンドラを呼び出した後に、
０９３   −−− 呼び出し元のムービーが次のフレームに進むまでＭＩＡＷ用の
０９４   −−− ＳｔａｒｔＭｏｖｉｅハンドラが実行されないことである。
０９５   −−− 従って、制御が呼び出し元ムービーに返されるまでＭＩＡＷ内の
０９６   −−− 本当のハンドラが実行されないよう、呼び出し元ムービーの
０９７   −−− 呼び出しシーケンスを設計しなければならない。しかしながら、
０９８   −−− ＭＩＡＷ内の少なくとも１つのハンドラは、ＳｔａｒｔＭｏｖｉｅハンドラが実行
０９９   −−− される前に呼び出し元ムービーによって呼び出されなければならない。
１００
１０１   −−− ｓｔａｒｔＭｅｕｐは偽のハンドラであり、メインムービーから呼び出され
１０２   −−− ると、すぐにメインムービーに戻り、このムービーのｓｔａｒｔＭｏｖｉｅ
１０３   −−− ハンドラを実行させる。
１０４
１０５   −−− この不細工な裏技の第２部分は、ＭＩＡＷのｓｔａｒｔＭｏｖｉｅハンドラ内
１０６   −−− に含まれている。それは、呼び出し元ムービー内のｗｏｒｋＡｒｏｕｎｄ
１０７   −−− ハンドラに対するｃｏｎｔｉｎｕｅＣｏｍｐｏｎｅｎｔと呼ばれる呼び出しである。
１０８   −−− 呼び出し元ムービーのｃｏｎｔｉｎｕｅＲｅｂｕｓハンドラがＭＩＡＷ内の
１０９   −−− 本当のハンドラを呼び出している。
１１０
１１１   ｏｎ ｅｍｃ＿ｓｔａｒｔＭｅｕｐ
１１２         −−− ｐｕｔ ”Ｍａｃｒｏｍｅｄｉａ ｓｕｃｋｓ！”
１１３         ｒｅｔｕｒｎ（ＴＲＵＥ）
１１４   ｅｎｄ ｅｍｃ＿ｓｔａｒｔＭｅＵｐ
１１５
１１６   −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
１１７   ｉｎｉｔＷｉｎｄｏｗは、メッセージハンドラが開かれた際に、Ｅメールメイン
１１８   −−− によって呼び出される。
１１９
１２０   ｏｎ ｅｍｃ＿ｉｎｉｔＷｉｎｄｏｗ ｕｓｅｒＮａｍｅ， ｗｉｎｄｏｗＮａｍｅ
１２１         ｇｌｏｂａｌ ｍｂｘＧ＿ｍｙＷｉｎｄｏｗ
１２２         ｇｌｏｂａｌ ｍｂｘＧ＿ｕｓｅｒｎａｍｅ
１２３         ｇｌｏｂａｌ ｍｂｘＧ＿ｐｌａｔｆｏｒｍＴｙｐｅ
１２４
１２５   −−− ｐｕｔ ”Ｅｎｔｅｒ ｅｍｃ＿ｉｎｉｔＷｉｎｄｏｗ ｍａｉｌｂｏｘ”
１２６         ｓｅｔ ｍｂｘＧ＿ｕｓｅｒｎａｍｅ ＝ ｕｓｅｒＮａｍｅ
１２７         ｓｅｔ ｍｂｘＧ＿ｍｙＷｉｎｄｏｗ ＝ ｗｉｎｄｏｗＮａｍｅ
１２８
１２９         −−− ｐｕｐｐｅｔ ｈｉｌｉｔｅ （ＭＢ ４−１７−９９） ｒｅｍｏｖｅｄ ｔｈｉｓ
１３０         ｒｅｓｅｔＨｉｌｉｔｅ（）
１３１         ｔｅｌｌ ｔｈｅ ｓｔａｇｅ ｔｏ ｅｍｈ＿ｇｅｔＣｏｌｏｒＤｅｐｔｈ（）
１３２         ｓｅｔ ｃｏｌｏｒＤｅｐｔｈ ＝ ｔｈｅ ｒｅｓｕｌｔ
１３３         ｍａｐＣｏｌｏｒｓ（ｃｏｌｏｒＤｅｐｔｈ）
１３４         ｔｅｌｌ ｔｈｅ ｓｔａｇｅ ｔｏ ｅｍｈ＿ｇｅｔＰｌａｔｆｏｒｍＴｙｐｅ（）
１３５         ｓｅｔ ｍｂｘＧ＿ｐｌａｔｆｏｒｍＴｙｐｅ ＝ ｔｈｅ ｒｅｓｕｌｔ
１３６
１３７   −−− ｐｕｔ ”ＥＸＩＴ ｅｍｃ＿ｉｎｉｔＷｉｎｄｏｗ Ｍａｉｌｂｏｘ”
１３８
１３９         ｒｅｔｕｒｎ（ＴＲＵＥ）
１４０
１４１   ｅｎｄ ｅｍｃ＿ｉｎｉｔＷｉｎｄｏｗ
１４２
１４３   −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
１４４   −−− ｃｌｏｓｅＷｉｎｄｏｗは、ＲｅｂｕｓがＭＩＡＷとして再生されない限り、呼び出さ
１４５   −−− れない。
１４６
１４７   ｏｎ ｅｍｃ＿ｃｌｏｓｅＷｉｎｄｏｗ
１４８   −−− ｐｕｔ ”ＥＮＴＥＲ ｅｍｃ＿ｃｌｏｓｅＷｉｎｄｏｗ Ｍａｉｌｂｏｘ”
１４９         ｃｌｏｓｅＷｉｎｄｏｗ（）
１５０         −−− ｓｔｅｐ ｆｒａｍｅ
１５１   −−− ｐｕｔ ”ＥＸＩＴ ｅｍｃ＿ｃｌｏｓｅＷｉｎｄｏｗ Ｍａｉｌｂｏｘ”
１５２         ｒｅｔｕｒｎ（ＴＲＵＥ）
１５３
１５４   ｅｎｄ ｅｍｃ＿ｃｌｏｓｅＷｈｉｄｏｗ
１５５
１５６   −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
１５７
１５８   ｏｎ ｅｍｃ＿ｇｅｔＣｏｍｐｏｎｅｎｔＩｎｆｏ
１５９         ｒｅｔｕｒｎ（ ｌｉｓｔ（ ”ＳｉｍｐｌｅＭａｉｌ”， １， ＃ｍａｉｌｂｏｘ， ”ｔｅｘｔ”））
１６０   ｅｎｄ ｅｍｃ＿ｇｅｔＣｏｍｐｏｎｅｎｔＩｎｆｏ
１６１
１６２   −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
１６３
１６４   ｏｎ ｍｂｘ＿ｇｅｔＭｅｓｓａｇｅ
１６５   −−−
１６６   −−− −−− 「Ｏｐｅｎ」ボタン及びハイライトされているメッセージのダブル
１６７   −−− −−− クリックによってＥメールメインが呼び出され、選択された
１６８   −−− −−− メッセージがメッセージ処理ムービーに渡される。
１６９   −−− −−− このスクリプトは、以前は「Ｏｐｅｎ」キャストメンバスクリプトであった。
１７０   −−−
１７１   −−− ｇｌｏｂａｌ ｍｂｘＧ＿ｗｈｉｃｈＬｉｎｅ
１７２   −−− ｇｌｏｂａｌ ｍｂｘＧ＿ｍｅｓｓａｇｅｓ
１７３   −−−
１７４   −−− ｓｅｔ ｍａｉｌＤａｔａ ＝ ｇｅｔＡｔ（ｍｂｘＧ＿ｍｅｓｓａｇｅｓ， ｍｂｘＧ＿ｗｈｉｃｈＬｉｎｅ）
１７５   −−−
１７６   −−− ｒｅｔｕｒｎ（ｍａｉｌＤａｔａ）
１７７   −−−
１７８   −−−
１７９   −−−
１８０   −−−ｅｎｄ ｍｂｘ＿ｇｅｔＭｅｓｓａｇｅ
１８１
１８２   −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
１８３
１８４   ｏｎ ｍｂｘ＿ｇｅｔＭｅｓｓａｇｅＮｕｍｂｅｒ
１８５         ｇｌｏｂａｌ ｍｂｘＧ＿ｗｈｉｃｈＬｉｎｅ
１８６         ｒｅｔｕｒｎ（ｍｂｘＧ＿ｗｈｉｃｈＬｉｎｅ）
１８７   ｅｎｄ ｍｂｘ＿ｇｅｔＭｅｓｓａｇｅＮｕｍｂｅｒ
１８８
１８９   −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
１９０   −−− ｍｂｘ＿ｔｒａｓｈＭｅｓｓａｇｅｓは、メールファイル内の破棄するメッセージの
１９１   −−− リストを返し、Ｅメールメインが当該メールファイルを書き換える。
１９２   −−− 正しく実装すれば、メールボックス表示内の現在選択されている
１９３   −−− 行のメッセージ番号を判定し、表示を更新してそれらのメッセージを
１９４   −−− リストから削除し、削除されたメッセージ番号のリストを返す。
１９５   −−−
１９６
１９７   ｏｎ ｍｂｘ＿ｔｒａｓｈＭｅｓｓａｇｅｓ
１９８
１９９         ｇｌｏｂａｌ ｍｂｘＧ＿ｍｅｓｓａｇｅｓ −−− メッセージのリスト
２００         ｇｌｏｂａｌ ｍｂｘＧ＿ｎＭｓｇｓ −−− メールボックス内のメッセージの数
２０１         ｇｌｏｂａｌ ｍｂｘＧ＿ｗｈｉｃｈＬｉｎｅ −−− 現在のハイライト行 ＝ ｍｓｇＮｕｍｂｅｒ
２０２
２０３         −−− ｓｅｔ ｍａｉｌＤａｔａ ＝ ｇｅｔＡｔ（ｍｂｘＧ＿ｍｅｓｓａｇｅｓ， ｍｂｘＧ＿ｗｈｉｃｈＬｉｎｅ）
２０４         −−−
２０５         −−− −−− ｔｅｌｌ ｔｈｅ ｓｔａｇｅ
２０６         −−− ｒｅｔｕｒｎ（ｍａｉｌＤａｔａ）
２０７         −−− −−− ｅｎｄ ｔｅｌｌ
２０８
２０９         −−− 複数メッセージを処理可能な実装が必要である。
２１０         −−− 又、その他のムービー内で呼び出すことができるのはＡＰＩ
２１１         −−− ハンドラのみであるというＡＰＩ規則に準拠していない
２１２         −−− ｔｒａｓｈＩｔを書き換えることも必要である。
２１３         −−− ｓｅｔ ｍｅｓｓａｇｅ ＝ ｍｂｘＧ＿ｍｅｓｓａｇｅｓ
２１４         ｉｆ ｍｂｘＧ＿ｗｈｉｃｈＬｉｎｅ ＞ ０ ＡＮＤ ｍｂｘＧ＿ｗｈｉｃｈＬｉｎｅ＜＝ ｍｂｘＧ＿ｎＭｓｇｓ ｔｈｅｎ
２１５               ｔｅｌｌ ｔｈｅ ｓｔａｇｅ ｔｏ ｅｍｈ＿ａｌｅｒｔＵｓｅｒＴｏＴｒａｓｈ（）
２１６               ｓｅｔ ｙｅｓ ＝ ｔｈｅ ｒｅｓｕｌｔ
２１７               ｉｆ ｎｏｔ ｙｅｓ ｔｈｅｎ ｒｅｔｕｒｎ ［］ −− ユーザーが取り消される。
２１８
２１９               ｓｅｔ ｔｒａｓｈＬｉｓｔ ＝ ｌｉｓｔ（ｇｅｔＡｔ（ｍｂｘＧ＿ｍｅｓｓａｇｅｓ， ｍｂｘＧ＿ｗｈｉｃｈＬｉｎｅ））
２２０               ｄｅｌｅｔｅＡｔ（ｍｂｘＧ＿ｍｅｓｓａｇｅｓ， ｍｂｘＧ＿ｗｈｉｃｈＬｉｎｅ）
２２１               ｓｅｔ ｍｂｘＧ＿ｎＭｓｇｓ ＝ ｍｂｘＧ＿ｎＭｓｇｓ − １
２２２               ｄｉｓｐｌａｙＭａｉｌｂｏｘ（ｍｂｘＧ＿ｍｅｓｓａｇｅｓ）
２２３               ｒｅｓｔＨｉｌｉｔｅ（）
２２４         ｅｌｓｅ
２２５               ａｌｅｒｔ（”削除するメッセージをクリックしてください。”）
２２６               ｓｅｔ ｔｒａｓｈＬｉｓｔ ＝ ［］
２２７         ｅｎｄ ｉｆ
２２８
２２９         ｒｅｔｕｒｎ（ｔｒａｓｈｌｉｓｔ）
２３０
２３１   ｅｎｄ ｍｂｘ＿ｔｒａｓｈＭｅｓｓａｇｅｓ
２３２
２３３   −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
２３４   −−− ボックス名とメッセージのリストから構成されるメールボックスの
２３５   −−− データ構造を受け付ける。
２３６
２３７   ｏｎ ｍｂｘ＿ｏｐｅｎＭａｉｌｂｏｘ ｍａｉｌｂｏｘ
２３８         ｇｌｏｂａｌ ｍｂｘＧ＿ｕｓｅｒｎａｍｅ
２３９         ｇｌｏｂａｌ ｍｂｘＧ＿ｍｅｓｓａｇｅｓ
２４０         ｇｌｏｂａｌ ｍｂｘＧ＿ｂｏｘＮａｍｅ
２４１         ｇｌｏｂａｌ ｍｂｘＧ＿ｎＭｓｇｓ
２４２
２４３   −−− ｐｕｔ ”ＥＮＴＥＲ ｍｂｘ＿ｏｐｅｎＭａｉｌｂｏｘ”
２４４         ｓｅｔ ｍｂｘＧ＿ｂｏｘＮａｍｅ ＝ ｇｅｔＡｔ（ｍａｉｌｂｏｘ， １）
２４５         ｐｕｔ ｍｂｘＧ＿ｕｓｅｒＮａｍｅ ＆ ”’ｓ” ＆ ｍｂｘＧ＿ｂｏｘＮａｍｅ ｉｎｔｏ ｆｉｅｌｄ ”ｍａｉｌｂｏｘＴｉｔｌｅ”
２４６
２４７         ｓｅｔ ｂｍｘＧ＿ｍｅｓｓａｇｅｓ ＝ ｇｅｔＡｔ（ｍａｉｌｂｏｘ， ２）
２４８         ｓｅｔ ｍｂｘＧ＿ｎＭｓｇｓ ＝ ｃｏｕｎｔ（ｍｂｘＧ＿ｍｅｓｓａｇｅｓ）
２４９
２５０         ｄｉｓｐｌａｙＭａｉｌｂｏｘ（ｍｂｘＧ＿ｍｅｓｓａｇｅｓ）
２５１
２５２   −−− ｐｕｔ ”ＥＸＩＴ ｍｂｘ＿ｏｐｅｎＭａｉｌｂｏｘ”
２５３         ｒｅｔｕｒｎ（ＴＲＵＥ）
２５４
２５５   ｅｎｄ ｍｂｘ＿ｏｐｅｎＭａｉｌｂｏｘ
２５６
２５７   −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
２５８
２５９   Ｕｔｉｌｉｔｉｅｓ −−
２６０   −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
２６１   テキストフィールドの書式設定を初期化する。
２６２   −−− これについてはＦｒａｎｋ Ｌｅａｈｙに感謝する。
２６３
２６４   ｏｎ ＳｅｔＴｅｘｔＩｎｆｏ ｆｌｄＮａｍｅ， ＦｌｄＶａｌｕｅ， ＦｌｄＡｌｉｇｎ， ＦｌｄＦｏｎｔ， ＦｌｄＳｉｚｅ， ＦｌｄＳｔｙｌｅ
２６５         ｉｆ ｆｌｄＶａｌｕｅ ＜＞ ＥＭＰＴＹ ｔｈｅｎ
２６６               ｐｕｔ ｆｌｄＶａｌｕｅ ｉｎｔｏ ｆｉｅｌｄ ｆｌｄＮａｍｅ
２６７         ｅｎｄ ｉｆ
２６８         ｓｅｔ ｔｈｅ ｔｅｘｔＡｌｉｇｎ ｏｆ ｆｉｅｌｄ ｆｌｄＮａｍｅ ＝ ｆｌｄＡｌｉｇｎ
２６９         ｓｅｔ ｔｈｅ ｔｅｘｔＦｏｎｔ ｏｆ ｆｉｅｌｄ ｆｌｄＮａｍｅ ＝ ｆｌｄＦｏｎｔ
２７０         ｓｅｔ ｔｈｅ ｔｅｘｔＳｉｚｅ ｏｆ ｆｉｅｌｄ ｆｌｄＮａｍｅ ＝ ｆｌｄＳｉｚｅ
２７１         ｓｅｔ ｔｈｅ ｔｅｘｔＳｔｙｌｅ ｏｆ ｆｉｅｌｄ ｆｌｄＮａｍｅ ＝ ｆｌｄＳｔｙｌｅ
２７２   ｅｎｄ
２７３
２７４   −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
２７５   ｏｎ ｆｏｒｍａｔＦｉｅｌｄｓ
２７６
２７７         −−− テキストフィールドの書式設定を行う。
２７８
２７９         ｓｅｔＴｅｘｔＩｎｆｏ ”ＭｅｓｓａｇｅＮｕｍｂｅｒ”，” ”，”ｌｅｆｔ”，”ａｒｉａｌ”，１４，”ｂｏｌｄ”
２８０         ｓｅｔＴｅｘｔＩｎｆｏ ”ＭａｉｌｂｏｘＴｏ”，” ”，”ｌｅｆｔ”，”ａｒｉａｌ”，１４，”ｂｏｌｄ”
２８１         ｓｅｔＴｅｘｔＩｎｆｏ ”ＭａｉｌｂｏｘＳｕｂｊｅｃｔ”，” ”，”ｌｅｆｔ”，”ａｒｉａｌ”，１４，”ｂｏｌｄ”
２８２         ｓｅｔＴｅｘｔＩｎｆｏ ”ＭａｉｌｂｏｘＤａｔｅ”，” ”，”ｌｅｆｔ”，”ａｒｉａｌ”，１４，”ｂｏｌｄ”
２８３         ｓｅｔＴｅｘｔＩｎｆｏ ”Ｍｅｓｓａｇｅｒｅａｄ”，” ”，”ｌｅｆｔ”，”ａｒｉａｌ”，１４，”ｂｏｌｄ”
２８４
２８５   ｅｎｄ ｆｏｒｍａｔＦｉｅｌｄｓ
２８６
２８７   −−− メインメールボックス表示関数
２８８   −−− メールボックススタイルのメッセージリストを表示する。
２８９   −−− 各メッセージの適切な構成要素をフィールドメンバ内に
２９０   −−− 配置し、各行を揃えて表示する。
２９１
２９２   ｏｎ ｄｉｓｐｌａｙＭａｉｌＢｏｘ ｍｓｇＬｉｓｔ
２９３         ｇｌｏｂａｌ ＳＧ＿ＴＹＰＥＴＡＢＬＥ −−− 様々なＭＩＡＷで共有するスーパーグローバル変数
２９４         ｇｌｏｂａｌ ｍｂｘＧ＿ｒｅｄ
２９５         ｇｌｏｂａｌ ｍｂｘＧ＿ｐｌａｔｆｏｒｍＴｙｐｅ
２９６         ｇｌｏｂａｌ ｍｂｘＧ＿ｉｃｏｎＬｉｓｔ
２９７
２９８         −−− ｍｂｘＧ＿ｉｃｏｎＬｉｓｔは、上／下スクロールスクリプトで将来使用する。
２９９         ｓｅｔ ｍｂｘＧ＿ｉｃｏｎＬｉｓｔ ＝ ［：］
３００         ｓｅｔ ｃｏｕｎｔ ＝ ０
３０１
３０２         −−− まず、すべてのフィールドとスプライトをクリアする。
３０３         ｐｕｔ ”” ｉｎｔｏ ｆｉｅｌｄ ”ＭｅｓｓａｇｅＮｕｍｂｅｒ”
３０４         ｐｕｔ ”” ｉｎｔｏ ｆｉｅｌｄ ”ＭａｉｌｂｏｘＴｏ”
３０５         ｐｕｔ ”” ｉｎｔｏ ｆｉｅｌｄ ”ｍａｉｌｂｏｘＳｕｂｊｅｃｔ”
３０６         ｐｕｔ ”” ｉｎｔｏ ｆｉｅｌｄ ”ｍａｉｌｂｏｘＤａｔｅ”
３０７         ｐｕｔ ”” ｉｎｔｏ ｆｉｅｌｄ ”Ｍｅｓｓａｇｅｒｅａｄ”
３０８
３０９         ｒｅｐｅａｔ ｗｉｔｈ ｉ ＝ ４０ ｔｏ ７０
３１０               ｓｅｔ ｔｈｅ ｍｅｍｂｅｒ ｏｆ ｓｐｒｉｔｅ ｉ ＝ ｍｅｍｂｅｒ ”ｂｌａｎｋ”
３１１         ｅｎｄ ｒｅｐｅａｔ
３１２
３１３         −−− ウィンドウのスクロールの際に供給されるよう、すべての
３１４         −−− メッセージの情報をテキストフィールドに書き込む。
３１５         ｒｅｐｅａｔ ｗｉｔｈ ｍｓｇ ｉｎ ｍｓｇＬｉｓｔ
３１６
３１７         −−− メールボックス、ＭＩＭＥタイプ、及びステータスを除き、
３１８         −−− 書き込まれるとそのフィールドは自動的に表示される。
３１９
３２０         ｐｕｔ ｔｈｅ ｌｉｎｅＣｏｕｎｔ ｏｆ ｍｅｍｂｅｒ ”ＭａｉｌｂｏｘＴｏ”＋１ ＆ ＲＥＴＵＲＮ ａｆｔｅｒ ｆｉｅｌｄ ”ＭｅｓｓａｇｅＮｕｍｂｅｒ”
３２１         ｐｕｔ ｇｅｔＰｒｏｐ（ｍｓｇ， ＃ｆｒｏｍ） ＆ ＲＥＴＵＲＮ ａｆｔｅｒ ｆｉｅｌｄ ”ＭａｉｌｂｏｘＴｏ”
３２２         ｐｕｔ ｇｅｔＰｒｏｐ（ｍｓｇ， ＃ｓｕｂｊｅｃｔ） ＆ ＲＥＴＵＲＮ ａｆｔｅｒ ｆｉｅｌｄ ”ｍａｉｌｂｏｘＳｕｂｊｅｃｔ”
３２３         ｐｕｔ ｇｅｔＰｒｏｐ（ｍｓｇ， ＃ｄａｔｅ） ＆ ＲＥＴＵＲＮ ａｆｔｅｒ ｆｉｅｌｄ ”ｍａｉｌｂｏｘＤａｔｅ”
３２４         ｐｕｔ ｇｅｔＰｒｏｐ（ｍｓｇ， ＃ｍａｉｌｂｏｘ） ｉｎｔｏ ｍａｉｌｂｏｘ
３２５         ｐｕｔ ｇｅｔＰｒｏｐ（ｍｓｇ， ＃ｍｉｍｅｔｙｐｅ） ｉｎｔｏ ｍｉｍｅ
３２６         ｐｕｔ ｇｅｔＰｒｏｐ（ｍｓｇ， ＃ｓｔａｔｕｓ） ｉｎｔｏ ｓｔａｔｕｓ
３２７
３２８         −−−−−− ＭＩＭＥタイプのアイコンを表示する。
３２９         −−−−−− メッセージステータスの表示にもＭＩＭＥタイプのアイコンを使用している。
３３０         −−− メッセージが既読の場合には、グレースケールバージョンのアイコンを表示する。既読でなければ、カラーのアイコンを表示する。
３３１
３３２         −−−−−− アイコンは、４０番以上のスプライトチャネルに配置する。
３３３               ｓｅｔ ｉ ＝ ４０ ＋ ｃｏｕｎｔ
３３４               ｓｅｔ ｃｏｕｎｔ ＝ ｃｏｕｎｔ ＋ １
３３５
３３６         −−− メッセージのＭＩＭＥタイプ用のアイコンを見つけ出す。
３３７         −−−−−− このコードはデータアクセス関数を使用して書き換えるべきである。
３３８         −−−−−− 現時点では、ＴＹＰＥＴＡＢＬＥデータ構造のフォーマットを知る必要がある。
３３９
３４０               ｓｅｔ ｍｉｍｅＰｒｏｐｅｒｔｉｅｓ ＝ ｇｅｔＰｒｏｐ（ＳＧ＿ＴＹＰＥＴＡＢＬＥ， ｍｉｍｅ）
３４１               ｓｅｔ ｉｃｏｎＣａｓｔＭｅｍｂｅｒ ＝ ｇｅｔＡｔ（ｍｉｍｅＰｒｏｐｅｒｔｉｅｓ， ２）
３４２               −−− ２番目の項目はキャストメンバ番号である。
３４３
３４４         −−− このタイプが未知のものであれば、既定のアイコンを使用する。
３４５               ｉｆ ｉｃｏｎＣａｓｔＭｅｍｂｅｒ ＝ ０ ｔｈｅｎ ｓｅｔ ｉｃｏｎＣａｓｔＭｅｍｂｅｒ ＝ ｔｈｅ ｎｕｍｂｅｒ ｏｆ ｍｅｍｂｅｒ
３４６               ”ＤｅｆａｕｌｔＩｃｏｎ”
３４７
３４８         −−− メッセージが既読の場合には、グレースケールバージョンのアイコンを取得する。
３４９               ｉｆ ｓｔａｔｕｓ ＝ ”Ｒ” ｔｈｅｎ ｓｅｔ ｉｃｏｎＣａｓｔＭｅｍｂｅｒ ＝ ｉｃｏｎＣａｓｔＭｅｍｂｅｒ ＋ １
３５０
３５１         −−− このアイコンをウィンドウのスクロールに使用するアイコンリストに追加する。
３５２               ａｐｐｅｎｄ （ｍｂｘ＿ｉｃｏｎＬｉｓｔ， ｉｃｏｎＣａｓｔＭｅｍｂｅｒ）
３５３
３５４         −−− 表示用の適切な位置にこのアイコンを配置する。
３５５               ｓｅｔ ｔｈｅ ｍｅｍｂｅｒＮｕｍ ｏｆ ｓｐｒｉｔｅ ｉ ｔｏ ｉｃｏｎＣａｓｔＭｅｍｂｅｒ
３５６
３５７         −−− このアイコンをメールボックスのメッセージリスト内の正しいグリッドセルに表示する。
３５８         −−− すべてのアイコンのｌｏｃＨを５０に設定する。
３５９         ｓｅｔ ｗｈｅｒｅＧｏｅｓＩｃｏｎ ＝ ｔｈｅ ｌｉｎｅＣｏｕｎｔ ｏｆ ｍｅｍｂｅｒ ”ＭａｉｌｂｏｘＴｏ”
３６０         ｐｕｐｐｅｔＳｐｒｉｔｅ ｉ， Ｔｒｕｅ
３６１         ｓｅｔ ｔｈｅ ｖｉｓｉｂｌｅ ｏｆ ｓｐｒｉｔｅ ｉ ＝ ＴＲＵＥ
３６２         ｓｅｔ ｔｈｅ ｌｏｃＨ ｏｆ ｓｐｒｉｔｅ ｉ ｔｏ ５０
３６３
３６４         −−− メッセージの隣にアイコンを正確に配置する。
３６５         ｓｅｔ ｐｏｓｉｔｏｎＶａｒ ＝ １０５ ＋ ｌｉｎｅＰｏｓＴｏＬｏｃＶ（ｍｅｍｂｅｒ ”ＭａｉｌｂｏｘＴｏ”， ｗｈｅｒｅＧｏｅｓＩｃｏｎ）
３６６         ｓｅｔ ｔｈｅ ｌｏｃＶ ｏｆ ｓｐｒｉｔｅ ｉ ｔｏ ｐｏｓｉｔｏｎＶａｒ
３６７         −−− 但し、多数のメッセージが存在する場合、アイコンがウィンドウからはみ出さないようにする。
３６８         ｉｆ ｐｏｓｉｔｏｎＶａｒ ＞ ５５０ ｏｒ ｐｏｓｉｔｏｎＶａｒ ＜ １０５ ｔｈｅｎ
３６９               ｓｅｔ ｔｈｅ ｖｉｓｉｂｌｅ ｏｆ ｓｐｒｉｔｅ ｉ ＝ ＦＡＬＳＥ
３７０         ｅｌｓｅ
３７１               ｓｅｔ ｔｈｅ ｖｉｓｉｂｌｅ ｏｆ ｓｐｒｉｔｅ ｉ ＝ ＴＲＵＥ
３７２         ｅｎｄ ｉｆ
３７３         ａｄｄＰｒｏｐ ｍｂｘＧ＿ｉｃｏｎＬｉｓｔ， （ｔｈｅ ｌｏｃＶ ｏｆ ｓｐｒｉｔｅ ｉ）， ｍｉｍｅ
３７４         ｅｎｄ ｒｅｐｅａｔ
３７５
３７６   ｅｎｄ ｄｉｓｐｌａｙＭａｉｌｂｏｘ
３７７
３７８   −−− ユーザーのメールボックスとのやり取りへの応答に使用する関数
３７９   −−− ＨＩＬＩＴＥ ＭＥＳＳＡＧＥは、ユーザーがメッセージの行をマウスでクリックすると呼び出される。
３８０
３８１   ｏｎ ｈｉｌｉｔｅＭｅｓｓａｇｅ ｗｈｉｃｈＬｉｎｅ
３８２         ｇｌｏｂａｌ ｍｂｘＧ＿ｎＭｓｇｓ， ｍｂｘＧ＿ｗｈｉｃｈＬｉｎｅ， ｍｂｘＧ＿ｓｕｂｔｒａｃｔＬｉｎｅ， ｍｂｘＧ＿ｍｅｓｓａｇｅｓ
３８３
３８４   −−− 選択された行を記録する。
３８５
３８６   ｓｅｔ ｍｂｘＧ＿ｗｈｉｃｈＬｉｎｅ ＝ ｗｈｉｃｈＬｉｎｅ
３８７
３８８   −−− 行が有効であることを確認する
３８９
３９０   ｉｆ ｍｂｘＧ＿ｗｈｉｃｈＬｉｎｅ ＜＝ ０ ｔｈｅｎ
３９１         ｒｅｔｕｒｎ（０） −−− なにもしない。エラーは別のところで取得される。
３９２   ｅｌｓｅ ｉｆ ｍｂｘＧ＿ｗｈｉｃｈＬｉｎｅ ＞ ｍｂｘＧ＿ｎＭｓｇｓ ｔｈｅｎ
３９３         −−− ユーザーはフィールド内の別の部分をクリックした。
３９４         ｓｅｔ ｍｂｘＧ＿ｗｈｉｃｈＬｉｎｅ ＝ ０ −−− ０にリセットする。
３９５         ｒｅｔｕｒｎ（０）
３９６   ｅｎｄ ｉｆ
３９７
３９８   −−− 選択された行をハイライトする。
３９９
４００   ｓｅｔ ｗｈｉｃｈＨｉｇｈｌｉｇｈｔ ＝ ｍｂｘＧ＿ｗｈｉｃｈＬｉｎｅ ＋ ｍｂｘＧ＿ｓｕｂｔｒａｃｔＬｉｎｅ
４０１
４０２   −−− 表示されているすべてのフィールドメンバが同期状態に維持されて
４０３   −−− いるため、どれでもｌｉｎｅＰｏｓＴｏＬｏｃＶに使用できる。
４０４   −−− 小さいため、”ＭａｉｌｂｏｘＴｏ”を使用する。
４０５
４０６   ｓｅｔ ｔｈｅ ｌｏｃＶ ｏｆ Ｓｐｒｉｔｅ １１ ｔｏ −
４０７         （９９ ＋ ｌｉｎｅＰｏｓＴｏＬｏｃＶ（ｍｅｍｂｅｒ ”ＭａｉｌｂｏｘＴｏ”， ｗｈｉｃｈＨｉｇｈｌｉｇｈｔ））
４０８
４０９   −−− ハイライトされたメッセージをユーザーがダブルクリックした際に、ｍａｉｌＦｉｌｅからそのメッセージを取得する。
４１０
４１１   ｉｆ ｔｈｅ ｄｏｕｂｌｅＣｌｉｃｋ ｔｈｅｎ
４１２         ｓｅｔ ｍａｉｌｄａｔａ ＝ ｇｅｔＡｔ（ｍｂｘＧ＿ｍｅｓｓａｇｅ， ｍｂｘＧ＿ｗｈｉｃｈＬｉｎｅ）
４１３         ｔｅｌｌ ｔｈｅ ｓｔａｇｅ
４１４               ｅｍｈ＿ｏｐｅｎＭｅｓｓａｇｅ（ｍａｉｌｄａｔａ）
４１５         ｅｎｄ ｔｅｌｌ
４１６         −−− ｍｂｘ＿ｇｅｔＭｅｓｓａｇｅ（）
４１７   ｅｎｄ ｉｆ
４１８
４１９   ｅｎｄ ｈｉｌｉｔｅＭｅｓｓａｇｅ
４２０
４２１
４２２   −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
４２３   ｏｎ ｒｅｓｔＨｉｌｉｔｅ
４２４         ｇｌｏｂａｌ ｍｂｘＧ＿ｗｈｉｃｈＬｉｎｅ， ｍｂｘ＿ｓｕｂｔｒａｃｔＬｉｎｅ
４２５
４２６         ｓｅｔ ｍｂｘＧ＿ｗｈｉｃｈＬｉｎｅ ＝ ０
４２７         ｓｅｔ ｍｂｘＧ＿ｓｕｂｔｒａｃｔＬｉｎｅ ＝ ０
４２８
４２９         −−− ハイライトをオフステージに設定する。
４３０         ｓｅｔ ｔｈｅ ｌｏｃ ｏｆ ｓｐｒｉｔｅ １１ ｔｏ ｐｏｉｎｔ（１１， −２０）
４３１
４３２   ｅｎｄ ｒｅｓｅｔＨｉｌｉｔｅ
４３３   −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
４３４   −−− これは、色のルックアップテーブルである。
４３５   −−− これを実際に必要とするのは、Ｍａｃプラットフォームにおいてのみである。
４３６   −−− フィールドの前景色に設定したい色の上で使用する。
４３７   −−−
４３８
４３９   ｏｎ ｍａｐＣｏｌｏｒｓ ｃｏｌｏｒＤｅｐｔｈ
４４０         ｇｌｏｂａｌ ｍｂｘＧ＿ｒｅｄ
４４１         ｇｌｏｂａｌ ｍｂｘＧ＿ｂｌｕｅ
４４２         ｇｌｏｂａｌ ｍｂｘＧ＿ｗｈｉｔｅ
４４３         ｇｌｏｂａｌ ｍｂａＧ＿ｂｌａｃｋ
４４４
４４５         ｃａｓｅ ｃｏｌｏｒＤｅｐｔｈ ｏｆ
４４６
４４７               ８：
４４８                     ｓｅｔ ｍｂｘＧ＿ｒｅｄ ＝ ６
４４９                     ｓｅｔ ｍｂｘＧ＿ｂｌｕｅ ＝ ４
４５０                     ｓｅｔ ｍｂｘＧ＿ｗｈｉｔｅ ＝ ０
４５１               １６：
４５２                     ｓｅｔ ｍｂｘＧ＿ｒｅｄ ＝ ３１７４４
４５３                     ｓｅｔ ｍｂｘＧ＿ｂｌｕｅ ＝ ３１
４５４                     ｓｅｔ ｍｂｘＧ＿ｗｈｉｔｅ ＝ ３２７６７
４５５               ３２：
４５６                     ｓｅｔ ｍｂｘＧ＿ｒｅｄ ＝ １６７１１６８０
４５７                     ｓｅｔ ｍｂｘＧ＿ｂｌｕｅ ＝ ２５５
４５８                     ｓｅｔ ｍｂｘＧ＿ｗｈｉｔｅ ＝ １６７７７２１５
４５９
４６０         ｅｎｄ ｃａｓｅ
４６１
４６２         ｓｅｔ ｍｂｘＧ＿ｂｌａｃｋ ＝ ｔｈｅ ｆｏｒｅｃｏｌｏｒ ｏｆ ｌｉｎｅ １ ｏｆ ｍｅｍｂｅｒ ｔｈｅ ｍｅｍｂｅｒ ｏｆ ｓｐｒｉｔｅ ４
４６３
４６４   ｅｎｄ ｍａｐＣｏｌｏｒｓ
４６５
４６６   −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
４６７   メールボックスのメッセージの行をマウスでクリックすると、スクリプトが実行される。
４６８   メッセージ行のフィールドごとにスクリプトが必要である。
４６９
４７０   ｏｎ ｍｏｕｓｅＵｐ
４７１         ｈｉｌｉｔｅＭｅｓｓａｇｅ （ｔｈｅ ｃｌｉｃｋｏｎ − ４０）
４７２   ｅｎｄ
４７３
４７４
４７５   ｏｎ ｍｏｕｓｅＤｏｗｎ
４７６
４７７         ｇｌｏｂａｌ ｍｂｘＧ＿ｌｉｐｓ
４７８         ｓｅｔ ｗｈｉｃｈＬｉｎｅ ＝ ｔｈｅ ｍｏｕｓｅＬｉｎｅ
４７９         ｉｆ ｍｂｘＧ＿ｌｉｐｓ ｔｈｅｎ
４８０               ｓｅｔ ａｓｔｒ ＝ ｌｉｎｅ ｗｈｉｃｈｌｉｎｅ ｏｆ ｆｉｅｌｄ ”ＭａｉｌｂｏｘＴｏ”
４８１               ｓｐｅａｋ（ａｓｔｒ）
４８２         ｅｌｓｅ
４８３               ｈｉｌｉｔｅＭｅｓｓａｇｅ（ｗｈｉｃｈＬｉｎｅ）
４８４         ｅｎｄ ｉｆ
４８５   ｅｎｄ
４８６
４８７   ｏｎ ｍｏｕｓｅＤｏｗｎ
４８８
４８９         ｇｌｏｂａｌ ｍｂｘＧ＿ｌｉｐｓ
４９０         ｓｅｔ ｗｈｉｃｈＬｉｎｅ ＝ ｔｈｅ ｍｏｕｓｅＬｉｎｅ
４９１         ｉｆ ｍｂｘＧ＿ｌｉｐｓ ｔｈｅｎ
４９２               ｓｅｔ ａｓｔｒ ＝ ｌｉｎｅ ｗｈｉｃｈｌｉｎｅ ｏｆ ｆｉｅｌｄ ”ＭａｉｌｂｏｘＳｕｂｊｅｃｔ”
４９３               ｓｐｅａｋ（ａｓｔｒ）
４９４         ｅｌｓｅ
４９５               ｈｉｌｉｔｅＭｅｓｓａｇｅ（ｗｈｉｃｈＬｉｎｅ）
４９６         ｅｎｄ ｉｆ
４９７   ｅｎｄ
４９８
４９９   −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
５００   メールボックスのメッセージ行をマウスでクリックすると、更なるスクリプトが実行される。
５０１
５０２   ｏｎ ｍｏｕｓｅＤｏｗｎ
５０３         ｇｌｏｂａｌ ｍｂｘＧ＿ｌｉｐｓ
５０４         ｓｅｔ ｗｈｉｃｈＬｉｎｅ ＝ ｔｈｅ ｍｏｕｓｅＬｉｎｅ
５０５         ｉｆ ｍｂｘＧ＿ｌｉｐｓ ｔｈｅｎ
５０６
５０７               ｓｅｔ ａｓｔｒ ＝ ｌｉｎｅ ｗｈｉｃｈｌｉｎｅ ｏｆ ｆｉｅｌｄ ”ＭａｉｌｂｏｘＤａｔｅ”
５０８               ｓｅｔ ａｄａｙ ＝ ｗｏｒｄ １ ｏｆ ａｓｔｒ
５０９               ｃａｓｅ ａｄａｙ ｏｆ
５１０                     ”Ｍｏｎ，”：ｐｕｔ ”Ｍｏｎｄａｙ” ｉｎｔｏ ｗｏｒｄ １ ｏｆ ａｓｔｒ
５１１                     ”Ｔｕｅ，”：ｐｕｔ ”Ｔｕｅｓｄａｙ” ｉｎｔｏ ｗｏｒｄ １ ｏｆ ａｓｔｒ
５１２                     ”Ｗｅｄ，”：ｐｕｔ ”Ｗｅｄｎｅｓｄａｙ” ｉｎｔｏ ｗｏｒｄ １ ｏｆ ａｓｔｒ
５１３                     ”Ｔｈｕ，”：ｐｕｔ ”Ｔｈｕｒｓｄａｙ” ｉｎｔｏ ｗｏｒｄ １ ｏｆ ａｓｔｒ
５１４                     ”Ｆｒｉ，”：ｐｕｔ ”Ｆｒｉｄａｙ” ｉｎｔｏ ｗｏｒｄ １ ｏｆ ａｓｔｒ
５１５                     ”Ｓａｔ，”：ｐｕｔ ”Ｓａｔｕｒｄａｙ” ｉｎｔｏ ｗｏｒｄ １ ｏｆ ａｓｔｒ
５１６                     ”Ｓｕｎ，”：ｐｕｔ ”Ｓｕｎｄａｙ” ｉｎｔｏ ｗｏｒｄ １ ｏｆ ａｓｔｒ
５１７                     ｏｔｈｅｒｗｉｓｅ
５１８               ｅｎｄ ｃａｓｅ
５１９
５２０               ｓｐｅａｋ（ａｓｔｒ）
５２１         ｅｌｓｅ
５２２               ｈｉｌｉｔｅＭｅｓｓａｇｅ（ｗｈｉｃｈＬｉｎｅ）
５２３         ｅｎｄ ｉｆ
５２４   ｅｎｄ
５２５
５２６   ｏｎ ｍｏｕｓｅＤｏｗｎ
５２７         ｇｌｏｂａｌ ｍｂｘＧ＿ｌｉｐｓ
５２８
５２９         ｓｅｔ ｗｈｉｃｈＬｉｎｅ ＝ ｔｈｅ ｍｏｕｓｅＬｉｎｅ
５３０         ｉｆ ｍｂｘＧ＿ｌｉｐｓ ｔｈｅｎ
５３１               ｓｅｔ ａｓｔｒ ＝ ｌｉｎｅ ｗｈｉｃｈｌｉｎｅ ｏｆ ｆｉｅｌｄ ”ＭｅｓｓａｇｅＮｕｍｂｅｒ”
５３２               ｓｐｅａｋ（ａｓｔｒ）
５３３         ｅｌｓｅ
５３４               ｈｉｌｉｔｅＭｅｓｓａｇｅ（ｗｈｉｃｈＬｉｎｅ）
５３５         ｅｎｄ ｉｆ
５３６   ｅｎｄ
５３７
５３８
５３９   −−− このスクリプトは、メッセージ行に表示されるメッセージタイプアイコンに付加される。
５４０
５４１   ｏｎ ｍｏｕｓｅＵｐ
５４２         ｓｅｔ ｗｈｉｃｈＬｉｎｅ ＝ ｔｈｅ ｍｏｕｓｅＬｉｎｅ
５４３         ｈｉｌｉｔｅＭｅｓｓａｇｅ（ｍｏｕｓｅＬｉｎｅ）
５４４   ｅｎｄ
５４５
５４６   −−−−−− スクロールボタン用のコード
５４７
５４８   ｏｎ ｍｏｕｓｅＤｏｗｎ
５４９         ｇｌｏｂａｌ ｍｂｘＧ＿ｗｈｉｃｈＬｉｎｅ
５５０         ｇｌｏｂａｌ ｍｂｘＧ＿ｓｕｂｔｒａｃｔＬｉｎｅ
５５１         ｇｌｏｂａｌ ｍｂｘＧ＿ｉｃｏｎＬｉｓｔ
５５２
５５３         −−− ハイライトされた状態で上にスクロールする。
５５４         −−− これでアイコンはスクロールする。しかし、アイコンの
５５５         −−− スプライト位置は、ｍｂｘＧ＿ｓｕｂｔｒａｃｔＬｉｎｅに基づいており、
５５６         −−− メールボックスウィンドウ内のメッセージの対応する実際の
５５７         −−− 行番号には基づいていない。
５５８
５５９         ｓｅｔ ｎｕｍｂｅｒＯｆＩｃｏｎｓＶａｒ ＝ ｃｏｕｎｔ（ｍｂｘＧ＿ｉｃｏｎＬｉｓｔ）
５６０         ｓｅｔ ｌａｓｔＩｃｏｎＰｏｓ ＝ ｇｅｔＰｒｏｐＡｔ（ｍｂｘＧ＿ｉｃｏｎＬｉｓｔ， ｃｏｕｎｔ（ｍｂｘＧ＿ｉｃｏｎＬｉｓｔ）
５６１         ｉｆ ｌａｓｔＩｃｏｎＰｏｓ ＞＝ ５５０ ｔｈｅｎ
５６２               −−− メッセージが多数存在しており、スクロールが必要である。
５６３               ｒｅｐｅａｔ ｗｈｉｌｅ ｔｈｅ ｍｏｕｓｅＤｏｗｎ ＝ ＴＲＵＥ
５６４
５６５               −−− ｏｌｄＳｕｂｔｒａｃｔＬｉｎｅは、ｍｂｘＧ＿ｓｕｂｔｒａｃｔＬｉｎｅを増分する
５６６               −−− 前にｍｂｘＧ＿ｓｕｂｔｒａｃｔＬｉｎｅに設定する。これにより、
５６７               −−− 対象メッセージより１つ後ろにアイコンがずれないようにしている。
５６８
５６９               ｓｅｔ ｏｌｄＳｕｂｔｒａｃｔＬｉｎｅ ＝ ｍｂｘＧ＿ｓｕｂｔｒａｃｔＬｉｎｅ
５７０               ｓｅｔ ｍｂｘＧ＿ｓｕｂｔｒａｃｔＬｉｎｅ ＝ ｍｂｘＧ＿ｓｕｂｔｒａｃｔＬｉｎｅ ＋ １
５７１
５７２               ｉｆ ｍｂｘＧ＿ｓｕｂｔｒａｃｔＬｉｎｅ ＞ ０ ｔｈｅｎ
５７３                     ｓｅｔ ｍｂｘＧ＿ｓｕｂｔｒａｃｔＬｉｎｅ ＝ ０
５７４               ｅｎｄ ｉｆ
５７５
５７６         −−− すべてのフィールドを一緒にスクロールする。
５７７
５７８         ｓｃｒｏｌｌＢｙＬｉｎｅ ｍｅｍｂｅｒ ”ＭｅｓｓａｇｅＮｕｍｂｅｒ”， −１
５７９         ｓｃｒｏｌｌＢｙＬｉｎｅ ｍｅｍｂｅｒ ”ＭａｉｌｂｏｘＴｏ”， −１
５８０         ｓｃｒｏｌｌＢｙＬｉｎｅ ｍｅｍｂｅｒ ”ＭａｉｌｂｏｘＳｕｂｊｅｃｔ”， −１
５８１         ｓｃｒｏｌｌＢｙＬｉｎｅ ｍｅｍｂｅｒ ”ＭａｉｌｂｏｘＤａｔｅ”， −１
５８２         ｓｃｒｏｌｌＢｙＬｉｎｅ ｍｅｍｂｅｒ ”ｍｉｍｅ”， −１
５８３         ｓｃｒｏｌｌＢｙＬｉｎｅ ｍｅｍｂｅｒ ”Ｍｅｓｓａｇｅｒｅａｄ”， −１
５８４
５８５         ｓｅｔ ｎｕｍｂｅｒＯｆＩｃｏｎｓ ＝ ｔｈｅ ｌｉｎｅＣｏｕｎｔ ｏｆ ｍｅｍｂｅｒ ”ＭａｉｌｂｏｘＴｏ” ＋ ４０５８６         ｓｅｔ ａｍｏｕｎｔＯｆＭａｉｌ ＝ ｔｈｅ ｌｉｎｅＣｏｕｎｔ ｏｆ ｍｅｍｂｅｒ ”ＭａｉｌｂｏｘＴｏ”
５８７
５８８         −−− デバック用
５８９         −−− ｐｕｔ ”ｌｉｎｅｃｏｕｎｔ：” ＆ ｔｈｅ ｌｉｎｅＣｏｕｎｔ ｏｆ ｍｅｍｂｅｒ ”ＭａｉｌｂｏｘＴｏ”
５９０         −−− ｐｕｔ ”ｓｕｂｔｒａｃｔｌｉｎｅ：” ＆ ｍｂｘＧ＿ｓｕｂｔｒａｃｔＬｉｎｅ
５９１
５９２         ｒｅｐｅａｔ ｗｈｉｔｈ ｉ ＝ ４０ ｔｏ ｎｕｍｂｅｒＯｆＩｃｏｎｓ
５９３
５９４
５９５               −−− 次の２条件が真であれば、アイコンをスクロールする。
５９６               −−− 即ち、メッセージがスクロールすれば、アイコンもスクロールし、メッセージがスクロールしなければ、アイコンもスクロールしない。５９７
５９８               ｉｆ ｍｂｘＧ＿ｓｕｂｔｒａｃｔＬｉｎｅ ＞＝ − ａｍｏｕｎｔＯｆＭａｉｌ ＋ １ ａｎｄ ｏｌｄＳｕｂｔｒａｃｔＬｉｎｅ ＜ ０ ｔｈｅｎ
５９９                     ｓｅｔ ｔｈｅ ｌｏｃＶ ｏｆ ｓｐｒｉｔｅ ｉ ＝ ｔｈｅ ｌｏｃＶ ｏｆ ｓｐｒｉｔｅ ｉ ＋ １５
６００                     ｉｆ ｔｈｅ ｌｏｃＶ ｏｆ ｓｐｒｉｔｅ ｉ ＜ １０５ ｔｈｅｎ
６０１                           ｓｅｔ ｔｈｅ ｖｉｓｉｂｌｅ ｏｆ ｓｐｒｉｔｅ ｉ ＝ ＦＡＬＳＥ
６０２                     ｅｌｓｅ
６０３                           ｓｅｔ ｔｈｅ ｖｉｓｉｂｌｅ ｏｆ ｓｐｒｉｔｅ ｉ ＝ ＴＲＵＥ
６０４                     ｅｎｄ ｉｆ
６０５               ｅｌｓｅ
６０６                     ｎｏｔｈｉｎｇ
６０７               ｅｎｄ ｉｆ
６０８         ｅｎｄ ｒｅｐｅａｔ
６０９
６１０         −−− 行と共にハイライトを移動させ、行が画面から外れたら、
６１１         −−− ハイライトも画面から外す。
６１２         ｓｅｔ ｗｈｉｃｈＨｉｇｈｌｉｇｈｔ ＝ ｍｂｘＧ＿ｗｈｉｃｈＬｉｎｅ ＋ ｍｂｘＧ＿ｓｕｂｔｒａｃｔＬｉｎｅ
６１３         ｉｆ ｗｈｉｃｈＨｉｇｈｌｉｇｈｔ ＜＝ ０ ｏｒ ｗｈｉｃｈＨｉｇｈｌｉｇｈｔ ＞＝ ２２ ｔｈｅｎ
６１４         ｓｅｔ ｔｈｅ ｌｏｃ ｏｆ ｓｐｒｉｔｅ １１ ｔｏ ｐｏｉｎｔ（１１， −２０）
６１５         ｅｌｓｅ −−− スクロールされたメッセージにハイライトのｌｏｃＶを設定する。
６１６         ｓｅｔ ｔｈｅ ｌｏｃＶ ｏｆ Ｓｐｒｉｔｅ １１ ｔｏ （９９ ＋ ｌｉｎｅＰｏｓＴｏＬｏｃＶ（ｍｅｍｂｅｒ ”ＭａｉｌｂｏｘＴｏ”， ｗｈｉｃｈＨｉｇｈｌｉｇｈｔ））
６１７         ｅｎｄ ｉｆ
６１８         ｕｐｄａｔｅＳｔａｇｅ
６１９         ｅｎｄ ｒｅｐｅａｔ
６２０         ｅｎｄ ｉｆ
６２１   ｅｎｄ
６２２
６２３   ｏｎ ｍｏｕｓｅＵｐ
６２４         ｓｅｔ ｎｕｍｂｅｒＯｆＩｃｏｎｓ ＝ ｔｈｅ ｌｉｎｅＣｏｕｎｔ ｏｆ ｍｅｍｂｅｒ ”ＭａｉｌｂｏｘＴｏ” ＋ ４０
６２５         ｒｅｐｅａｔ ｗｉｔｈ ｉ ＝ ４０ ｔｏ ｎｕｍｂｅｒＯｆＩｃｏｎｓ
６２６               ｉｆ ｔｈｅ ｌｏｃＶ ｏｆ ｓｐｒｉｔｅ ｉ ＞ ５５０ ｏｒ ｔｈｅ ｌｏｂＶ ｏｆ ｓｐｒｉｔｅ ｉ＜ １０５ ｔｈｅｎ
６２７                     ｓｅｔ ｔｈｅ ｖｉｓｉｂｌｅ ｏｆ ｓｐｒｉｔｅ ｉ ＝ ＦＡＬＳＥ
６２８               ｅｌｓｅ
６２９                     ｓｅｔ ｔｈｅ ｖｉｓｉｂｌｅ ｏｆ ｓｐｒｉｔｅ ｉ ＝ ＴＲＵＥ
６３０               ｅｎｄ ｉｆ
６３１         ｅｎｄ ｒｅｐｅａｔ
６３２   ｅｎｄ
６３３
６３４   ｏｎ ｍｏｕｓｅＤｏｗｎ
６３５         ｇｌｏｂａｌ ｍｂｘＧ＿ｗｈｉｃｈＬｉｎｅ
６３６         ｇｌｏｂａｌ ｍｂｘＧ＿ｓｕｂｔｒａｃｔＬｉｎｅ
６３７         ｇｌｏｂａｌ ｍｂｘＧ＿ｉｃｏｎＬｉｓｔ
６３８
６３９
６４０         −−− メッセージがスクロールする際には、
６４１         アイコンもメッセージと共に移動する必要があり、
６４２         スクロールした後に表示される新しい
６４３         −−− メッセージに
６４４         アイコンスプライトのｍｅｍｂｅｒＮｕｍを
６４５         −−− 割り当てる。
６４６         −−− これでアイコンがスクロールする。しかし、
６４７         −−− アイコンスプライトの位置は、ｍｂｘＧ＿ｓｕｂｔｒａｃｔＬｉｎｅ
６４８         −−− に基づいており、メールボックスウィンドウ内のメッセージの
６４９         −−− 対応する実際の行番号には基づいていない。
６５０         ｓｅｔ ｎｕｍｂｅｒ ＯｆＩｃｏｎｓＶａｒ ＝ ｃｏｕｎｔ（ｍｂｘＧ＿ｉｃｏｎＬｉｓｔ）
６５１         ｓｅｔ ｌａｓｔＩｃｏｎＰｏｓ ＝ ｇｅｔＰｒｏｐＡｔ（ｍｂｘＧ＿ｉｃｏｎＬｉｓｔ， Ｃｏｕｎｔ（ｍｂｘＧ＿ｉｃｏｎＬｉｓｔ）
６５２         ｉｆ ｌａｓｔＩｃｏｎＰｏｓ ＞＝ ５５０ ｔｈｅｎ
６５３               −−− 多数のメッセージが存在しており、スクロールが必要である。
６５４               ｒｅｐｅａｔ ｗｈｉｌｅ ｔｈｅ ｍｏｕｓｅＤｏｗｎ ＝ ＴＲＵＥ
６５５                     ｓｃｒｏｌｌＢｙＬｉｎｅ ｍｅｍｂｅｒ ”ＭｅｓｓａｇｅＮｕｍｂｅｒ”， １
６５６                     ｓｃｒｏｌｌＢｙＬｉｎｅ ｍｅｍｂｅｒ ”ＭａｉｌｂｏｘＴｏ”， １
６５７                     ｓｃｒｏｌｌＢｙＬｉｎｅ ｍｅｍｂｅｒ ”ＭａｉｌｂｏｘＳｕｂｊｅｃｔ”， １
６５８                     ｓｃｒｏｌｌＢｙＬｉｎｅ ｍｅｍｂｅｒ ”ＭａｉｌｂｏｘＤａｔｅ”， １
６５９                     ｓｃｒｏｌｌＢｙＬｉｎｅ ｍｅｍｂｅｒ ”ｍｉｍｅ”， １
６６０                     ｓｃｒｏｌｌＢｙＬｉｎｅ ｍｅｍｂｅｒ ”Ｍｅｓｓａｇｅｒｅａｄ”， １
６６１                     −−− ｍｏｕｓｅＬｉｎｅとｌｉｎｅＰｏｓＴｏｌｏｃＶの間の
６６２                     違いを補正するために
６６３                     −−− 使用する数値を取得する。
６６４                     −−− ｍｏｕｓｅＬｉｎｅはフィールド合計内の行を与える。
６６５                     −−− ｌｉｎｅＰｏｓＴｏｌｏｃＶは画面上のフィールドの行を使用している。
６６６                     ｓｅｔ ｂｍｘＧ＿ｓｕｂｔｒａｃｔＬｉｎｅ ＝ ｍｂｘＧ＿ｓｕｂｔｒａｃｔＬｉｎｅ − １
６６７                     ｓｅｔ ｎｕｍｂｅｒＯｆＩｃｏｎｓ ＝ ｔｈｅ ｌｉｎｅＣｏｕｎｔ ｏｆ ｍｅｍｂｅｒ ”ＭａｉｌｂｏｘＴｏ” ＋ ４０
６６８                     ｓｅｔ ａｍｏｕｎｔＯｆＭａｉｌ ＝ ｔｈｅ ｌｉｎｅＣｏｕｎｔ ｏｆ ｍｅｍｂｅｒ ”ＭａｉｌｂｏｘＴｏ”
６６９                     −−− ｐｕｔ ”ｌｉｎｅｃｏｕｎｔ：” ＆ ｔｈｅ ｌｉｎｅＣｏｕｎｔ ｏｆ ｍｅｍｂｅｒ ”ＭａｉｌｂｏｘＴｏ”
６７０                     −−− ｐｕｔ ”ｓｕｂｔｒａｃｔｌｉｎｅ：” ＆ ｍｂｘＧ＿ｓｕｂｔｒａｃｔＬｉｎｅ
６７１                     ｒｅｐｅａｔ ｗｉｔｈ ｉ ＝ ４０ ｔｏ ｎｕｍｂｅｒＯｆＩｃｏｎｓ
６７２                           ｉｆ ｍｂｘＧ＿ｓｕｂｔｒａｃｔＬｉｎｅ ＞＝ − ａｍｏｕｎｔＯｆＭａｉｌ ＋ １ ｔｈｅｎ
６７３                                  ｓｅｔ ｔｈｅ ｌｏｃＶ ｏｆ ｓｐｒｉｔｅ ｉ ＝ ｔｈｅ ｌｏｃＶ ｏｆ ｓｐｒｉｔｅ ｉ − １５
６７４                                  ｉｆ ｔｈｅ ｌｏｃＶ ｏｆ ｓｐｒｉｔｅ ｉ ＜ １０５ ｔｈｅｎ
６７５                                        ｓｅｔ ｔｈｅ ｖｉｓｉｂｌｅ ｏｆ ｓｐｒｉｔｅ ｉ ＝ ＦＡＬＳＥ
６７６                                  ｅｌｓｅ
６７７                                        ｓｅｔ ｔｈｅ ｖｉｓｉｂｌｅ ｏｆ ｓｐｒｉｔｅ ｉ ＝ ＴＲＵＥ
６７８                                  ｅｎｄ ｉｆ
６７９                           ｅｌｓｅ
６８０                                  ｎｏｔｈｉｎｇ
６８１                           ｅｎｄ ｉｆ
６８２                     ｅｎｄ ｒｅｐｅａｔ
６８３
６８４                     ｉｆ ｍｂｘＧ＿ｓｕｂｔｒａｃｔＬｉｎｅ ＜ − ａｍｏｕｎｔＯｆＭａｉｌ ＋ １ ｔｈｅｎ
６８５                           ｓｅｔ ｍｂｘＧ＿ｓｕｂｔｒａｃｔＬｉｎｅ ＝ − ａｍｏｕｎｔＯｆＭａｉｌ ＋ １
６８６                     ｅｎｄ ｉｆ
６８７
６８８                     −−− ハイライトを行と共に移動させ、行が画面から
６８９                     −−− 外れたら、ハイライトも画面から外す。
６９０
６９１                     ｓｅｔ ｗｈｉｃｈＨｉｇｈｌｉｇｈｔ ＝ ｍｂｘＧ＿ｗｈｉｃｈＬｉｎｅ ＋ ｍｂｘＧ＿ｓｕｂｔｒａｃｔＬｉｎｅ
６９２                     ｉｆ ｗｈｉｃｈＨｉｇｈｌｉｇｈｔ ＜＝ ０ ｏｒ ｗｈｉｃｈＨｉｇｈｌｉｇｈｔ ＞＝ ２２ ｔｈｅｎ
６９３                           ｓｅｔ ｔｈｅ ｌｏｃ ｏｆ ｓｐｒｉｔｅ １１ ｔｏ ｐｏｉｎｔ （１１， −２０）
６９４                     ｅｌｓｅ
６９５                           ｓｅｔ ｔｈｅ ｌｏｃＶ ｏｆ Ｓｐｒｉｔｅ １１ ｔｏ （９９ ＋
６９６                           ｌｉｎｅＰｏｓＴｏＬｏｃＶ（ｍｅｍｂｅｒ ”ＭａｉｌｂｏｘＴｏ”， ｗｈｉｃｈＨｉｇｈｌｉｇｈｔ））
６９７                     ｅｎｄ ｉｆ
６９８                     ｕｐｄａｔｅＳｔａｇｅ
６９９               ｅｎｄ ｒｅｐｅａｔ
７００         ｅｎｄ ｉｆ
７０１   ｅｎｄ
７０２
７０３   −−−−−−
７０４
７０５   ｏｎ ｅｍｃ＿ｉｎｄｉｃａｔｅＣｈｅｃｋｉｎｇＩｎｔｅｒｎｅｔ
７０６         ｇｌｏｂａｌ ｍｂｘＧ＿ｒｅｄ
７０７         ｇｌｏｂａｌ ｍｂｘＧ＿ｂｌｕｅ
７０８         ｇｌｏｂａｌ ｍｂｘＧ＿ｗｈｉｔｅ
７０９         ｇｌｏｂａｌ ｍｂｘＧ＿ｂｌａｃｋ
７１０
７１１         ｉｆ ｔｈｅ ｌｏｃＨ ｏｆ ｓｐｒｉｔｅ ４ ＞ ６００ ｔｈｅｎ
７１２               ｓｅｔ ｔｈｅ ｌｏｃ ｏｆ ｓｐｒｉｔｅ ４ ＝ ｐｏｉｎｔ（２２３， ４）
７１３         ｅｎｄ ｉｆ
７１４         −−− ｉｆ ｔｈｅ ｌｏｃＨ ｏｆ ｓｐｒｉｔｅ ５ ＞ ６００ ｔｈｅｎ
７１５         −−−   ｓｅｔ ｔｈｅ ｌｏｃ ｏｆ ｓｐｒｉｔｅ ５ ＝ ｐｏｉｎｔ（５０９， １９）
７１６         −−− ｅｎｄ ｉｆ
７１７
７１８         ｓｅｔ ｃｏｌｏｒＮｏｗ ＝ ｔｈｅ ｆｏｒｅｃｏｌｏｒ ｏｆ ｌｉｎｅ １ ｏｆ ｍｅｍｂｅｒ ｔｈｅ ｍｅｍｂｅｒ ｏｆ ｓｐｒｉｔｅ ４
７１９
７２０         ｃａｓｅ ｃｏｌｏｒＮｏｗ ｏｆ
７２１               ｍｂｘＧ＿ｂｌａｃｋ： ｓｅｔ ｃｏｌｏｒＮｅｘｔ ＝ ｍｂｘＧ＿ｂｌｕｅ −−− 青
７２２               ｍｂｘＧ＿ｂｌｕｅ： ｓｅｔ ｃｏｌｏｒＮｅｘｔ ＝ ｍｂｘＧ＿ｗｈｉｔｅ −−− ピンク
７２３               ｍｂｘＧ＿ｗｈｉｔｅ： ｓｅｔ ｃｏｌｏｒＮｅｘｔ ＝ ｍｂｘＧ＿ｒｅｄ −−− 赤
７２４               ｍｂｘＧ＿ｒｅｄ： ｓｅｔ ｃｏｌｏｒＮｅｘｔ ＝ ｍｂｘＧ＿ｂｌｕｅ −−− 青
７２５         ｅｎｄ ｃａｓｅ
７２６
７２７         ｓｅｔ ｔｈｅ ｆｏｒｅｃｏｌｏｒ ｏｆ ｌｉｎｅ １ ｏｆ ｍｅｍｂｅｒ ｔｈｅ ｍｅｍｂｅｒ ｏｆ ｓｐｒｉｔｅ ４ ｔｏ ｃｏｌｏｒＮｅｘｔ
７２８         ｕｐｄａｔｅＳｔａｇｅ
７２９
７３０   ｅｎｄ ｅｍｃ＿ｉｎｄｉｃａｔｅＣｈｅｃｋｉｎｇＩｎｔｅｒｎｅｔ
７３１
７３２   ｏｎ ｅｍｃ＿ｅｎｄＩｎｄｉｃａｔｅＣｈｅｃｋｉｎｇＩｎｔｅｒｎｅｔ
７３３         ｓｅｔ ｔｈｅ ｌｏｃ ｏｆ ｓｐｒｉｔｅ ４ ｔｏ ｐｏｉｎｔ（８００， ４）
７３４         ｓｅｔ ｔｈｅ ｌｏｃ ｏｆ ｓｐｒｉｔｅ ５ ＝ ｐｏｉｎｔ（８００， １９）
７３５         ｃｕｒｓｏｒ − １
７３６         ｕｐｄａｔｅＳｔａｇｅ
７３７   ｅｎｄ ｅｍｃ＿ｅｎｄＩｎｄｉｃａｔｅＣｈｅｃｋｉｎｇＩｎｔｅｒｎｅｔ
７３８
７３９   −−−−−−−−− ウィンドウクローズボタン用のスクリプト
７４０
７４１   ｏｎ ｍｏｕｓｅＤｏｗｎ
７４２
７４３         ｒｅｐｅａｔ ｗｈｉｌｅ ｔｈｅ ｓｔｉｌｌＤｏｗｎ
７４４               ｉｆ ｉｎｓｉｄｅ（ｐｏｉｎｔ（ｔｈｅ ｍｏｕｓｅＨ， ｔｈｅ ｍｏｕｓｅＶ）， ｔｈｅ ｒｅｃｔ ｏｆ ｓｐｒｉｔｅ ｔｈｅ ｃｌｉｃｋｏｎ） ｔｈｅｎ
７４５                     ｉｆ ｔｈｅ ｎａｍｅ ｏｆ ｍｅｍｂｅｒ ｔｈｅ ｍｅｍｂｅｒ ｏｆ ｓｐｒｉｔｅ ｔｈｅ ｃｌｉｃｋｏｎ ＝ ”ｃｌｏｓｅＷｉｎｄｏｗ”
７４６                     ｔｈｅｎ
７４７                           ｓｅｔ ｔｈｅ ｍｅｍｂｅｒ ｏｆ ｓｐｒｉｔｅ ｔｈｅ ｃｌｉｃｋｏｎ ＝ ”ｃｌｏｓｅＷｉｎｄｏｗ＿ｄｏｗｎ”
７４８                           ｕｐｄａｔｅＳｔａｇｅ
７４９                     ｅｎｄ ｉｆ
７５０               ｅｌｓｅ
７５１                     ｓｅｔ ｔｈｅ ｍｅｍｂｅｒ ｏｆ ｓｐｒｉｔｅ ｔｈｅ ｃｌｉｃｋｏｎ ＝ ”ｃｌｏｓｅＷｉｎｄｏｗ”
７５２                     ｕｐｄａｔｅＳｔａｇｅ
７５３               ｅｎｄ ｉｆ
７５４         ｅｎｄ ｒｅｐｅａｔ
７５５         ｓｅｔ ｔｈｅ ｍｅｍｂｅｒ ｏｆ ｓｐｒｉｔｅ ｔｈｅ ｃｌｉｃｋｏｎ ＝ ”ｃｌｏｓｅＷｉｎｄｏｗ”
７５６         ｕｐｄａｔｅＳｔａｇｅ
７５７
７５８   ｅｎｄ ｍｏｕｓｅＤｏｗｎ
７５９
７６０   ｏｎ ｍｏｕｓｅＵｐ
７６１
７６２         −−− ウィンドウを閉じる。
７６３         ｉｆ ｉｎｓｉｄｅ（ｐｏｉｎｔ（ｔｈｅ ｍｏｕｓｅＨ， ｔｈｅ ｍｏｕｓｅＶ）， ｔｈｅ ｒｅｃｔ ｏｆ ｓｐｒｉｔｅ ｔｈｅ ｃｌｉｃｋｏｎ） ｔｈｅｎ
７６４               −−− 以下の２行は、クローズに当たってメールボックス
７６５               −−− アイコンの処理をスピードアップするためのものである。
７６６               −−− 低速のマシンでこれをチェックする必要がある。
７６７               ｈｉｄｅＭａｉｌＩｃｏｎｓ（ｔｈｅ ｌｉｎｅＣｏｕｎｔ ｏｆ ｍｅｍｂｅｒ ”ＭａｉｌｂｏｘＴｏ”）
７６８               ｇｏ ｆｒａｍｅ ”ｓｔｏｐ”
７６９               ｔｅｌｌ ｔｈｅ ｓｔａｇｅ ｔｏ ｅｍｈ＿ｋｉｌｌＣｏｍｐｏｎｅｎｔ（０， ””）
７７０               ｓｅｔ ｓｕｃｃｅｓｓ ＝ ｔｈｅ ｒｅｓｕｌｔ
７７１               ｉｆ ｓｕｃｃｅｓｓ ＜＞ ＴＲＵＥ ｔｈｅｎ
７７２                     ａｌｅｒｔ（”メールボックスＭＩＡＷを閉じる際にエラーが発生しました。”）
７７３               ｅｎｄ ｉｆ
７７４         ｅｎｄ ｉｆ
７７５   ｅｎｄ
７７６
７７７   ｏｎ ｈｉｄｅＭａｉｌＩｃｏｎｓ ｎｕｍｂｅｒＯｆＩｃｏｎｓ
７７８         ｒｅｐｅａｔ ｗｉｔｈ ｉ ＝ ４０ ｔｏ （４０ ＋ ｎｕｍｂｅｒＯｆＩｃｏｎｓ）
７７９               ｓｅｔ ｔｈｅ ｖｉｓｉｂｌｅ ｏｆ ｓｐｒｉｔｅ ｉ ＝ ＦＡＬＳＥ
７８０         ｅｎｄ ｒｅｐｅａｔ
７８１         ｕｐｄａｔｅＳｔａｇｅ
７８２   ｅｎｄ
７８３
７８４
７８５   −−− オープンボタン用のスクリプト
７８６
７８７   ｏｎ ｍｏｕｓｅＤｏｗｎ
７８８
７８９         ｒｅｐｅａｔ ｗｈｉｌｅ ｔｈｅ ｓｔｉｌｌＤｏｗｎ
７９０               ｉｆ ｉｎｓｉｄｅ（ｐｏｉｎｔ（ｔｈｅ ｍｏｕｓｅＨ， ｔｈｅ ｍｏｕｓｅＶ）， ｔｈｅ ｒｅｃｔ ｏｆ ｓｐｒｉｔｅ ｔｈｅ ｃｌｉｃｋｏｎ） ｔｈｅｎ
７９１                     ｉｆ ｔｈｅ ｎａｍｅ ｏｆ ｍｅｍｂｅｒ ｔｈｅ ｍｅｍｂｅｒ ｏｆ ｓｐｒｉｔｅ ｔｈｅ ｃｌｉｃｋｏｎ ＝ ”ｏｐｅｎ” ｔｈｅｎ
７９２                           ｓｅｔ ｔｈｅ ｍｅｍｂｅｒ ｏｆ ｓｐｒｉｔｅ ｔｈｅ ｃｌｉｃｋｏｎ ＝ ”ｏｐｅｎ＿ｄｏｗｎ”
７９３                           ｕｐｄａｔｅＳｔａｇｅ
７９４                     ｅｎｄ ｉｆ
７９５               ｅｌｓｅ
７９６                     ｓｅｔ ｔｈｅ ｍｅｍｂｅｒ ｏｆ ｓｐｒｉｔｅ ｔｈｅ ｃｌｉｃｋｏｎ ＝ ”ｏｐｅｎ”
７９７                     ｕｐｄａｔｅＳｔａｇｅ
７９８               ｅｎｄ ｉｆ
７９９         ｅｎｄ ｒｅｐｅａｔ
８００         ｓｅｔ ｔｈｅ ｍｅｍｂｅｒ ｏｆ ｓｐｒｉｔｅ ｔｈｅ ｃｌｉｃｋｏｎ ＝ ”ｏｐｅｎ”
８０１         ｕｐｄａｔｅＳｔａｇｅ
８０２   ｅｎｄ ｍｏｕｓｅＤｏｗｎ
８０３
８０４
８０５   ｏｎ ｍｏｕｓｅＵｐ
８０６
８０７         ｉｆ ｉｎｓｉｄｅ（ｐｏｉｎｔ（ｔｈｅ ｍｏｕｓｅＨ， ｔｈｅ ｍｏｕｓｅＶ）， ｔｈｅ ｒｅｃｔ ｏｆ ｓｐｒｉｔｅ ｔｈｅ ｃｌｉｃｋｏｎ） ｔｈｅｎ
８０８               ｇｌｏｂａｌ ｍｂｘＧ＿ｗｈｉｃｈＬｉｎｅ， ｍｂｘＧ＿ｍｅｓｓａｇｅｓ
８０９               ｉｆ ｍｂｘＧ＿ｗｈｉｃｈＬｉｎｅ ＝ ０ ｔｈｅｎ
８１０                     ａｌｅｒｔ ”マウスでクリックし、メッセージを選択してください。”）
８１１                     ｅｘｉｔ
８１２               ｅｎｄ ｉｆ
８１３               ｓｅｔ ｍａｉｌｄａｔａ ＝ ｇｅｔＡｔ（ｍｂｘＧ＿ｍｅｓｓａｇｅｓ， ｍｂｘＧ＿ｗｈｉｃｈＬｉｎｅ）
８１４               ｔｅｌｌ ｔｈｅ ｓｔａｇｅ
８１５                     ｅｍｈ＿ｏｐｅｎＭｅｓｓａｇｅ（ｍａｉｌｄａｔａ）
８１６               ｅｎｄ ｔｅｌｌ
８１７         ｅｎｄ ｉｆ
８１８   ｅｎｄ
（付属書Ｂ：タイプアップデータのコード）
００１   −−− タイプアップデータの実装
００２   −−− キッドコード（ＫｉｄＣｏｄｅ）電子メールクライアントのメッセージタイプ情報を
００３   −−− 維持管理するコンポーネントのコードである。
００４   −−− このＤｉｒｅｃｔｏｒ ＭＩＡＷにより、キッドコードのその他のコンポーネント
００５   から呼び出し可能なパブリック関数が提供される。
００６
００７   −−− パブリック関数
００８   −−− １． Ｉｎｉｔｉａｌｉｚｅ＿ＴｙｐｅＴａｂｌｅ
００９   −−− ２． Ｉｎｓｔａｌｌ＿Ｔｙｐｅ
０１０   −−− ３． Ｕｎｉｎｓｔａｌｌ＿Ｔｙｐｅ
０１１
０１２
０１３
０１４   −−− 内部でのみ使用されるプライベート関数
０１５   −−− １． Ｗｒｉｔｅ＿Ｔｙｐｅｔａｂｌｅ＿Ｆｉｌｅ
０１６   −−− ２． Ｒｅａｄ＿Ｔｙｐｅｔａｂｌｅ＿Ｆｉｌｅ
０１７   −−− ３． Ｒｅａｄ＿Ｉｃｏｎ＿Ｆｉｌｅｓ＿Ｔｏ＿ＲＡＭ
０１８   −−− ４． ｒｅａｄ＿ｉｃｏｎＦｉｌｅ
０１９   −−− ５． ｄｅｌｅｔｅ＿ｍｉｍｅｔｙｐｅ
０２０   −−− ６． ｉｎｓｅｒｔ＿ｍｉｍｅｔｙｐｅ
０２１   −−− ７． ｄｅｌｅｔｅ＿ｆｉｌｅｔｙｐｅ
０２２   −−− ８． ｉｎｓｅｒｔ＿ｆｉｌｅｔｙｐｅ
０２３
０２４
０２５   −−− ＴＹＰＥＴＡＢＬＥファイルの永久的な保存バージョンのファイル名は
０２６   −−− ｔｙｐｅｔａｂｌｅ．ｔｘｔであり、既定のディレクトリはｃｕｒｒｅｎｔＰａｔｈディレクトリである。
０２７
０２８
０２９   −−− Ｉｎｉｔｉａｌｉｚｅ＿ＴｙｐｅＴａｂｌｅは、ＭＩＭＥタイプアイコン、添付ファイルタイプアイコン、
０３０   及びメッセージハンドラＭＩＡＷをルックアップするのに使用されるデータ構造を初期化する。
０３１   −−− 使用する前に、まずＳＧ＿Ｔｙｐｅｔａｂｌｅをセットアップする。
０３２   ファイル添付情報は、添付ファイルを有するメッセージを検出した際に使用するまでルックアップしない。
０３３
０３４   ｏｎ Ｉｎｉｔｉａｌｉｚｅ＿ＴｙｐｅＴａｂｌｅ
０３５   ｇｌｏｂａｌ ＳＧ＿ＴＹＰＥＴＡＢＬＥ −−− 様々なＭＩＡＷで共有するＴｙｐｅｔａｂｌｅ用
０３６   のスーパーグローバル変数である。
０３７   ｇｌｏｂａｌ ＳＧ＿ＡＴＴＡＣＨ＿ＴＹＰＥＴＡＢＬＥ −−− 添付ファイルタイプ情報を維持管理する。
０３８
０３９   ｓｅｔ ＳＧ＿ＴＹＰＥＴＡＢＬＥ ＝ ［：］     −−− ＭＩＭＥ情報のプロパティリストを初期化する。
０４０
０４１   −−− ファイルタイプ情報のプロパティリストを初期化する。
０４２   −−− このリストは、添付ファイルを有するメッセージを検出したときにのみ記入される。
０４３   ｓｅｔ ＳＧ＿ＡＴＴＡＣＨ＿ＴＹＰＥＴＡＢＬＥ ＝ ［：］
０４４   ｓｅｔ ＳＧ＿ＴＹＰＥＴＡＢＬＥ ＝ Ｒｅａｄ＿ＴｙｐｅＴａｂｌｅ＿Ｆｉｌｅ（ｔｈｅ ｐａｔｈｎａｍｅ ＆ ”ｔｙｐｅｔａｂｌｅ．ｔｘｔ”）
０４５
０４６   ｉｆ ｃｏｕｎｔ（ＳＧ＿ＴＹＰＥＴＡＢＬＥ） ＝ ０ ｔｈｅｎ    −−− ｔｙｐｅｔａｂｌｅファイルの読み取りに失敗した。
０４７         ａｌｅｒｔ（”エラー：ＭＩＭＥタイプファイルの読み取りに失敗しました。”）
０４８         ｒｅｔｕｒｎ（０）
０４９   ｅｎｄ ｉｆ
０５０
０５１   ｓｅｔ ｒｅｔＶａｌ ＝ Ｒｅａｄ＿Ｉｃｏｎ＿Ｆｉｌｅｓ＿Ｔｏ＿ＲＡＭ（）
０５２
０５３   ｉｆ ｒｅｔＶａｌ ＝ ０ ｔｈｅｎ
０５４         ａｌｅｒｔ（”エラー：ＭＩＭＥタイプアイコンのロードに失敗しました。”）
０５５         ｒｅｔｕｒｎ（０）
０５６   ｅｌｓｅ
０５７         ｒｅｔｕｒｎ（１）
０５８   ｅｎｄ ｉｆ
０５９
０６０   ｅｎｄ   −−− Ｉｎｉｔｉａｌｉｚｅ＿ＴｙｐｅＴａｂｌｅ
０６１
０６２
０６３
０６４   −−− Ｉｎｓｔａｌｌ＿Ｔｙｐｅは、システムに新しいＭＩＭＥタイプをインストールするために使用する。
０６５   Ｉｎｓｔａｌｌ＿Ｔｙｐｅは、ＭＩＭＥタイプ（文字列）、メッセージ処理ムービーのファイル名、
０６６   ＭＩＭＥタイプアイコンを格納するビットマップのファイル名、及び任意選択でファイル拡張子（文字列）を入力として取得する。
０６７   この関数は、ＭＩＭＥタイプに関連する情報（関数パラメータとして与えられたもの）を
０６８   永久ストレージに記録されるＭＩＭＥタイプテーブルに追加する。
０６９   ここでは、ＭＩＭＥタイプ情報の永久ストレージとして「ｔｙｐｅｔａｂｌｅ．ｔｘｔ」というファイルを使用している。
０７０
０７１   ｏｎ Ｉｎｓｔａｌｌ＿Ｔｙｐｅ ｍｉｍｅＴｏＩｎｓｔａｌｌ， ｍｓｇＨａｎｄｌｅｒ＿ｆｉｌｅｎａｍｅ， ｉｃｏｎ＿ｆｉｌｅｎａｍｅ， ｆｉｌｅｔｙｐｅ
０７２   ｇｌｏｂａｌ ＳＧ＿ＴＹＰＥＴＡＢＬＥ −−− インストールされているすべてのＭＩＭＥタイプに関する情報
０７３
０７４   ｓｅｔ ＤＥＦＡＵＬＴ＿ＩＣＯＮＦＩＬＥ ＝ ”ｄｅｆａｕｔＩｃｏｎ．ｂｍｐ”
０７５   ｓｅｔ ＳＧ＿ＴＹＰＥＴＡＢＬＥ ＝ ［：］     −−− ＭＩＭＥタイプ情報のプロパティリストを初期化する。
０７６
０７７   −−− 既存のＭＩＭＥタイプ情報をＲＡＭに読み込む。
０７８   ｓｅｔ ＳＧ＿ＴＹＰＥＴＡＢＬＥ ＝ Ｒｅａｄ＿ＴｙｐｅＴａｂｌｅ＿Ｆｉｌｅ（ｔｈｅ ｐａｔｈｎａｍｅ ＆ ”ｔｙｐｅｔａｂｌｅ．ｔｘｔ”）
０７９
０８０   ｉｆ ｃｏｕｎｔ（ＳＧ＿ＴＹＰＥＴＡＢＬＥ） ＝ ０ ｔｈｅｎ    −−− ｔｙｐｅｔａｂｌｅファイルの読み取りに失敗した。
０８１         ａｌｅｒｔ（”エラー：ＭＩＭＥタイプファイルの読み取りに失敗しました。”）
０８２         ｒｅｔｕｒｎ（０）
０８３   ｅｎｄ ｉｆ
０８４
０８５   −−− ＭＩＭＥタイプが既にインストールされているかどうかをチェックする。
０８６
０８７   ｓｅｔ ｍｉｍｅＰｒｏｐｅｒｔｉｅｓ ＝ ｇｅｔ＿ｍｉｍｅｔｙｐｅ（ｍｉｍｅＴｏＩｎｓｔａｌｌ）
０８８
０８９   ｉｆ ｍｉｍｅＰｒｏｐｅｒｔｉｅｓ ＜＞ ０ ｔｈｅｎ−−− ＭＩＭＥタイプは既にインストールされている。
０９０         ｓｅｔ ｒｅｄｅｆｉｎｅＡｌｅｒｔ ＝ ｂａＭｓｇＢｏｘ（ｔｈｅＭｅｓｓａｇｅ， ”ＫｉｄＣｏｄｅ”， ”ＹｅｓＮｏＣａｎｃｅｌ”， ”Ｑｕｅｓｔｉｏｎ”， １）
０９１
０９２   −−− 警告関数はメッセージを保存せず、警告するだけである。
０９３         ｃａｓｅ ｒｅｄｅｆｉｎｅＡｌｅｒｔ ｏｆ
０９４               ”Ｎｏ”： ｒｅｔｕｒｎ ０
０９５               ”Ｃａｎｃｅｌ”： ｒｅｔｕｒｎ ｎ１
０９６               ｏｔｈｅｒｗｉｓｅ： ｎｏｔｈｉｎｇ −−− 継続
０９７         ｅｎｄ ｃａｓｅ
０９８   ｅｎｄ ｉｆ
０９９
１００   −−− 新しいＭＩＭＥタイプを定義する。
１０１
１０２   ｉｆ ｖｅｒｉｆｙＭｅｓｓａｇｅＨａｎｄｌｅｒ（ｍｓｇＨａｎｄｌｅｒ＿ｆｉｌｅｎａｍｅ） ＝ ０ ｔｈｅｎ   −−− プログラムファイルに
１０３   問題が存在している。
１０４         ａｌｅｒｔ（”エラー：メッセージハンドラプログラム” ＆＆ ｍｓｇＨａｎｄｌｅｒ＿ｆｉｌｅｎａｍｅ ”が無効です。”）
１０５         ｒｅｔｕｒｎ （０）
１０６   ｅｎｄ ｉｆ
１０７
１０８   ｉｎｓｅｒｔ＿ｍｓｇＨａｎｄｌｅｒ（ＳＧ＿ＴＹＰＥＴＡＢＬＥ， ｍｉｍｅＴｏＩｎｓｔａｌｌ， ｍｓｇＨａｎｄｌｅｒ＿ｆｉｌｅｎａｍｅ）
１０９
１１０   ｉｆ ｖｅｒｉｆｙＩｃｏｎＩｍａｇｅ（ｉｃｏｎ＿ｆｉｌｅｎａｍｅ） ＝ ０ ｔｈｅｎ      −−− アイコンファイルに問題が存在する。
１１１         ａｌｅｒｔ（”Ｅｒｒｏｒ： アイコンファイル” ＆＆ ｍｓｇＨａｎｄｌｅｒ＿ｆｉｌｅｎａｍｅ ”が無効です。既定のアイコンを使用します。”）
１１２         ｉｎｓｅｒｔ＿ｉｃｏｎＦｉｌｅＮａｍｅ（ＳＧ＿ＴＹＰＥＴＡＢＬＥ， ｍｉｍｅＴｏＩｎｓｔａｌｌ， ＤＥＦＡＵＬＴ＿ＩＣＯＮＦＩＬＥ）
１１３   ｅｌｓｅ
１１４         ｉｎｓｅｒｔ＿ｉｃｏｎＦｉｌｅＮａｍｅ（ＳＧ＿ＴＹＰＥＴＡＢＬＥ， ｍｉｍｅＴｏＩｎｓｔａｌｌ， ｉｃｏｎ＿Ｆｉｌｅｎａｍｅ）
１１５   ｅｎｄｉｆ
１１６
１１７   ｉｆ ｆｉｌｅｔｙｐｅ ＜＞ ”” ｔｈｅｎ
１１８         ｉｎｓｅｒｔ＿ｆｉｌｅｙｔｙｐｅ（ｍｉｍｅＴｏＩｎｓｔａｌｌ， ｆｉｌｅｔｙｐｅ）
１１９         ｗｒｉｔｅＴｙｐｅＴｏＲｅｇｉｓｔｒｙ（ｍｉｍｅＴｏＩｎｓｔａｌｌ， ｆｉｌｅｔｙｐｅ）
１２０   ｅｎｄ ｉｆ
１２１
１２２   ｓｅｔ ｒｅｔＶａｌ ＝ ｗｒｉｔｅ＿ＴｙｐｅＴａｂｌｅ＿Ｆｉｌｅ（）
１２３   ｉｆ ｒｅｔＶａｌ ＝ ０ ｔｈｅｎ
１２４   ａｌｅｒｔ（”ファイルへのタイプテーブルの書き込みにエラーが発生しました。” ＆＆ ｍｉｍｅＴｏＩｎｓｔａｌｌ ＆＆ ”はインストールされていません。”）
１２５   ｒｅｔｕｒｎ（０）
１２６   ｅｌｓｅ ｒｅｔｕｒｎ（１）
１２７
１２８   ｅｎｄ   −−− Ｉｎｓｔａｌｌ＿ｔｙｐｅ
１２９
１３０
１３１   −−− Ｕｎｉｎｓｔａｌｌ＿Ｔｙｐｅは、ファイルとグローバル変数ＳＧ＿ＴＹＰＥＴＡＢＬＥ
１３２   の両方からＭＩＭＥタイプとそのプロパティを削除する。
１３３
１３４   ｏｎ ｕｎＩｎｓｔａｌｌ＿Ｔｙｐｅ ｍｉｍｅＴｙｐｅ
１３５   ｇｌｏｂａｌ ＳＧ＿ＴＹＰＥＴＡＢＬＥ −−− インストールされているすべてのＭＩＭＥタイプに関する情報である。
１３６
１３７   ｓｅｔ ＳＧ＿ＴＹＰＥＴＡＢＬＥ ＝ ［：］     −−− ＭＩＭＥタイプ情報のプロパティリストを初期化する。
１３８
１３９   −−− 既存のＭＩＭＥタイプ情報をＲＡＭに読み込む。
１４０   ｓｅｔ ＳＧ＿ＴＹＰＥＴＡＢＬＥ ＝ Ｒｅａｄ＿ＴｙｐｅＴａｂｌｅ＿Ｆｉｌｅ（ｔｈｅ ｐａｔｈｎａｍｅ ＆ ”ｔｙｐｅｔａｂｌｅ．ｔｘｔ”）
１４１
１４２   ｉｆ ｃｏｕｎｔ（ＳＧ＿ＴＹＰＥＴＡＢＬＥ） ＝ ０ ｔｈｅｎ    −−− ｔｙｐｅｔａｂｌｅファイルの読み取りに失敗した。
１４３         ａｌｅｒｔ（”エラー：ＭＩＭＥタイプファイルの読み取りに失敗しました。”）
１４４         ｒｅｔｕｒｎ（０）
１４５   ｅｎｄ ｉｆ
１４６
１４７   ｄｅｌｅｔｅ＿ｍｉｍｅｔｙｐｅ（ｍｉｍｅＴｙｐｅ）
１４８
１４９   −−− 改訂されたＴｙｐｅｔａｂｌｅをファイルに書き込む。
１５０   ｓｅｔ ｒｅｔＶａｌ ＝ ｗｒｉｔｅ＿ＴｙｐｅＴａｂｌｅ＿Ｆｉｌｅ（）
１５１   ｉｆ ｒｅｔＶａｌ ＝ ０ ｔｈｅｎ
１５２   ａｌｅｒｔ（”エラー：” ＆＆ ｍｉｍｅＴｏＩｎｓｔａｌｌ ＆＆ ”をアンインストールできませんでした。
１５３   Ｔｙｐｅｔａｂｌｅファイルの書き込みエラーです”）
１５４   ｒｅｔｕｒｎ（０）
１５５   ｅｌｓｅ ｒｅｔｕｒｎ（１）
１５６
１５７   ｅｎｄ ｕｎＩｎｓｔａｌｌ＿Ｔｙｐｅ
１５８
１５９   −−− Ｗｒｉｔｅ＿Ｔｙｐｅｔａｂｌｅ＿Ｆｉｌｅは、ＳＧ＿ＴＹＰＥＴＡＢＬＥ内の情報をディスク
１６０   上のＴｙｐｅｔａｂｌｅファイルに書き込む。このファイルは、各ＭＩＭＥタイプに関連するプロパティを保存している。
１６１   −−− ＳＧ＿ＴＹＰＥＴＡＢＬＥは、ＭＩＭＥタイプのリストを格納するプロパティリストである。
１６２
１６３   ｏｎ Ｗｒｉｔｅ＿Ｔｙｐｅｔａｂｌｅ＿Ｆｉｌｅ
１６４   ｇｌｏｂａｌ ＳＧ＿ＴＹＰＥＴＡＢＬＥ −−− 様々なＭＩＡＷで共有するスーパーグローバル変数である。
１６５   ｓｅｔ ｆｉｌｅＮａｍｅ ＝ ｔｈｅ ｐａｔｈｎａｍｅ ＆ ”ｔｙｐｅｔａｂｌｅ．ｔｘｔ”
１６６   ｓｅｔ ｂｋｕｐＦｉｌｅＮａｍｅ ＝ ｔｈｅ ｐａｔｈｎａｍｅ ＆ ”ｔｙｐｅｔａｂｌｅ．ｂａｋ”
１６７
１６８   ｉｆ ｃｏｕｎｔ（ＳＧ＿ＴＹＰＥＴＡＢＬＥ） ＝ ０ ｔｈｅｎ    −−− ＭＩＭＥタイプが定義されていない。
１６９         ａｌｅｒｔ（”エラー：書き込むＭＩＭＥデータが存在していません。”）
１７０   ｒｅｔｕｒｎ（０）
１７１   ｅｎｄ ｉｆ
１７２
１７３   −−− ｔｙｐｅｔａｂｌｅファイルのバックアップを作成する。
１７４   ｃｏｐｙＦｉｌｅ（ｆｉｌｅｎａｍｅ， ｂｋＦｉｌｅＮａｍｅ）
１７５
１７６   −−− Ｆｉｌｅｉｏ Ｘｔｒａを起動する。
１７７         ｓｅｔ ｍＦｉｌｅ ＝ ｎｅｗ（ｘｔｒａ ”ｆｉｌｅｉｏ”）
１７８
１７９         ｓｅｔ ｒｅｔＶａｌ ＝ ｄｅｌｅｔｅＦｉｌｅ（ｍＦｉｌｅ， ｆｉｌｅｎａｍｅ）  −−− 書き換えの前に古いバージョンを削除する。
１８０         ｓｅｔ ｒｅｔＶａｌ ＝ ｃｒｅａｔｅＦｉｌｅ（ｍＦｉｌｅ， Ｆｉｌｅｎａｍｅ）
１８１         ｉｆ ｒｅｔＶａｌ ＝ ０ ｔｈｅｎ
１８２               ａｌｅｒｔ（”ｔｙｐｅｔａｂｌｅファイルの更新にエラーが発生しました。”）
１８３               ｒｅｎａｍｅＦｉｌｅ（ｂｋＦｉｌｅＮａｍｅ， ｆｉｌｅｎａｍｅ）
１８４               ｒｅｔｕｒｎ（０）
１８５         ｅｎｄ ｉｆ
１８６
１８７         ｏｐｅｎＦｉｌｅ（ｍＦｉｌｅ， ｆｉｌｅＮａｍｅ， ２）        −−− 書き込みアクセス用に開く。
１８８         ｓｅｔＰｏｓｉｔｉｏｎ（ｍＦｉｌｅ， ０）
１８９
１９０   −−− データをファイルに書き込む。
１９１   ｓｅｔ ｉ ＝ １
１９２   ｓｅｔ ｍｉｍｅＴｙｐｅ ＝ ｇｅｔＡｔ（ＳＧ＿ＴＹＰＥＴＡＢＬＥ， ｉ）
１９３   ｒｅｐｅａｔ ｗｈｉｌｅ ｍｉｍｅＴｙｐｅ ＜＞ ０
１９４         ｓｅｔ ｄａｔａＴｏＷｒｉｔｅ ＝ ｍｉｍｅｔｙｐｅ
１９５         ｐｕｔ ” ” ＆ ｇｅｔ＿ｆｉｌｅｔｙｐｅ（ｍｉｍｅｔｙｐｅ） ｉｎｔｏ ｄａｔａＴｏＷｒｉｔｅ
１９６         ｐｕｔ ” ” ＆ ｇｅｔ＿ｉｃｏｎＦｉｌｅＮａｍｅ（ｍｉｍｅｔｙｐｅ） ｉｎｔｏ ｄａｔａＴｏＷｒｉｔｅ
１９７   ｐｕｔ ” ” ＆ ｇｅｔ＿ＭｓｇＨａｎｄｌｅｒ（ｍｉｍｅｔｙｐｅ） ｉｎｔｏ ｄａｔａＴｏＷｒｉｔｅ
１９８   ｗｒｉｔｅｌｉｎｅ（ｍＦｉｌｅ， ｄａｔａＴｏＷｒｉｔｅ）
１９９   ｓｅｔ ｉ ＝ ｉ ＋ １
２００   ｓｅｔ ｍｉｍｅＴｙｐｅ ＝ ｇｅｔＡｔ（ＳＧ＿ＴＹＰＥＴＡＢＬＥ， ｉ）
２０１   ｅｎｄ ｒｅｐｅａｔ
２０２
２０３   ｃｌｏｓｅＦｉｌｅ（ｍＦｉｌｅ）
２０４   ｓｅｔ ｒｅｔＶａｌ ＝ ｄｅｌｅｔｅＦｉｌｅ（ｍＦｉｌｅ， ｂｋＦｉｌｅＮａｍｅ） −−− バックアプファイルを削除する。
２０５   ｒｅｔｕｒｎ（０）
２０６   ｅｎｄ Ｗｒｉｔｅ＿ＴｙｐｅＴａｂｌｅ＿Ｆｉｌｅ
２０７   −−− Ｒｅａｄ＿Ｔｙｐｅｔａｂｌｅ＿Ｆｉｌｅはｔｙｐｅｔａｂｌｅファイルを読み取り、
２０８   −−− メモリ内にデータ構造ＳＧ＿ＴＹＰＥＴＡＢＬＥを作成する。
２０９   −−− ＳＧ＿ＴＹＰＥＴＡＢＬＥは、ＭＩＭＥタイプのリストを格納するプロパティリストである。
２１０
２１１   この関数から戻ると、グローバルプロパティリストデータ構造ＳＧ＿ＴＹＰＥＴＡＢＬＥは、
２１２   各ＭＩＭＥタイプごとに１つのエントリを格納しており、メッセージ処理ムービー用のｐａｔｈＮａｍｅとＩｃｏｎＦｉｌｅが含まれている。
２１３   後で、このデータ構造にＲＡＭ内のアイコンのキャストメンバ番号を追加する。
２１４   現時点では、これらはすべて０に設定されている。
２１５   このデータ構造は、［”ｔｅｘｔ／ｐｌａｉｎ”：［”ｔｘｔ”， ０， ”Ｃ：￥ＫｉｄＣｏｄｅ￥ｔｅｘｔ．ｇｉｆ”， ”Ｃ：￥ＫｉｄＣｏｄｅ￥ｔｅｘｔ．ｄｘｒ”］，
２１６   ”ｘ−ａｐｐｌｉｃａｔｉｏｎ／ｇｒｉｄ”：［””， ０， ”Ｃ：￥ＫｉｄＣｏｄｅ￥ｇｒｉｄ．ｇｉｆ”， ”Ｃ：￥ＫｉｄＣｏｄｅ￥ｇｒｉｄ．ｄｘｒ”］］のようになっている。
２１７
２１８   ｏｎ Ｒｅａｄ＿ＴｙｐｅＴａｂｌｅ＿Ｆｉｌｅ
２１９   ｇｌｏｂａｌ ＳＧ＿ＴＹＰＥＴＡＢＬＥ −−− 様々なＭＩＡＷで共有するスーパーグローバル変数である。
２２０   ｓｅｔ ｆｉｌｅＮａｍｅ ＝ ｔｈｅ ｐａｔｈｎａｍｅ ＆ ”ｔｙｐｅｔａｂｌｅ．ｔｘｔ”
２２１
２２２   ｓｅｔ ＳＧ＿ＴＹＰＥＴＡＢＬＥ ＝ ［：］ −−− ＭＩＭＥタイプのプロパティリストを初期化する。
２２３
２２４   −−− Ｆｉｌｅｉｏ Ｘｔｒａを起動する。
２２５   ｓｅｔ ｍＦｉｌｅ ＝ ｎｅｗ（ｘｔｒａ ”ｆｉｌｅｉｏ”）
２２６   ｏｐｅＦｉｌｅ（ｍＦｉｌｅ， ｆｉｌｅＮａｍｅ， １） −−− 読取専用アクセス用に開く。
２２７   ｓｅｔ ｓｔａｔｕｓ ＝ ｓｔａｔｕｓ（ｍＦｉｌｅ）
２２８
２２９   ｉｆ ｓｔａｔｕｓ ＜＞ ０ ｔｈｅｎ
２３０         ａｌｅｒｔ（”エラー：ＭＩＭＥタイプテーブルが開けませんでした。”＆ ｅｒｒｏｒ （ｍＦｉｌｅ， ｓｔａｔｕｓ））
２３１         ｃｌｏｓｅＦｉｌｅ（ｍＦｉｌｅ） −−− 安全のため。
２３２         ｒｅｔｕｒｎ ＦＡＬＳＥ
２３３   ｅｎｄ ｉｆ
２３４
２３５   ｓｅｔＰｏｓｉｔｉｏｎ（ｍＦｉｌｅ， ０）
２３６
２３７   −−− ＬＩＮＧＯでは行単位の読み取りができない。従って、ファイル全体を
２３８   文字列ｓｔｒに読み込むことにより、これをシミュレートしている。
２３９         ｓｅｔ ｓｔｒ ＝ ｒｅａｄＦｉｌｅ（ｍＦｉｌｅ）
２４０
２４１         ｓｅｔ ｎＴｙｐｅｓ ＝ ｔｈｅ ｎｕｍｂｅｒ ｏｆ ｌｉｎｅｓ ｉｎ ｓｔｒ
２４２               ｒｅｐｅａｔ ｗｉｔｈ ｊ ＝ １ ｔｏ ｎＴｙｐｅｓ
２４３                     ｓｅｔ ｍｉｍｅｔｙｐｅ ＝ ｗｏｒｄ １ ｏｆ ｌｉｎｅ ｊ
２４４                     ｉｎｓｅｒｔ＿ｍｉｍｅｔｙｐｅ（ｍｉｍｅｔｙｐｅ）
２４５                     ｉｎｓｅｒｔ＿ｆｉｌｅｔｙｐｅ（ｍｉｍｅｔｙｐｅ， ｗｏｒｄ ２ ｏｆ ｌｉｎｅ ｊ）
２４６                     ｉｎｓｅｒｔ＿ｉｃｏｎＦｉｌｅＮａｍｅ（ｍｉｍｅｔｙｐｅ， ｗｏｒｄ ３ ｏｆ ｌｉｎｅ ｊ）
２４７                     ｉｎｓｅｒｔ＿ｍｓｇＨａｎｄｌｅｒ（ｍｉｍｅｔｙｐｅ， ｗｏｒｄ ４ ｏｆ ｌｉｎｅ ｊ）
２４８               ｅｎｄ ｒｅｐｅａｔ
２４９
２５０         ｃｌｏｓｅＦｉｌｅ（ｍＦｉｌｅ）
２５１
２５２   ｅｎｄ Ｒｅａｄ＿ＴｙｐｅＴａｂｌｅ＿Ｆｉｌｅ
２５３
２５４
２５５   ｏｎ Ｒｅａｄ＿Ｉｃｏｎ＿Ｆｉｌｅｓ＿Ｔｏ＿ＲＡＭ
２５６   ｇｌｏｂａｌ ＳＧ＿ＴＹＰＥＴＡＢＬＥ
２５７   ｇｌｏｂａｌ ＳＧ＿ＤＥＦＡＵＬＴ＿ＩＣＯＮ＿ＰＴＲ ＝ １０００
２５８
２５９   ｉｆ ｃｏｕｎｔ（ＳＧ＿ＴＹＰＥＴＡＢＬＥ） ＝ ０ ｔｈｅｎ −−− ＭＩＭＥタイプが定義されていない。
２６０         ａｌｅｒｔ（”エラー：ＭＩＭＥタイプデータが存在していません。アイコンをロードできません。”）
２６１   ｒｅｔｕｒｎ（０）
２６２   ｅｎｄ ｉｆ
２６３
２６４   −− 既定のアイコンをロードする。
２６５   ｉｍｐｏｒｔＦｉｌｅＩｎｔｏ（ｍｅｍｂｅｒ ＳＧ＿ＤＥＦＡＵＬＴ＿ＩＣＯＮ＿ＰＴＲ， ｔｈｅ ｐａｔｈｎａｍｅ ＆ ”ｄｅｆａｕｌｔｉｃｏｎ．ｇｉｆ”）
２６６
２６７   −−− ＭＩＭＥタイプを一巡してアイコンをロードする。
２６８   ｓｅｔ ｃａｓｔＮｕｍ ＝ ＳＧ＿ＤＡＦＡＵＬＴ＿ＩＣＯＮ＿ＰＴＲ ＋ １ −−− 既定のものの直後の
２６９   アイコンである。
２７０   ｓｅｔ ｉ ＝ １
２７１   ｓｅｔ ｍｉｍｅＴｙｐｅ ＝ ｇｅｔＡｔ（ＳＧ＿ＴＹＰＥＴＡＢＬＥ， ｉ）
２７２   ｒｅｐｅａｔ ｗｈｉｌｅ ｍｉｍｅＴｙｐｅ ＜＞ ０
２７３         ｓｅｔ ｉｃｏｎＦｉｌｅ ＝ ｇｅｔ＿ｉｃｏｎＦｉｌｅＮａｍｅ（ＳＧ＿ＴＹＰＥＴＡＢＬＥ， ｍｉｍｅｔｙｐｅ）
２７４         ｉｆ ｉｃｏｎ ＝ ”” ｔｈｅｎ −−− アイコンが定義されておらず、既定のものを使用する。
２７５               ｓｅｔ ｉｃｏｎＰＴＲ ＝ ＳＧ＿ＤＥＦＡＵＬＴ＿ＩＣＯＮ＿ＰＴＲ
２７６         ｅｌｓｅ
２７７   ｓｅｔ ｉｃｏｎＰＴＲ ＝ ｒｅａｄ＿ＩｃｏｎＦｉｌｅ（ｉｃｏｎＦｉｌｅ， ｃａｓｔＮｕｍ）
２７８   ｉｆ ｉｃｏｎＰｔｒ ＞ ０ ｔｈｅｎ
２７９         ｓｅｔ ｃａｓｔＮｕｍ ＝ ｃａｓｔＮｕｍ ＋ １
２８０   ｅｌｓｅ ｓｅｔ ｉｃｏｎＰｔｒ ＝ ＳＧ＿ＤＥＦＡＵＬＴ＿ＩＣＯＮ＿ＰＴＲ
２８１         ｅｎｄ ｉｆ
２８２
２８３         ｉｎｓｅｒｔ＿ｉｃｏｎＰｔｒ（ｍｉｍｅｔｙｐｅ， ｉｃｏｎＰｔｒ）
２８４   ｓｅｔ ｉ ＝ ｉ ＋ １
２８５   ｓｅｔ ｍｉｍｅＴｙｐｅ ＝ ｇｅｔＡｔ（ＳＧ＿ＴＹＰＥＴＡＢＬＥ， ｉ）
２８６   ｅｎｄ ｒｅｐｅａｔ
２８７
２８８   ｒｅｔｕｒｎ（１）
２８９
２９０   ｅｎｄ Ｒｅａｄ＿Ｉｃｏｎ＿Ｆｉｌｅｓ＿Ｔｏ＿ＲＡＭ
２９１
２９２
２９３
２９４   −−− Ｒｅａｄ＿ＩｃｏｎＦｉｌｅは、１つのアイコンビットマップをＲＡＭにロードする。
２９５   ｏｎ ｒｅａｄ＿ＩｃｏｎＦｉｌｅ ｆｉｌｅｎａｍｅ， ｃａｓｔＭｅｍｂｅｒＮｕｍ
２９６   ｓｅｔ ｒｅｔＶａｌ ＝ ｉｍｐｏｒｔＦｉｌｅＩｎｔｏ（ｍｅｍｂｅｒ ｃａｓｔＮｕｍ， ｉｃｏｎＦｉｌｅ）
２９７   ｒｅｔｕｒｎ（ｒｅｔＶａｌ）
２９８   ｅｎｄ ｒｅａｄ＿ＩｃｏｎＦｉｌｅ
２９９   −−− ＭＩＭＥタイプ情報のデータアクセス関数
３００   −−− データは、「ＭＩＭＥタイプ：プロパティ」という構造で
３０１   −−− プロパティリストＳＧ＿ＴＹＰＥＴＡＢＬＥ内に保存される。
３０２   −−− ここで、ＭＩＭＥタイプは文字列である（例：”ｔｅｘｔ／ｐｌａｉｎ”）。
３０３   −−− プロパティは、次の要素を有するリストである。
３０４   −−− ［ｆｉｌｅｔｙｐｅ， ｉｃｏｎＰｔｒ， ｉｄｏｎＦｉｌｅｎａｍｅ， ｍｓｇＨａｎｄｌｅｒ＿ＦｉｌｅＮａｍｅ］
３０５   −−− 例：ＳＧ＿ＴＹＰＥＴＡＢＬＥ ＝
３０６   −−− ［”ｔｅｘｔ／ｐｌａｉｎ”：［”ｔｘｔ”， ０， ”Ｃ：￥ＫｉｄＣｏｄｅ￥ｔｅｘｔ．ｇｉｆ”， ”Ｃ：￥ＫｉｄＣｏｄｅ￥ｔｅｘｔ．ｄｘｒ”］，
３０７   −−− ”ｘ−ａｐｐｌｉｃａｔｉｏｎ／ｇｒｉｄ”：［””， ０， ”Ｃ：￥ＫｉｄＣｏｄｅ￥ｇｒｉｄ．ｇｉｆ”， ”Ｃ：￥ＫｉｄＣｏｄｅ￥ｇｒｉｄ．ｄｘｒ”］］
３０８
３０９   ｏｎ ｇｅｔ＿ｍｉｍｅｔｙｐｅ ｍｉｍｅｔｙｐｅ
３１０   ｇｌｏｂａｌ ＳＧ＿ＴＹＰＥＴＡＢＬＥ
３１１   ｒｅｔｕｒｎ（ｇｅｔＰｒｏｐ（ＳＧ＿ＴＹＰＥＴＡＢＬＥ， ｍｉｍｅｔｙｐｅ））
３１２   ｅｎｄ
３１３
３１４   ｏｎ ｇｅｔ＿ｆｉｌｅｔｙｐｅ ｍｉｍｅｔｙｐｅ
３１５   ｇｌｏｂａｌ ＳＧ＿ＴＹＰＥＴＡＢＬＥ
３１６   ｓｅｔ ｔｈｅＰｒｏｐｅｒｔｉｅｓ ＝ ｇｅｔＰｒｏｐ（ＳＧ＿ＴＹＰＥＴＡＢＬＥ， ｍｉｍｅｔｙｐｅ）
３１７   ｒｅｔｕｒｎ（ｇｅｔＡｔ（ｔｈｅＰｒｏｐｅｒｔｉｅｓ， １））
３１８   ｅｎｄ
３１９
３２０   ｏｎ ｇｅｔ＿ｉｃｏｎＰｔｒ ｍｉｍｅｔｙｐｅ
３２１   ｇｌｏｂａｌ ＳＧ＿ＴＹＰＥＴＡＢＬＥ
３２２   ｓｅｔ ｔｈｅＰｒｏｐｅｒｔｉｅｓ ＝ ｇｅｔＰｒｏｐ（ＳＧ＿ＴＹＰＥＴＡＢＬＥ， ｍｉｍｅｔｙｐｅ）
３２３   ｒｅｔｕｒｎ（ｇｅｔＡｔ（ｔｈｅＰｒｏｐｅｒｔｉｅｓ， ２））
３２４   ｅｎｄ
３２５
３２６   ｏｎ ｇｅｔ＿ｉｃｏｎＦｉｌｅＮａｍｅ ｍｉｍｅｔｙｐｅ
３２７   ｇｌｏｂａｌ ＳＧ＿ＴＹＰＥＴＡＢＬＥ
３２８   ｓｅｔ ｔｈｅＰｒｏｐｅｒｔｉｅｓ ＝ ｇｅｔＰｒｏｐ（ＳＧ＿ＴＹＰＥＴＡＢＬＥ， ｍｉｍｅｔｙｐｅ）
３２９   ｒｅｔｕｒｎ（ｇｅｔＡｔ（ｔｈｅＰｒｏｐｅｒｔｉｅｓ， ３））
３３０   ｅｎｄ
３３１
３３２   ｏｎ ｇｅｔ＿ｍｓｇＨａｎｄｌｅｒ ｍｉｍｅｔｙｐｅ
３３３   ｇｌｏｂａｌ ＳＧ＿ＴＹＰＥＴＡＢＬＥ
３３４   ｓｅｔ ｔｈｅＰｒｏｐｅｒｔｉｅｓ ＝ ｇｅｔＰｒｏｐ（ＳＧ＿ＴＹＰＥＴＡＢＬＥ， ｍｉｍｅｔｙｐｅ）
３３５   ｒｅｔｕｒｎ（ｇｅｔＡｔ（ｔｈｅＰｒｏｐｅｒｔｉｅｓ， ４））
３３６   ｅｎｄ
３３７
３３８   ｏｎ ｉｎｓｅｒｔ＿ｍｉｍｅｔｙｐｅ ｍｉｍｅｔｙｐｅ
３３９   ｇｌｏｂａｌ ＳＧ＿ＴＹＰＥＴＡＢＬＥ
３４０   ａｄｄＰｒｏｐ（ＳＧ＿ＴＹＰＥＴＡＢＬＥ， ｍｉｍｅｔｙｐｅ）
３４１   ｅｎｄ
３４２
３４３   ｏｎ ｉｎｓｅｒｔ＿ｆｉｌｅｔｙｐｅ ｍｉｍｅｔｙｐｅ， ｆｉｌｅｔｙｐｅ
３４４   ｇｌｏｂａｌ ＳＧ＿ＴＹＰＥＴＡＢＬＥ
３４５   ｓｅｔ ｔｈｅＰｒｏｐｅｒｔｉｅｓ ＝ ｇｅｔＰｒｏｐ（ＳＧ＿ＴＹＰＥＴＡＢＬＥ， ｍｉｍｅｔｙｐｅ）
３４６         ａｄｄ（ｔｈｅＰｒｏｐｅｒｔｉｅｓ， ｆｉｌｅｔｙｐｅ）
３４７         ｓｅｔＰｒｏｐ（ＳＧ＿ＴＹＰＥＴＡＢＬＥ， ｍｉｍｅｔｙｐｅ， ｔｈｅＰｒｏｐｅｒｔｉｅｓ）
３４８   ｅｎｄ
３４９
３５０   ｏｎ ｉｎｓｅｒｔ＿ｉｃｏｎＰｔｒ ｍｉｍｅｔｙｐｅ， ｉｃｏｎＰｔｒ
３５１   ｇｌｏｂａｌ ＳＧ＿ＴＹＰＥＴＡＢＬＥ
３５２   ｓｅｔ ｔｈｅＰｒｏｐｅｒｔｉｅｓ ＝ ｇｅｔＰｒｏｐ（ＳＧ＿ＴＹＰＥＴＡＢＬＥ， ｍｉｍｅｔｙｐｅ）
３５３         ａｄｄ（ｔｈｅＰｒｏｐｅｒｔｉｅｓ， ｉｃｏｎＰｔｒ）
３５４         ｓｅｔＰｒｏｐ（ＳＧ＿ＴＹＰＥＴＡＢＬＥ， ｍｉｍｅｔｙｐｅ， ｔｈｅＰｒｏｐｅｒｔｉｅｓ）
３５５   ｅｎｄ
３５６
３５７   ｏｎ ｉｎｓｅｒｔ＿ｉｃｏｎＦｉｌｅＮａｍｅ ｍｉｍｅｔｙｐｅ， ｉｃｏｎＦｉｌｅｎａｍｅ
３５８   ｇｌｏｂａｌ ＳＧ＿ＴＹＰＥＴＡＢＬＥ
３５９   ｓｅｔ ｔｈｅＰｒｏｐｅｒｔｉｅｓ ＝ ｇｅｔＰｒｏｐ（ＳＧ＿ＴＹＰＥＴＡＢＬＥ， ｍｉｍｅｔｙｐｅ）
３６０         ａｄｄ（ｔｈｅＰｒｏｐｅｒｔｉｅｓ， ｉｃｏｎＦｉｌｅｎａｍｅ）
３６１         ｓｅｔＰｒｏｐ（ＳＧ＿ＴＹＰＥＴＡＢＬＥ， ｍｉｍｅｔｙｐｅ， ｔｈｅＰｒｏｐｅｒｔｉｅｓ）
３６２   ｅｎｄ
３６３
３６４   ｏｎ ｉｎｓｅｒｔ＿ｍｓｇＨａｎｄｌｅｒ ｍｉｍｅｔｙｐｅ
３６５   ｇｌｏｂａｌ ＳＧ＿ＴＹＰＥＴＡＢＬＥ
３６６   ｓｅｔ ｔｈｅＰｒｏｐｅｒｔｉｅｓ ＝ ｇｅｔＰｒｏｐ（ＳＧ＿ＴＹＰＥＴＡＢＬＥ， ｍｉｍｅｔｙｐｅ）
３６７         ａｄｄ（ｔｈｅＰｒｏｐｅｒｔｉｅｓ， ｍｓｇＨａｎｄｌｅｒ）
３６８         ｓｅｔＰｒｏｐ（ＳＧ＿ＴＹＰＥＴＡＢＬＥ， ｍｉｍｅｔｙｐｅ， ｔｈｅＰｒｏｐｅｒｔｉｅｓ）
３６９   ｅｎｄ
３７０
３７１
３７２   ｏｎ ｄｅｌｅｔｅ＿ｍｉｍｅｔｙｐｅ ｍｉｍｅｔｙｐｅ
３７３   ｇｌｏｂａｌ ＳＧ＿ＴＹＰＥＴＡＢＬＥ
３７４   ｄｅｌｅｔｅＰｒｏｐ（ＳＧ＿ＴＹＰＥＴＡＢＬＥ， ｍｉｍｅｔｙｐｅ）
３７５   ｅｎｄ
３７６
３７７   ｏｎ ｄｅｌｅｔｅ＿ｆｉｌｅｔｙｐｅ ｍｉｍｅｔｙｐｅ
３７８   ｇｌｏｂａｌ ＳＧ＿ＴＹＰＥＴＡＢＬＥ
３７９   ｓｅｔ ｐｒｏｐｅｒｔｉｅｓ ＝ ｇｅｔＰｒｏｐ（ＳＧ＿ＴＹＰＥＴＡＢＬＥ， ｍｉｍｅｔｙｐｅ）
３８０         ｓｅｔＡｔ（ｐｒｏｐｅｒｔｉｅｓ， １， ””）
３８１         ｓｅｔＰｒｏｐ（ＳＧ＿ＴＹＰＥＴＡＢＬＥ， ｍｉｍｅｔｙｐｅ， ｐｒｏｐｅｒｔｉｅｓ）
３８２   ｅｎｄ
３８３
３８４   ｏｎ ｄｅｌｅｔｅ＿ｉｃｏｎ ｍｉｍｅｔｙｐｅ
３８５   ｇｌｏｂａｌ ＳＧ＿ＴＹＰＥＴＡＢＬＥ
３８６   ｓｅｔ ｐｒｏｐｅｒｔｉｅｓ ＝ ｇｅｔＰｒｏｐ（ＳＧ＿ＴＹＰＥＴＡＢＬＥ， ｍｉｍｅｔｙｐｅ）
３８７         ｓｅｔＡｔ（ｐｒｏｐｅｒｔｉｅｓ， ２， ０）
３８８         ｓｅｔＰｒｏｐ（ＳＧ＿ＴＹＰＥＴＡＢＬＥ， ｍｉｍｅｔｙｐｅ， ｐｒｏｐｅｒｔｉｅｓ）
３８９   ｅｎｄ
３９０
３９１   ｏｎ ｄｅｌｅｔｅ＿ｉｃｏｎＦｉｌｅＮａｍｅ ｍｉｍｅｔｙｐｅ
３９２   ｇｌｏｂａｌ ＳＧ＿ＴＹＰＥＴＡＢＬＥ
３９３   ｓｅｔ ｐｒｏｐｅｒｔｉｅｓ ＝ ｇｅｔＰｒｏｐ（ＳＧ＿ＴＹＰＥＴＡＢＬＥ， ｍｉｍｅｔｙｐｅ）
３９４         ｓｅｔＡｔ（ｐｒｏｐｅｒｔｉｅｓ， ３， ””）
３９５         ｓｅｔＰｒｏｐ（ＳＧ＿ＴＹＰＥＴＡＢＬＥ， ｍｉｍｅｔｙｐｅ， ｐｒｏｐｅｒｔｉｅｓ）
３９６   ｅｎｄ
３９７
３９８   ｏｎ ｄｅｌｅｔｅ＿ｍｓｇＨａｎｄｌｅｒ ｍｉｍｅｔｙｐｅ
３９９   ｇｌｏｂａｌ ＳＧ＿ＴＹＰＥＴＡＢＬＥ
４００   ｓｅｔ ｐｒｏｐｅｒｔｉｅｓ ＝ ｇｅｔＰｒｏｐ（ＳＧ＿ＴＹＰＥＴＡＢＬＥ， ｍｉｍｅｔｙｐｅ）
４０１         ｓｅｔＡｔ（ｐｒｏｐｅｒｔｉｅｓ， ４， ””）
４０２         ｓｅｔＰｒｏｐ（ＳＧ＿ＴＹＰＥＴＡＢＬＥ， ｍｉｍｅｔｙｐｅ， ｐｒｏｐｅｒｔｉｅｓ）
４０３   ｅｎｄ
【図面の簡単な説明】
【図１】従来技術の電子メールボックスディスプレイヤの画面ショットである。
【図２】本発明による電子メールボックスディスプレイヤの画面ショットである。
【図２ａ】本発明の別の実施例による電子メールボックスディスプレイヤの画面ショットである。
【図３】本発明による電子メールクライアントのコンポーネント構成のブロックダイアグラムである。
【図４】本発明によるメールボックスディスプレイヤの基本的な動作を示す概略フローチャートである。
【図５】本発明によるメールボックスディスプレイヤの別の実施例の基本的な動作を示す概略フローチャートである。
【図６】メールアイテムの様々なプロパティ用のアイコンのルックアップを示す概略フローチャートである。
【図６ａ】ＭＩＭＥタイプ用のアイコンのルックアップを示す概略フローチャートである。
【図６ｂ】添付ファイルのファイルタイプ用のアイコンのルックアップを示す概略フローチャートである。
【図７】タイプアップデータコンポーネントの一実施例におけるｉｎｉｔｉａｌｉｚｅ＿ＴｙｐｅＴａｂｌｅ関数を示す概略フローチャートである。
【図８】タイプアップデータコンポーネントの一実施例におけるｒｅａｄ＿ＴｙｐｅＴａｂｌｅ＿ｆｉｌｅ関数を示す概略フローチャートである。
【図９】タイプアップデータコンポーネントの一実施例におけるｗｒｉｔｅ＿ＴｙｐｅＴａｂｌｅ＿ｆｉｌｅ関数を示す概略フローチャートである。
【図１０】タイプアップデータコンポーネントの一実施例におけるｒｅａｄ＿ｉｃｏｎ＿ｆｉｌｅｓ＿ｔｏ＿ＲＡＭ関数を示す概略フローチャートである。
【図１１】タイプアップデータコンポーネントの一実施例におけるｉｎｓｔａｌｌ＿ＴＹＰＥ関数を示す概略フローチャートである。
【図１】
2004502239.tif 000008
【図２】
2004502239.tif 000009
【図２ａ】
2004502239.tif 000010
【図３】
2004502239.tif 000011
【図４】
2004502239.tif 000012
【図５】
2004502239.tif 000013
【図６】
2004502239.tif 000014
【図６ａ−１】
2004502239.tif 000015
【図６ａ−２】
2004502239.tif 000016
【図６ｂ−１】
2004502239.tif 000017
【図６ｂ−２】
2004502239.tif 000018
【図７】
2004502239.tif 000019
【図８】
2004502239.tif 000020
【図９Ａ】
2004502239.tif 000021
【図９Ｂ】
2004502239.tif 000022
【図１０Ａ】
2004502239.tif 000023
【図１０Ｂ】
2004502239.tif 000024
【図１１Ａ】
2004502239.tif 000025
【図１１Ｂ】
2004502239.tif 000026
【国際公開パンフレット】
2004502239.tif 000027
2004502239.tif 000028
2004502239.tif 000029
2004502239.tif 000030
2004502239.tif 000031
2004502239.tif 000032
2004502239.tif 000033
2004502239.tif 000034
2004502239.tif 000035
2004502239.tif 000036
2004502239.tif 000037
2004502239.tif 000038
2004502239.tif 000039
2004502239.tif 000040
2004502239.tif 000041
2004502239.tif 000042
2004502239.tif 000043
2004502239.tif 000044
2004502239.tif 000045
2004502239.tif 000046
2004502239.tif 000047
2004502239.tif 000048
2004502239.tif 000049
2004502239.tif 000050
2004502239.tif 000051
2004502239.tif 000052
2004502239.tif 000053
2004502239.tif 000054
2004502239.tif 000055
2004502239.tif 000056
2004502239.tif 000057
2004502239.tif 000058
2004502239.tif 000059
2004502239.tif 000060
2004502239.tif 000061
2004502239.tif 000062
2004502239.tif 000063
2004502239.tif 000064
2004502239.tif 000065
2004502239.tif 000066
2004502239.tif 000067
2004502239.tif 000068
2004502239.tif 000069
2004502239.tif 000070
2004502239.tif 000071
2004502239.tif 000072
2004502239.tif 000073
2004502239.tif 000074
2004502239.tif 000075
2004502239.tif 000076
2004502239.tif 000077
2004502239.tif 000078
2004502239.tif 000079
2004502239.tif 000080
2004502239.tif 000081
2004502239.tif 000082
2004502239.tif 000083
2004502239.tif 000084
2004502239.tif 000085
2004502239.tif 000086
2004502239.tif 000087
2004502239.tif 000088
2004502239.tif 000089
2004502239.tif 000090
2004502239.tif 000091
2004502239.tif 000092
2004502239.tif 000093
2004502239.tif 000094
【国際調査報告】
2004502239.tif 000095