Macintosh Developer Online (MDOnline)


2001年4月20日発行号 - Launch Servicesについて



WWDCではステーィブジョブズ氏が貴重講演を行うという話は記事にしませんでしたが、それ以上の情報はないのでいいかと思います。それから、iMacの出荷が500万台を超えたこともニュースですね。また、四半期の決算が発表されましたが、利益は4,300万ドルで黒字となっています。売上総利益は3億8,500万ドルの黒字ではあるものの、営業利益は-800万ドルということで赤字になります。その他諸々ということで経常利益が4,300万ドルという数字です。株式の売買益などで黒字に持ち込んだということでしょう。第一四半期と合わせた半年の数字となると、もっと悪くなります。その意味では第一四半期よりも良くなっていますが、ちょっと厳しい数字ですね。次の四半期に良くなるという予測も成り立ちますが、逆も成り立つでしょう。売り上げの内訳を見ると、iMacが依然好調だけど、iBook、Cubeがかなり悪く、Cubeについてはかなり低い数値です。モデルチェンジをしても売れなかったというのが数字で出ています。Power Mac G4があいかわらず収益に貢献しており、PowerBookがG4の効果だと思いますが、第一四半期よりも上向きです。ただ、G3を安くした効果がどちらの期に入るのかは定かではありませんが…。だけど、第三四半期は新機種はほぼないと見ると、今現在の陣容でどれくらい売れるかということになります。もっとも、Mac OS Xバンドルマシンが出るので購買者は待ちに入るのは確実でやはり上向きは難しいでしょう。7月に出ると思われるマシンでどこまで回復するかということですが、それ次第では、2001年度は赤字決算になる可能性が高くなるということじゃないかと思います。年度で赤字を出した時には、過去のアップルは必ずなにかごたごたしていますよね。今年の後半、一揺れあるかもしれません。もっとも、Mac OS Xが好調ならまた話は別だと思いますが、盛り上がっているのは限られた人たちという気もしますから、その意味では決して安心できる状態ではないと言えます。ハード製品にしろOSにしろ、上向きの材料がないと厳しいという状況ではあるでしょう。
(新居雅行 msyk@mdonline.jp


Browsing Mac OS X》Launch Serviceを使ってみる

Mac OSには、アプリケーションから、別のアプリケーションを開くといった機能を組み込むために、LaunchApplicationというAPIコールを用意していた。この呼び出しは単にアプリケーションを別に起動するというだけでなく、アプリケーションを開いて指定の文書を開くといったこともできるような高機能なAPIであった。Mac OSでのユーティリティなどでお世話になったプログラマも多いことだろう。しかし、CarbonやMac OS Xとなると、このLaunchApplicationの様子が違うのである。この呼び出しはサポートされてはいて、アプリケーションの起動はできるのであるが、指定した文書を開かせることが、簡単にはできそうにないのだ。というのも、開かせる文書を、AppleEventに附随させるパラメータの形式で与えるわけだが、Carbonではディスクリプタの形式はブラックボックスになっているため、LaunchApplicationのパラメータに与える形式のデータの構築が、どうもできないようなのである。絶対にできないとは言い切れないとは思うが、そうして大変なことをするよりも、新たに加わったLaunch Servicesという機能を使うほうがよっぽど楽にプログラミングができる。ただし、Carbonというよりも、Mac OS Xに存在するフレームワークなので、CarbonLibには含まれない。したがって、Mac OS 9.1までのシステムでは機能しないので、Mac OS X専用アプリケーションで使える手段となる。数日前に、Technical Notesで、その内容について掲載されたが、簡単なものだったので、少し詳しくこのコーナーでお届けしよう。

◇TN2017:Using Launch Services for discovering document binding and launching applications
 http://developer.apple.com/technotes/tn/tn2017.html

この文書にあるように、詳しく知りたい人はLaunchServices.hというヘッダを見てほしいとなっている。事実、ヘッダにはしっかりとAPI解説文書が書き込まれているので、まずはそれを御覧いただくのがやはり早道だろう。Project Builderですぐにヘッダを開くには、Command+shift+Dというキー操作を行い、表示されたダイアログボックスでヘッダファイル名をキータイプするという手もある。
CarbonLibには含まれないものではあるが、LaunchServices.hはヘッダのCarbon.hから読み込まれる範囲にあるので、いずれにしても、Carbon対応アプリケーションでは例外なく利用できるであろう。なお、Cocoa環境では、NSWorkspaceというクラスに、アプリケーションを起動したり、あるいは文書を指定したアプリケーションで起動するという機能が利用できる。今回の記事では、Launch ServicesをC言語で使う方法を説明しよう。今回は概要を示し、別の日にお届けする記事でサンプルプログラムを掲載しよう。

まず、Launch Services全体にかかわることとして、ファイルの参照はFSRefを使う。FSSpecではなく、FSRefなので、FSSpecで作っているアプリケーションは、File ManagerのFSpMakeFSRefを使うなどして、FSRefを得ればよいだろう。
そして、Launch ServicesはURLを利用して処理対象を指定することもできる。そのときにはCore FoundationのURL Seriviceを利用する。URLで処理をする場合には、Core Foundationの処理についてもあらかじめチェックをしておこう。
実際にアプリケーションでLaunch Servicesを使う場合には、アプリケーションの最初にLSInit()、アプリケーションの最後にLSTerm()を呼び出しておく。この呼び出しはフレームワークやライブラリでは必要無いがアプリケーションでは必要になる。
あとは、規定のAPIコールを使うだけと言えばそれまでだ。設定に必要な構造体の定義もいくつかあるが、決して複雑怪奇なものではない。基本的な利用は、ストレートにデータを与えるだけだと言ってもいいだろう。FSRefで起動したり文書を開いたりするのは、LSOpenFromRefSpecというAPIコールですべて事足りる。そこで使う構造体はLSLaunchFSRefSpecで、これにアプリケーションへのFSRefや開く文書のFSRefを指定する。すぐにでも使いたい人はヘッダファイルのこのあたりを重点的に見てもらえば良いだろう。
(この項、別の日の記事に続く)

カテゴリ:Mac OS X, Browsing Mac OS X


TIL》Mac OS XのTextEditでWebdingsやZapf Dingbatを選択できない

Mac OS Xに付属のテキストエディタTextEditで、フォントとしてWebdingsやZapf Dingbatを選択できないという問題がある点についてTech Info Libraryに掲載された。これらのフォントを選択すると、ヒラギノ角ゴフォント選択されてしまう。この問題については、認識をしており、機知のバグだとしている。

関連リンク:Mac OS X 10.0: Webdings and Zapf Dingbat Fonts Do Not Work in TextEdit
カテゴリ:Knowledge Base(旧TIL), テキスト/フォント


TIL》Mac OS XはLocalTalkには未対応

Tech Info Libraryに、Mac OS XではLocalTalkには対応していないことが掲載された。LocalTalk経由で接続された機器は認識しない。ただし、サードパーティが可能性として、LocalTalkカードに対応するということが考えられるとしている。また、LocalTalk機器を使う場合には、Mac OS 9.1で起動するという方法もある。

関連リンク:Mac OS X 10.0: LocalTalk Hardware Does Not Work With Mac OS X
カテゴリ:Knowledge Base(旧TIL), ネットワーク


TIL》インストール時にDSLをネットワークで選択してもユーザ名は設定されない

Mac OS Xのセットアップ時にネットワーク接続を選択するが、DSLを選択した場合、プロバイダのユーザ名やパスワードについては設定されないことがTech Info Libraryの文書で掲載されている。セットアップ時には、DHCPないしはBootPの設定だけが行われる。そこで、起動後にシステム環境設定の「ネットワーク」にある「PPPoE」の設定パネルを開いて、ユーザ名とパスワードを設定する。また、「PPPoEを使って接続する」のチェックを入れておく。

関連リンク:Mac OS X 10.0: Setup Assistant Does Not Accommodate DSL User Name and Password
カテゴリ:Knowledge Base(旧TIL), ネットワーク


TIL》Mac OS XのClassicを起動する時にルート権限が必要だというエラーメッセージ

Mac OS XのClassic環境を起動すると、rootの権限が必要だというメッセージが出る場合があることについて、Tech Info Libraryで掲載された。ボリューム情報ウインドウで設定する「このボリュームのアクセス権を無視する」の設定を行い、その後に再起動せずにClassic環境を使うとこのエラーメッセージが出る。再起動するか、アクセス権無視の設定をしないようにすれば、エラーメッセージはでなくなる。なお、アクセス権無視にするとセキュリティ面でのガードが弱くなるため、なるべくこの設定は行わないようにする。

関連リンク:Mac OS X 10.0: Classic "superuser (root) Privileges" Message
カテゴリ:Knowledge Base(旧TIL), Classic


TIL》Mac OS Xでネットワーク内に存在するIPアドレスを指定した時のエラー

Mac OS Xのシステム環境設定にある「ネットワーク」で、すでにネットワークに存在するIPアドレスを指定した場合に表示されるエラーメッセージについての解説がTech Info Libraryに掲載されている。ネットワーク内の別のマシンと同じIPアドレスを設定するとエラーが出るので、その場合は一般には手入力を行うことになるが、正しいIPアドレスをネットワーク管理者などから入手してそれを設定する。

関連リンク:Mac OS X 10.0: IP Configuration "in use by" Message, NetWorking Disabled
カテゴリ:Knowledge Base(旧TIL), ネットワーク


TIL》Mac OS Xでメニューに時計表示が重なってしまう場合の対処

Mac OS Xでのメニューバーにある時計が、メニューの上に重なって表示されることについての説明が掲載されている。画面の解像度が低い場合で、アプリケーションのメニューがたくさんる場合にはどうしても重なってしまう。そこで、解像度を高くするなどして、メニューバーになるべくスペースを確保することで、重ならないようにして回避する。

関連リンク:Mac OS X 10.0: Menu Bar Clock Can Obscure Other Menu Bar Items
カテゴリ:Knowledge Base(旧TIL), ユーザインタフェース


TIL》Classicのシアターモードを使うアプリケーションでのトラブル回避

Mac OS X 10.0で、Classic環境にあるシアターモード機能拡張を使う場合、他のClassicアプリケーションが開けなくなるという点についてのTech Info Library文書が掲載された。シアターモードが可能な機種で機能拡張が組み込まれるが、QuickTime 4のQuickTime Playerを使うと、そうした現象になる。QuickTime PlayerはMac OS X側のVer.5のものを使うようにして回避する。

関連リンク:Mac OS X 10.0: Theater Mode Extension May Prevent Use of Other Applications
カテゴリ:Knowledge Base(旧TIL), Classic


TIL》音声認識処理を行うためのキー設定がうまくいかないときの処置

Mac OS Xの音声認識はあるキーを押している間だけできるように設定できるが、そのキーの設定が記録されない場合がある点について、Tech Info Libraryで掲載されている。その場合の操作手順が記載されているが、それによると、キーの定義を行った後、一度認識機能を切って、システム環境設定を閉じ、10秒待つ。そして、再度認識機能を入れれば機能するということだ。その手順が記載されている。

関連リンク:Mac OS X 10.0: Changing the Listening Key Does Not Work as Expected
カテゴリ:Knowledge Base(旧TIL), ユーザインタフェース


TIL》Mac OS Xをイタリアでモデム経由のダイアルアップ接続に使うとき

Mac OS Xをイタリアでダイアルアップ接続で利用する時には、システム環境設定の「ネットワーク」にある「モデム」の設定で、「Wait for Dial Tone」をオフにしないと接続ができないことがTech Info Libraryに掲載された。この設定をオフにしないと接続ができないというエラーが出る。なお、日本語のシステムでは「電話をかける前に発信音を確認する」というチェックボックスだ。

関連リンク:Mac OS X 10.0: Deselect the PPP "Wait for Dial Tone" Option in Italy
カテゴリ:Knowledge Base(旧TIL), ネットワーク


TIL》DVD Studio Proでのプレビューで同期がずれる場合の対処方法

Tech Info Libraryに、DVD Stduio Proで長いプロジェクトをプレビューすると、ビデオとサウンドのシンクロがずれることについての文書が掲載されている。これはプレビューだけの問題であるが、プロジェクトを複数にすることで対処できる。その方法が手順で示されている。

関連リンク:DVD Studio Pro: Audio/Video Sync Drifts During Preview
カテゴリ:Knowledge Base(旧TIL), メディア制作


TIL》DVD Studio ProでのマルチセグメントのMPEG-2ストリームを読み込む条件

Tech Info Libraryに、DVD Stduio ProでマルチセグメントのMPEG-2ストリームを読み込むための条件が記載されている。ファイル名の末尾に2桁までの数字が連続してふられており、タイムコードが含まれていて、選択したオーディオストリームがストリームの長さに合っているという条件となっている。また、その理由についても掲載されている。

関連リンク:DVD Studio Pro: Requirements for Importing Multi-Segment MPEG-2 Streams
カテゴリ:Knowledge Base(旧TIL), メディア制作


TIL》DVD Stduio ProではAdaptec/Roxio Toastフォーマットのディスクイメージを作成

Tech Info Libraryに、DVD Studio Pro 1.0.1でイメージファイルをUDF, ISO9660ディスクイメージで作成する方法が掲載された。イメージファイルでの保存では、Adaptec/Roxio Toastフォーマットで、UDF, ISO9660のディスクイメージを作成する。Adaptec/Roxio ToastフォーマットはCDやDVDの生産で使われるフォーマットである。

関連リンク:DVD Studio Pro 1.0.1: Image Files Stored in Toast Format
カテゴリ:Knowledge Base(旧TIL), メディア制作


TIL》Macintsh ManagerのMac OSクライアントでのサウンドに関する設定

Macintosh Managerの環境下で利用するMac OS 9.1までのシステムで、サウンド関連の設定についての文書がTech Info Libraryに掲載された。アクセス権の設定などをしないと、初期状態では設定ができない場合がある。設定を行うための手順が詳しく掲載されている。また、Mac OS 8.6以前のシステムでの動作についても詳しく掲載されている。

関連リンク:Mac OS: Sound Preference Settings and Macintosh Manager Interaction
カテゴリ:Knowledge Base(旧TIL), ユーザインタフェース