Technical Notesに、Launch Servicesについての解説文書が掲載された。ドキュメントが完備されていないため、取りあえず最低限の内容をTechnoteとして届けると記載されている。なお、この機能については、MDOnlineの「Browsing Mac OS X」のコーナでも解説を行う予定だ。Launch Servicesは、アプリケーション内で別のアプリケーションを起動したり、あるいは文書を開いたり、さらにはURLを開くといった機能を提供するサービスである。クリエイタや、あるいはファイルの拡張子から、それに結び付けられたアプリケーションを求めるというサンプルがまず解説されている。また、アプリケーションで指定した文書ファイルを開くというサンプルも掲載されている。さらにNavigation Servicesで、特定のアプリケーションで開くことができるファイルだけを表示するためのフィルタプロシージャ(コールバック関数)のサンプルも掲載されている。 また、興味深いのは、ファイルタイプ、クリエイタに加えて拡張子も加わったMac OS Xでの起動するアプリケーションを特定する動作についての説明があることだ。まず、(1)Finderの情報ウインドウで指定したアプリケーションが最優先される。次に、(2)文書ファイルにクリエイタが設定されていれば、そのクリエイタ情報をもとにアプリケーションを検索する。続いて、(3)拡張子がある場合、アプリケーション側で定義されている拡張子と照らし合わせてアプリケーションを検索する。さらに、(4)それでも該当するアプリケーションがないのなら、ファイルタイプがある場合にはやはりアプリケーションの定義と照らし合わせて検索する。同一条件なら、Classicアプリケーションよりもネイティブアプリケーション、さらにはバージョンの新しいものが選択される。ここでのポイントは、拡張子よりもクリエイタが優先されるということだろう。また、文書ファイルにはクリエイタを設定しないという手法も使えることもうかがえる。この文書にも、ファイル名、ファイルタイプ、クリエイタの組み合わせを示して、どのアプリケーションが起動されるかということが示されている。同じテキストファイルなのに、SimpleText文書だったり、TextEdit文書だったりするのは、ファイルのクリエイタが前者ではttxtになっているということであると説明できるだろう。実際、SimpleText文書のクリエイタを「????」にすることで、TextEdit文書に変換できるのである。 |