「Mac OS Xへの道」で「Multilingual Text Engine」ついて説明した時、すでにAppleのSDKサイトにMultilingualTextEngineのSDK(MLTE SDK)があるのに、その事をすっかり忘れていた犯人は私です(笑)。それも、すでにダウンロードし、サンプルプロジェクトのコンパイル&リンクを試していたにも関わらずです。まったく大ボケですね。プログラマーを20年もやっているとボケが促進されるのかもしれません(涙)同胞よ注意しましょう。以下が問題のMLTE SDKであります。

ちなみに「すでにMLTE SDKはありますよ」情報は、MOSA会員で知り合いの高橋真人さんからご連絡いただきました(感謝感激雨アラレ)。ついでなので、高橋さんとメールでMultilingual Text Engineに関して話をしたのですが、2人の話題に上がったのは「こいつは、いったいMac OSのどのバージョンから使えるのか?」という疑問でした。
で、付属の「MultiLingualTextEditor1.1.pdf」をざっと読んでみると、Mac OS 8.6のような気もしますし...。まあ、Mac OS 9やCarbon環境で使えることは確かでしょう。そこで、昨年のMOSA湘南セミナー初日にアップルがMultilingual Text Engineの説明をした時、私からアップルの担当さんにその疑問を尋ねたことを思い出しました。その時の答えは「よくわかりません」でした...(涙)
PDFをもう少し詳しく読んでみると、Multilingual Text Engineは、ATSUIが使えるMac OSのバージョンではそれを使い、そうでないバージョンではQuickDraw を使ってテキスト描画をすると記述されています。そして驚くなかれ「おいらはSystem 7.1から使えるんだぜ!」とも記述されています。Appleは、古いOSバージョンで最新機能を使えるようにするために、その機能を含んだ「機能拡張」ファイルを作成し配布するという手段を取ります。新しいところでは「Navigation Service」や「Appearance Manager」、古くは「Drag&Drop Manager」などがその一例です。
と言うことは「SDKの中に何か新しい機能拡張ファイルがあるのか?」と探してみると、これが無い?それではと、サンプルプロジェクトでどんなライブラリをリンクしているのかを調べてみると、「MacTextEditor.h」を#includeして「Textension」というライブラリをリンクしていることが分かります。

これらは両方とも「Universal Headers 3.3.2」に存在していますので、Carbon環境でなくても使えることは間違いありません。でも、Textensionはstubライブラリなので、リンク情報を持つのみでAPIのコード実体は含まれていないはずです(たった2Kしかないし)。ということは、Systemファイルか、ディフォルトの機能拡張ファイル内にMultilingual Text Engineのコードが存在していることになります。
ここで問題は「System 7.1から使えるぜ!」という記述です。まあ、7.1とは言わないですが、7.6とか8.1でも特別な機能拡張なしにMultilingual Text Engineは使えるのでしょうか?はたまた、Appleの怠慢でそうした機能拡張のリリースがまだなされていないだけなのでしょうか?もっと大胆に推測してみれば、System 7.1のころからすでにAPIはあったのだが、ず〜〜〜〜〜〜〜〜〜〜〜〜と内緒にされていたのでしょうか(爆笑)
というわけで、これに関する真実をご存じの方はぜひご連絡ください。アップルの方でも結構です(誰と無く...)待ってま〜す。
copyright 2000 Ottimo, Inc. All rights reserved
無断転載・引用禁止
Contact Us: koike@ottimo.co.jp