高度な検索
Developer Connection
Member Login ログイン | ご入会 ADC連絡先

Technote 1176

Mac OS 9

改訂版 2




このテクニカルノートでは、次世代の Mac OS である Mac OS 9 に加えられた変更と修正について説明します。Mac OS 9 は Mac OS 8.6 の後継システムであり、Mac OS 8.6 の機能に対する拡張と修正を含んでいます。

このテクニカルノートは、Mac OS 9 と互換性を持つ製品開発に関心を持っているすべてのデベロッパを対象に書かれています。





目次

変更履歴
必要なハードウェア
インストール
Finder 9.0
Apple ヘルプ 1.5

Apple ガイド 2.5
ヘルプビューア 1.5


Apple Data Security 2.0

Apple 署名検証
Apple ファイル保護
Cryptographic Message Syntax
キーチェーンアクセス 2.0


Mac OS 9 での Carbon のサポート

Carbon Control Manager
Carbon Menu Manager
Carbon Printing Manager
Carbon Scrap Manager
Carbon Window Manager
CarbonLib 1.0
CoreFoundation 1.2
新しい Carbon API の概要


System ファイルの内部

ATSUI 1.2
Code Fragment Manager 68K
Communications Toolbox
Device Manager
Dialog Manager
File Manager
システムエラー 119
File System Manager
Folder Manager
Font Manager
Mac OS USB
Memory Manager
Mixed Mode Manager
Multitasking/Multiprocessing 2.1
Navigation Services 2.0
Notification Manager
Power Manager 2.0
PPC Toolbox
Process Manager
QuickDraw
Sound Manager
Standard File
StdCLib 3.5
Multilingual Text Editor 1.1
Thread Manager
Unicode Text Utilities 1.1
UTC Utilities
Virtual Memory Manager

コントロールパネル

アピアランス
ColorSync 3.0
日付 & 時刻
File Exchange 3.0.2
ファイル共有
FontSync
メモリ 8.1.1
モニタ
マウス
テキスト
サウンド
ソフトウェア・アップデート


システム機能拡張

AppleScript 1.4
AppleShare Client 3.8.5
ColorSync 3.0
CoreFoundation
DrawSprocket 1.7
Find By Content
HTMLRenderingLib
InputSprocket 1.7
LaserWriter 8 バージョン 8.7
MRJ 2.1.4
マルチユーザ 1.0
NetSprocket 1.7
Network Services Location 1.1
OpenGL 1.1
Open Transport 2.5
PlainTalk 2.0.2
SoundSprocket 1.7
Text Encoding Converter 1.5


アップルメニュー

ネットワークブラウザ
Sherlock 2


ユーティリティ

Package First Aid
ドライブ設定


Apple エクストラ


今後サポートされなくなる項目

Apple テレコムソフトウェア
Energy Saver API
QuickDraw GX





変更履歴

1999年12月6日(改訂版 2)

Back to top







必要なハードウェア

Mac OS 9 は、PowerPC プロセッサを搭載して出荷されたすべての Macintosh が対象です。Mac OS 9 をインストールする Macintosh には少なくとも 32 MB の RAM が物理的に実装されていて、40 MB 以上の RAM が論理的に設定されている必要があります(物理的に実装されている RAM の容量が 64 MB未満の場合、仮想メモリの容量はデフォルトで 64 MB に設定されます。)

Apple では、Mac OS 9 を Apple 製の PowerPC ベースの Mac OS コンピュータでテストを行っており、その動作を保証しています(他社製の Mac OS 互換コンピュータでは Mac OS 9 のテストを行っていないため、これらのコンピュータで Mac OS 9 が正常に動作することは保証されていません。)

6100、7100、および 8100 モデルにインストールする場合は、コンピュータを Mac OS 9 インストール CD からブートする必要があります。

先頭ページに戻る






インストール

Install Mac

Mac OS インストーラ


“Mac OS インストーラ”アプリケーションプログラムを実行するには、System 7.1.2 またはそれ以降のシステムが必要です。このアプリケーションプログラムを使って、System 7.1.2 またはそれ以降のシステムに Mac OS 9 の CD-ROM システムインストールをすべてインストールすることができます。Mac OS 7.5.1 またはそれ以前のシステムを実行しているユーザは、CD からシステムをブートしてインストールを実行する必要があります。


  • Mac OS 9 のインストーラスクリプトでは“機能セット(Feature Sets)”という概念がサポートされ、ユーザはさまざまなインストールのタイプを選択できるようになりました。これらの新しいインストールのタイプは、“標準(for this computer)”や“ユニバーサル(universal)”だけでなく、教育、ビジネス、ゲームなどに特に関心のあるユーザのニーズに合わせて調整することができます。

先頭ページに戻る






Finder

Finder 9.0


Finder はユーザにグラフィカルインタフェースを提供すると同時に、ファイルシステムを利用するアプリケーションに Apple イベントベースのサービスを提供します。


  • サイズが 2GB を超えるファイル(サイズの理論的な上限は 263 バイト)をコピーする機能と、それらのファイルに関する情報を“情報”ウインドウに表示する機能が追加されました。

  • 長い Unicode ファイル名を持つファイルをコピーしても、そのファイル名が保持されるようになりました。

  • Desktop Manager をサポートしないボリューム(典型的にはフロッピーディスクボリューム)にサイズの大きな“デスクトップ”ファイルが含まれていても、これまでよりもはるかに速くボリュームをマウントできるようになりました。

  • Finderは、それぞれの書き込み可能ディスクに“TheVolumeSettingsFolder”という名前の不可視フォルダを作成するようになりました。このフォルダは、オープンウインドウの位置やデスクトッププリンタなどの項目に関する情報を追跡するために使用されます。

  • Carbon アプリケーションのバンドル(1つまたは複数のサポートファイルを含むフォルダ) に対するサポートが追加されました。ただし、Mac OS 9 でのパッケージのインプリメンテーションにはいくつかの注意事項があります。

    • パッケージのフォルダ内部にある項目をオープンしようとするとき、Finder はオープンする書類のリストを含む 'odoc' イベントを送信します。これまでと異なるのは、書類リストが 'fpdl'(Finder package document list)というキーを含む省略可能なパラメータに格納されることです。

    • Finder のインタフェースで、パッケージはフォルダとして格納されている場合にもアプリケーションと同様に動作します。パッケージの内容はユーザからは見えません。

    • パッケージに含まれる項目のエイリアスが作成されていて(仮に、以前のシステムバージョンを使用しているときに)、ユーザがこのエイリアスをオープンしようとすると、そのエイリアスは省略可能な 'fpdl' パラメータを含む 'odoc' イベントを使ってパッケージのアプリケーションに渡されます(アプリケーションの 'BNDL' がファイルタイプのリストを含んでいない場合でも。)

  • “ファイル”メニューに“暗号化”という項目が追加されました。この項目を選択すると、“Apple ファイル保護”ユーティリティが自動的に起動し、選択している書類が暗号化されます。この方法で暗号化したファイルは、そのアイコンをダブルクリックして復号化できます。注意:Apple ファイル保護はフォルダを暗号化できません(フォルダがパッケージであっても。)

  • Mac OS 9 の Finder は“常に並べる”や“常にグリッドに沿う”オプションが選択されているウインドウについて、AppleScript によるアイコン位置の設定を受け付けません。このようなウインドウに対してアイコン位置の設定をした場合、Finder はエラーコード -15274(window wrong type)を返します。

関連資料

テクニカルノート TN1188: Mac OS 9 パッケージ
テクニカルノート TB09: Finder Flags
テクニカルノート TB42: Finder Icon Positioning and File Initialization
テクニカルノート TB535: Finder Q&As
テクニカルノート TN1126: アプリケーションおよび機能拡張の構築のためのチェックリスト
Icon Services 技術文献
Inside Macintosh: Macintosh Toolbox EssentialsFinder Interface の章
Inside Macintosh: AppleScript Finder Guide
Anderson, G. Scripting the Finder - Develop 20.


先頭ページに戻る







AppleHelp

Apple ヘルプ 1.5


Apple ヘルプは Mac OS のほぼすべての機能に関する詳細な操作手順ヘルプを提供します。Apple ヘルプテクノロジは、ヘルプビューアと Apple ガイドという2つの主要なコンポーネントから構成されています。




Apple ガイド 2.5

Mac OS 9 で Apple ガイドは、何らかのタスクを実行するために必要な一連のコマンド操作をユーザに指示するために使用されます


  • Apple ガイドのバージョン 2.3.1 と 2.4.1 の場合、Apple ガイドの Gestalt バージョンセレクタは 2.3.1 を返します。Apple ガイド 2.5 の場合、Gestalt セレクタ 'ag_v' は 2.5 を返します。


ヘルプビューア 1.5

ヘルプビューアはシンプルな HTML レンダリングアプリケーションで、ユーザがオンラインヘルプの情報を容易にブラウズすることを可能にします。ヘルプビューア 1.5 には次のような機能が追加されました。


  • ヘルプビューアは、ローカルにインターネットベースのヘルプコンテンツを検索して、それを表示することができます。

関連資料

Apple Help SDK


先頭ページに戻る







Apple Data Security 2.0

Apple Data Security はセキュリティ機能を Mac OS に導入します。新しく提供されるセキュリティ機能には、ファイルシグネチャの署名と検証、パスワード保守、およびファイル暗号化に関する機能が含まれます。



Apple Code

Apple 署名検証


Apple 署名検証は Mac OS 9 に追加された新しいテクノロジで、デベロッパによるアプリケーション、プラグイン、およびコンテンツの署名を可能にします。Apple Code Signing Certificates は、ユーザに製品の同一性と整合性を保証します。詳細については Mac OS Security and Cryptography のページをご覧ください。



Apple File Security

Apple ファイル保護


Apple ファイル保護は暗号化機能を提供します。ユーザはこのアプリケーションを使って、パスワードによるファイルの暗号化または暗号化されたファイルの復号を行うことができます。Finder に新たに追加された“暗号化”メニュー項目は、“アプリケーション”フォルダ内に常駐する Apple ファイル保護アプリケーションの機能に依存しています。Apple ファイル保護にはフォルダの圧縮および暗号化を行う機能はありません。これによりパッケージの暗号化が妨げられます。



CMS

Cryptographic Message Syntax(CMS)


CMS はハイレベルはデジタル署名 API です。CMS については RSA Laboratories の Cryptographic Message Syntax Standard に関する技術文献をご覧下さい。アップルの API については Mac OS Security and Cryptography のページをご覧ください。

Mac OS 9 には、CMS へのアクセスに使用する API のベータバージョンが導入されています。



キーチェーン

キーチェーンアクセス 2.0


キーチェーンはパスワードの安全なリポジトリを提供します。1つのマスタパスワードを入力するだけで、アプリケーションプログラムはキーチェーンに格納されている他のすべてのパスワードを使用できるようになります。ユーザが複数のパスワードを記憶している必要はありません。キーチェーン 2.0 では次の機能がサポートされています。


  • 複数のオープンキーチェーン

  • 暗号化されたキーと認証の格納

  • マルチユーザ機能との統合

関連資料

Mac OS Security and Cryptography のページ


先頭ページに戻る







Mac OS 9 での Carbon のサポート


Carbon は Mac OS アプリケーションで使用するプログラミングインタフェースのセットです。Carbon には、レガシー Mac OS API の約 70% が含まれています。Mac OS 9 には、Carbon API の最初のインストールが付属します。以下のセクションでは、Mac OS 9 で使用可能な Carbon API の概要を示します。


Carbon Control Manager

Carbon Control Manager は既存の Control Manager API にいくつかの変更を加えています。次に、これらの新しいサービスを示します。


  • GetControlID および SetControlID という新しいルーチンが追加されました。これらのルーチンを使用すると、コントロールをその ID 番号で参照できるようになります。

  • 新しいコントロール定義パッケージングモデルが導入され、コントロールはスタンドアロンのコードリソースとしてではなく、CFM コードフラグメントとして格納されるようになりました。

  • コンテキストメニューをサポートするようにコントロール定義を書くことが可能になりました

  • プロパティを制御するための属性が追加されました。コントロールのプロパティが persistent であるとマーキングすると、コントロールがフラット化されるとき、そのプロパティのデータは自動的に保存されるようになります。

  • 6 つの新しい Control Manager API が導入され、コントロールによるドラッグ & ドロップ操作をサポートするようになりました。この新しい機能のオン/オフはコントロールごとに切り替えることもできますが、ウインドウ単位で設定することもできます。

関連資料

テクニカル Q&A TB39: Appearance 機能拡張のバージョン
High Level Toolbox に関連するテクニカルノート
High Level Toolbox に関連するテクニカル Q&A
Inside Macintosh: Mac OS 8 Toolbox ReferenceControl Manager Reference の章
Inside Macintosh: Macintosh Toolbox EssentialsControl Manager の章
Inside Macintosh: Macintosh OS 8 Human Interface Guidelines
Appearance SDK


先頭ページに戻る




Carbon Menu Manager

Carbon Menu Manager は既存の Menu Manager API にいくつかの変更を加えています。次に、これらの新しいサービスを示します。


  • メニューは opaque データとして格納されるようになりました。

  • アップルメニューの自動的な取り扱いが可能になりました。

  • カスタムメニューを定義するための新しい API が追加されました。

関連資料

Carbon Menu Manager 技術文献(準備中)


先頭ページに戻る




Carbon Printing Manager

Carbon Printing Manager は、アプリケーションがプリント出力を生成するために使用する API のまったく新しいセットを提供します。次に、これらの新しいサービスを示します。


  • 新しい API が追加され、事実上、印刷プロセスのすべての面を管理できるようになりました。

  • より多くのユーザ設定を格納できるようにプリンタ設定構造体が拡張されました。

関連資料

Carbon Printing Manager 技術文献


先頭ページに戻る




Carbon Scrap Manager

Carbon Scrap Manager は、スクラップにアクセスするための新しい API を導入します。次に、これらの新しいサービスを示します。


  • 'promised' スクラップデータを提供する機能が追加され、アプリケーションはリクエストされるまでデータの作成を遅延できるようになりました。これは、Drag Manager の 'promised' フレーバーモデルに類似した概念です。

関連資料

Carbon Scrap Manager 技術文献(準備中)


先頭ページに戻る




Carbon Window Manager

Carbon Window Manager は既存の Window Manager API を拡張し、Mac OS にいくつかの斬新で興味深いウインドウ管理機能を導入します。次に、これらの新しいサービスを示します


  • ウインドウクラスとレイヤー

  • カスタムウインドウを定義するための新しい API

関連資料

Carbon Window Manager Documentation(準備中)


先頭ページに戻る




CarbonLib 1.0

CarbonLib は、Mac OS 9 で Carbon ベースのアプリケーションの実行を可能にする共有ライブラリです。Carbon アプリケーションは、CFM ベースのアプリケーションのように、InterfaceLib などのライブラリにリンクする代わりに CarbonLib に対してリンクを行います。


  • CarbonLib 1.0 は Mac OS 9 で新たに導入されました。

    互換性に関する注意
    CarbonLib 1.0 は Mac OS 9 専用です。Mac OS の以前のバージョンや Mac OS の今後のバージョンではロードされません。


関連資料

Carbon に関するリソース


先頭ページに戻る




CoreFoundation 1.2

CoreFoundation は Mac OS X の Cocoa API からさまざまな API やサービスを抽出し、それらを C API と純粋な C インプリメンテーションを使った複数のプラットフォーム上の複数のスタックで使用できるようにします。


  • Unicode 文字列を取り扱うための統一的かつシンプルな方法を提供する文字列型が追加されました。これにより、Unicode 文字列と 8 ビットエンコーディングされた Pascal および C の文字列との間で容易に変換する方法が提供されます。

  • String とともに、“プロパティリスト”の機能を提供するコレクションクラス(Dictionary、Array、Data) が追加されました

  • プロパティリストの読み書きに対する XML サポートが追加されました。

  • いくつかのユーティリティを使用して日付/時刻を抽象する方法が提供されました。

  • ユーザまたはアプリケーションごとに設定可能なユーザ初期設定(プリファレンス)の読み書きに対する“初期設定”フォルダのサポートが追加されました。

  • 実行可能で、任意にローカライズ可能なリソースファイルを含む Carbon アプリケーションラッパーを管理するためのバンドル API が追加されました。

    互換性に関する注意
    将来のバージョンとの互換性を維持するため、潜在的にインターナショナルな文字列データを取り扱うすべてのソフトウェアでは、これらの文字列型の使用を開始してください。


関連資料

Core Foundation 技術文献(準備中)


先頭ページに戻る




新しい Carbon API の概要

次に、Mac OS 9 の一部としてインストールされる CarbonLib 1.0 によって導入された新しい API の概要を示します。


  • Apple event Manager
    • AEDesc.dataHandle は opaque です
    • AEDesc アクセッサ
  • Alias Manager
    • UI を表示することなくエイリアスを解決する新しい API
  • Appearance Manager
    • GetThemeMetric
  • Control Manager
    • コードリソースの代わりに ProcPtrs を使用するカスタムコントロール定義のサポート
    • コントロールのプロパティ属性
    • ControlRecord は opaque です
    • コントロールアクセッサ
    • コントロール ID
    • 次のコントロール定義がサポートされます
      • コンテキストメニュー
      • Drag Manager
      • カーソルの設定
  • Dialog Manager
    • ダイアログ項目リストの編集
    • DialogRecord は opaque です
    • ダイアログアクセッサ
  • Event Manager
    • 現在のマウス位置とキーボード修飾子を取得する新しい API
  • Icon Services
    • アイコンファイルの登録
  • List Manager
    • コードリソースの代わりに ProcPtrs を使用するカスタムリスト定義のサポート
    • リストアクセッサ
  • MacHelp Manager
    • バルーンヘルプに代わる新しいコンテキスト依存ヘルプ API。ただし、CarbonLib 1.0 での使用はお勧めできません。
  • Memory Manager
    • Ptr、Handle、およびヒープの検証に使用する新しい API
  • Window Manager
    • コードリソースの代わりに ProcPtrs を使用するカスタムウインドウ定義のサポート
    • 既存のウインドウの属性を変更する機能
    • ウインドウのプロパティ属性
    • クラスによるウインドウの繰り返し
    • WindowRecord は opaque です
    • ウィンドウアクセッサ
  • Menu Manager
    • コードリソースの代わりに ProcPtrs を使用するカスタムメニュー定義のサポート
    • メニューのプロパティ属性
    • メニューとメニュー項目の属性
    • マスメニュー項目のオン/オフ
    • CommandID-ベースのメニュー項目へのアクセス
    • 標準フォントメニュー
    • MenuInfo iは opaque です
    • メニューアクセッサ
  • QuickDraw
    • GrafPort, QDGlobals, および Region は opaque です
    • GrafPort, QDGlobals, および Region アクセッサ
  • Resource Manager
    • リソースチェーンを操作する API
  • Scrap Manager
    • クラシックな Scrap API に代わるまったく新しい API
  • String Comparison
    • TypeSelect APIs
  • TextEdit
    • 一部の TextEdit 下位メモリグローバルに対するアクセッサ
  • Text Utilities
    • p2cstrcpy など

先頭ページに戻る







System File

System ファイルの内部


System ファイルには、コンピュータを動作させるために必要なコードとリソースが含まれています。このセクションでは、System ファイルに加えられた新機能、変更、およびバグフィックスについて説明します。shift キーを押しながらシステムを起動したときにも、System ファイルによって提供される機能は常に Mac OS 9 の一部としてロードされます。




ATSUI(Apple Type Services for Unicode Imaging)1.2

Unicode は、フラットな 16 ビット数値空間の中で多数の言語の文字をエンコードする文字セットです。ATSUI は QuickDraw API を拡張し、Mac OS アプリケーションによる Unicode テキストの描画を可能にします。ATSUI は Unicode テキストを描画するためのローレベルなサービスを提供するだけでなく、これまでは QuickDraw GX によって行われていたハイエンドなタイポグラフィ制御の多くを提供します。


  • Postscript Type 1 フォントのすべてのフレーバーに対するネイティブサポートが追加されました。サポートされる Type 1 フォントフォーマットには、以下のものが含まれます。

    • sfnt unimaster

    • sfnt multimaster

    • sfnt CID(主に 2 バイト)

    • LWFN + FOND unimaster

    • OCF(ダブルバイトスクリプトに使用するオリジナルのコンポジットフォント)

    • naked CID

  • ATSUI が必要とするメモリ容量が少なくなりました

  • 行区切りは Unicode ユーティリティに基づいた言語学的な区切りになりました

  • 行区切り操作のパフォーマンスが向上し、より高速なレイアウトが可能になりました

  • タブ文字の処理が追加されました

  • API に多数の新機能が追加されました

  • バグフィックスが行われました

関連資料

テクニカルノート TN1102: Mac OS 8
テクニカルノート TN1121: Mac OS 8.1
テクニカルノート TN1142: Mac OS 8.5
テクニカルノート TN1163: Mac OS 8.6
Inside Macintosh: Text Encoding Conversion Manager
Text Encoding Converter 1.5 SDK
ATSUI SDK


先頭ページに戻る





Code Fragment Manager 68K(CFM-68K)4.0

68K Code Fragment Manager(CFM-68K)は、Code Fragment Manager の 68K インプリメンテーションです。68K Code Fragment Manager は 68K マシン上の Mac OS の一部であり、680x0 コードフラグメントをメモリにロードして、その実行を準備します。CFM-68K を PowerPC マシンで使用するのは適切ではありません。


  • いくつかの CFM-68K フラグメントがシステムから削除されました。Mac OS 9 は PowerPC ベースのシステムでのみ実行されるため、これらの CFM-68K フラグメントはもはや必要ありません。

関連資料

テクニカルノート TN1084: 割り込み時におけるCFM-68Kコードの実行: あなたのコードは大丈夫?
テクニカルノート TN1077: Calling CFM Code From Classic 68K Code, or There and Back Again, A Mixed Mode Magic Adventure
CFM-68K SDK


先頭ページに戻る





Communications Toolbox

Communications Toolbox は、基本的な通信および接続サービスのための API を提供します。


  • Communications Toolbox Resource Manager(CRM) はこれまで、シリアルポートの最大許容速度を誤ってレポートしていました。Mac OS 9 では、最大許容ポート速度を正しくレポートするように CRM が修正されました。

関連資料

Apple Computer, Inc. Inside the Macintosh Communications Toolbox. Addison Wesley.
Communications Toolbox Online Documentation


先頭ページに戻る





Device Manager

Device Manager は、アプリケーションとデバイスドライバ(通常は特定のハードウェアデバイスとデータをやり取りするコード。ただし、一部のデバイスドライバは実際にはドライブデバイスではないこともあります)との間のデータのやり取りに使用するプログラミングインタフェースを提供します。


  • 非同期バリアント(_Control_Status_Read_Write)を含む呼び出しに MP タスクから同期的にアクセスできるようになりました。この機能を使用できるかどうかをテストするため、デベロッパは gestaltMPCallableAPIsAttr Gestalt セレクタを使用することができます。

関連資料

Multitasking/Multiprocessing
デバイスに関連するテクニカルノート
Devicesに関連するテクニカル Q&A
Inside Macintosh: DevicesDevice Manager の章
Designing PCI Cards & Drivers
Minow, M. The New Device Drivers: Memory Matters. Develop 24.
PCI DDK


先頭ページに戻る





Dialog Manager

Dialog Manager はユーザとダイアログとの相互作用を管理します。Dialog Manager には次の新機能が追加されました。


  • 今後、Carbon アプリケーションはダイアログの項目リストハンドルにアクセスできなくなります。新しいルーチンが追加されたため、Carbon アプリケーションは項目リストに含まれる項目を直接編集できるようになります。

関連資料

テクニカル Q&A TB39: Appearance 機能拡張のバージョン
ツールボックスに関連するテクニカルノート
ツールボックスに関連するテクニカル Q&A
Inside Macintosh: Mac OS 8 Toolbox ReferenceDialog Manager Reference の章
Inside Macintosh: Macintosh Toolbox EssentialsDialog Manager の章
Inside Macintosh: Macintosh OS 8 Human Interface Guidelines
Franke, N. Multipane Dialogs. Develop 23.
Lavoie, M. & Johnson, B. KON & BAL's Puzzle Page: AppendDITL Apoplexy. Develop 29.
Appearance SDK


先頭ページに戻る





File Manager

File Manager は、ディスクベースの情報を格納したり取得したりするためのサービスを提供します。File Manager には次の新機能が追加されました。


  • File Manager のこのバージョンには HFS Plus API が導入されました。この中には、サイズの大きなファイル(2GB を超えるフォーク。サイズの理論的な上限は 263 バイト)や長い Unicode 名のサポートが含まれます。基盤となるファイルシステムのインプリメンテーションによってサポートされている場合は、名前付きフォークもサポートされます(Mac OS 9 に組み込まれているファイルシステムではリソースおよびデータフォーク以外のフォークはサポートされていませんが、FSM プラグインにより、この機能のサポートをインプリメントすることが可能です。)

  • オープンファイルの最大数を 8169 に増やしました。

  • 非同期バリアントを含むパラメータブロック呼び出しや、このような呼び出しに基づくハイレベル呼び出しを、MP タスクから同期的に実行できるようになりました。PBMountVol などの常に同期的に実行される呼び出しを MP タスクから呼び出すことはできません。

  • File Manager はソフトウェアが暴走しても HFS や HFS+ ボリュームのエクステント情報やディスクカタログを誤って上書きできないように変更されました。

  • File Manager では、driverHardwareGoneErr(-503)というディスクドライバから返される新しいエラーコードがサポートされるようになりました。ディスクドライバでは、デバイスが切断されていて再接続できないドライブへの I/O リクエストに応答して、このエラーを返す必要があります。このエラーコードは USB ディスクドライバで特に役立ちます。FireWire ディスクドライバでは、これまでと同様に FireWire ルーチンの FWWaitForDeviceRePlug を使って、デバイスの再接続をユーザに強制する必要があります。

    互換性に関する注意(システムエラー 119)
    今後、FCB テーブルに直接アクセスすることはできないようになります。FCB テーブルに対する PowerPC ローメモリアクセッサ関数を呼び出すソフトウェアは、今後、dsMustUseFCBAccessors(119) システムエラーを発生させてシステムの実行を停止させます。FCB データにアクセスする必要のあるデベロッパは、TN1184: FCB の現在、そして未来 の説明にしたがって適切なルーチンを使用してください。


    互換性に関する注意
    あるボリュームに対する File Manager リクエストをすべて監視するために既存の File Manager プログラミングインタフェースにパッチを当てているデベロッパはソフトウェアを修正して、HFS Plus API にもパッチを当てる必要があります


関連資料

File System Manager
テクニカルノート TN1184: FCB の現在、そして未来
テクニカルノート TN1041: Files Errata の File Manager セクション
ファイル関連のテクニカルノート
ファイル関連のテクニカル Q&A
Inside Macintosh: FilesFile Manager の章


先頭ページに戻る





File System Manager

File System Manager は、外部ファイルシステムのインストールや識別を行ったり、外部ファイルシステムとオペレーティングシステムとのインタフェースをとるための一般的な手段を提供します。


  • 新しい API が追加され、非常に多くのファイルがオープンされているときに、FSM プラグインがすばやく FCB を検索することが可能になりました。

  • 新しい API が追加され、FSM プラグインによる FCB ポインタの検証と、FCB ポインタのファイル参照番号へのマップが可能になりました。

  • 新しい API が追加され、フォーク ID の使用時に FSM プラグインはパーミッションをチェックできるようになりました。

  • File Manager に互換レイヤがインプリメントされたため、FSM プラグインでは新しい HFS Plus API 呼び出しをサポートする必要がなくなりました。FSM プラグインが VCB の vcbFlags フィールドに含まれる kVCBFlagsHFSPlusAPIsBit をセットしていないかぎり、この互換レイヤは、プラグインで 1 つまたは複数の古いスタイルの呼び出しを行って、対象となるボリューム上で HFS Plus 呼び出しをエミュレートします。HFS Plus API を直接的にサポートしたい場合は、このビットをセットしてエミュレーションが行われないようにします。

関連資料

File Manager のセクション
File System Manager 1.2 SDK


先頭ページに戻る





Folder Manager

Folder Manager は、フォルダ名に依存することなく、特殊なフォルダ(たとえば、“機能拡張”フォルダなど) を検出するための機能を提供します。Folder Manager はデベロッパによるアプリケーションのローカライズ作業を支援します。


  • Folder Manager はマルチユーザをサポートするように修正されました。

  • FindFolder ルーチンの新しい拡張バージョンが追加されました。このバージョンは、FindFolder オペレーションのより厳密な制御を可能にする新しいフラグとデータパラメータを受けつけます。

  • FindFolder はフォルダのエイリアスにも対応するようになりました。

  • マルチユーザ設定を管理するその他の機能とともに通知コールバックが追加されました。

  • IdentifyFolder のパフォーマンスが向上しました。

  • 新しいボリュームセレクタである kOnAppropriateDisk が追加されました。このセレクタにより、目的のフォルダをいくつかの異なるボリュームで検索する必要があるときにも、デベロッパは特定のフォルダの位置を容易に確立できるようになります。

関連資料

Inside Macintosh: Macintosh Toolbox EssentialsFinder Interface の章の FindFolder セクション
Inside Macintosh: Macintosh Toolbox EssentialsFinder Interface の章の Using the System Folder and Its Related Directories セクション
Inside Macintosh: FilesFile Manager の章


先頭ページに戻る





Font Manager

Font Manager は、テキスト情報を表示するグリフを取得するためのシステム全体にわたるサービスを提供します。


  • フォントフォルダの使用可能なフォントスーツケースファイルの上限が 128 から 512 になりました。

  • Mac OS 8.6 の Font Manger は不正にフォーマットされた FOND リソースを作成して、それらをリソースファイルに追加していました。Mac OS 9 の Font Manger は今後このような問題が発生しないように修正されています。また、Mac OS 8.6 でも Font Manager Update 1.0 というアップデートを使用することができます。Font Manager Update 1.0 には、この問題を修正する機能拡張と、この問題によって破損したフォントを修正する Font First Aid というユーティリティが含まれています。

  • Font Manager には新しいフォント管理 API が追加されました。これは、フォントコレクションへのアクセスや変更を行うパブリック API で、フォント管理の基本的なタスクをサポートします。新しいフォント管理 API は次の機能を提供します。

    • フォントとフォントファミリを列挙する

    • 名前、文字エンコーディング、メンバフォントなどのフォントファミリに関する情報にアクセスする

    • テクノロジ、フォーマット、名前などのフォントに関する情報にアクセスする

    • フォントデータにアクセスする

    • 基本的なフォントメニューを作成して管理する

    • ォントをアクティブ化またはインアクティブ化する

    • フォントデータベースに加えられた変更をクライアントに通知する

関連資料

Mac OS 9 Font Management 技術文献(準備中)


先頭ページに戻る





Mac OS USB

Mac OS USB は Mac OS ROM ファイルに組み込まれていて、USB 内蔵の Macintosh システムで USB サポートを有効にします。v1.3 では次のような変更が加えられました。


  • ドライバがリクエストするタイムアウトのサポートが追加されました。

  • HID ドライバのサポートがインプリメントされ、Immersion ベースのフォースフィードバックジョイスティックに対応したベンダ固有のドライバをサポートできるようになりました。

  • USB Expert のサポートがインプリメントされ、USB デバイスからインターナショナル文字列を取得できるようになりました。

  • USB サスペンドおよびレジュームウェイクアップのサポートが提供されました。

  • “not enough power”ダイアログが表示されるときにデバイス名が表示されないというバグがフィックスされました。

  • USBExpertStatus 呼び出しがリエントラントになりました。その結果、一部のドライバ開発者から報告されていた“メッセージが失われる”という問題が解消されるはずです。

  • USB Class Driver による Expert Status レベルの取得と設定を可能にする新しい関数が追加されました。これにより、デベロッパはこれまで経験していたいくつかの特殊な問題を容易にデバッグでき、エラーログをいっぱいにしなくてもすむようになります。この機能は現在 USB Prober によってのみ使用されます。

  • kNotifySystemSleepRevoke メッセージのサポートが追加されました。

  • 仮想メモリ使用時の等時(isochronous)および割り込み転送ルーチンのパフォーマンスが向上しました。

  • isoch ディスクリプタが不足している場合に nil を参照しなくなる可能性があるという問題が解決されました。

  • USBGetVersion 呼び出しがインプリメントされ、現在の USB のバージョンを取得できるようになりました。この呼び出しは Gestalt 使用の代替手段として提供されているため、現在の USB のバージョンを取得するために InterfaceLib とのリンクを行う必要がなくなります。リスト 1 は、この呼び出しを使って、インストールされている USB のバージョンを決定する方法を具体的に示しています。この使用例では、プロジェクトの一部として USBServicesLib との弱いリンクを行います。呼び出しの結果は 4 バイトの 'vers' 応答となり、これは 'usbv' セレクタを含む Gestalt 呼び出しを使ったときの戻り値とまったく同じです。


    						
    #include <USB.h>  // USB.h v1.3 ヘッダファイルを
    						// インクルードしていることを確認
    						   
    UInt32 MyUSBGetVersion(void) {
       UInt32 version;
       if ((Ptr) USBGetVersion != (Ptr) kUnresolvedCFragSymbolAddress)
    		version = USBGetVersion();
       else
    		version = 0;    // USB のバージョンは 1.3 よりも前
       return version;
    }
    						

    リスト 1 インストールされている USB のバージョンの決定


  • Isochronous frStatus エラーコードが修正されました。USB 1.2(およびそれより前のバージョン)では、不正なエラーコードが返されていました。たとえば、DataOverRun エラーは Stall エラーとして現れ、DeviceNotResponding エラーは BitStuff エラーとしてレポートされていました。

  • ルートハブが過剰電流を検出したときに、過剰電流を通知する複数のダイアログを表示していた OHCIUIM に関連する問題が修正されました。

  • kNotifySystemSleepDemand メッセージが確実にドライバモジュールに送信されるようになりました。

  • Mouse ドライバが修正され、USB CardBus を実装した PowerBook で正常に動作するようになりました。

  • USB Audio Class デバイス(スピーカおよびマイク)と USB スピーカ上のジェネリックな HID デバイスに対するサポートがインプリメントされ、音量、消音、低音、および高音の調整が可能になりました。

  • USB Communication Class Abstract Control Model に準拠する USB Communication Class デバイスに対するサポートがインプリメントされました。

  • USB Manager の関数は USBPending を返すことがなくなりました。これらの関数は必ず noErr やその他のエラーコードを返します。

  • 次の変更が USB API にインプリメントされました。

     

    • USBOpenPipe 呼び出しはサポートされなくなります。今後は、USBConfigureInterface 呼び出しを使って、デバイスに対するアクティブインタフェースを設定してください。この呼び出しはインタフェース内のすべてのパイプをオープンします。また、USBFindNextPipe 呼び出しを使用すると、パイプを介してデータを渡すときに必要となるパイプ参照にアクセスすることができます。

    • USBOpenDevice 呼び出しは USBSetConfiguration に置き換えられました。今後は、デバイスリクエストの代わりに USBSetConfiguration を使って、set_configuration オペレーションを実行してください。USL は、set_configuration USBDeviceRequest が作成されるたびに、ステータスメッセージを USBProber ログに発行します。

関連資料

最新の USB DDK


先頭ページに戻る





Memory Manager

Memory Manager はオペレーティングシステムの一部で、メモリ割り当てリクエストの管理を担当します。


  • これまでは、サイズパラメータが 0xFFFFFFE1 から 0xFFFFFFFF の範囲の値であると、MemErrormemFullErr を返さず、NewHandle は NULL を返すことなくクラッシュしていました。この問題は修正され、パラメータ値がこのサイズの範囲であっても、NewHandle は NULL を返し、MemErrormemFullErr を返すようになりました。

  • Memory Manager フリーブロック内のメモリは、仮想メモリの ReleaseMemoryData 関数を使ってリリースされるようになりました。これにより、仮想メモリがページフォールトを処理する必要があるときに、ディスクアクセスの回数が大幅に少なくなります。ただしこのことは、処理後にポインタまたはハンドルデータを使用しようとするプログラム(プログラミングエラー)が意味のないデータを取得する可能性もあるということです。

関連資料

Virtual Memory Manager
テクニカルノート IM_ERRATA 02: Inside Macintosh - Memory Errata"
メモリに関連するテクニカルノート
メモリに関連するテクニカル Q&A
Inside Macintosh: MemoryMemory Manager の章


先頭ページに戻る





Mixed Mode Manager

Mixed Mode Manager は、68K エミュレーション実行環境と PowerPC 命令実行環境とを切り替えるためのサービスを提供します。


  • 初期化された後でメモリ内に移動された場合も、アクセラレイティッドコードリソースはクラッシュしなくなりました。

関連資料

テクニカルノート TN1077: Calling CFM Code From Classic 68K Code, or There and Back Again - A Mixed Mode Magic Adventure
Inside Macintosh: PowerPC System SoftwareMixed Mode Manager の章


先頭ページに戻る





Multitasking/Multiprocessing 2.1

Multitasking/Multiprocessing ライブラリにより、アプリケーションは複数のプロセッサを搭載した PowerPC コンピュータでプリエンプティブなマルチタスクオペレーションを実行できるようになります。また、このライブラリにより、ただ 1 つのプロセッサを搭載したマシンでもプリエンプティブなマルチタスクが可能になります。Multitasking/Multiprocessing ライブラリの今回のリリースには、いくつかの新機能が追加されています。


  • 非同期/同期の2つの関数を備えているパラメータブロック系の File Manager と Device Manager のリクエスト、またはこれらの関数を直接利用するその他の関数は MP タスク内から同期的に呼出すことができます。(PBMountVol のように、常に同期的に実行される File Manager と Device Manager の関数は MP タスクから呼出すことができません。)

  • MP タスクは WakeUpProcess を呼出すことができるようになりました。

  • MP タスクは DTInstall を呼出すことができるようになりました。

  • MultiProcessing ライブラリは Mac OS 9 のサポート機種すべてでロードされます。

  • 1GB を超える RAM がサポートされるようになりました。

関連資料

Multiprocessing SDK
Multiprocessing 技術文献


先頭ページに戻る





Navigation Services 2.0

Navigation Services は新しい“Open”、“Save”ダイアログを提供し、ユーザがファイルやその他のリソースを容易に検索して選択することを可能にします。Mac OS 9 では、Navigation Services 2.0 が System ファイルの中に組み込まれています。Navigation Services 2.0 には次の新機能が用意されています。


  • 新しい関数が追加され、プレビューリソースを書類にアタッチするプロセスが簡略化されました(NavCreatePreview

  • Carbon アプリケーションのパッケージに対するサポートが追加されました。クライアントが要求した場合、パッケージはユーザにファイルとして表示されます(kNavSupportPackages。)また、パッケージをフォルダとして表示し、ユーザがその内部をナビゲートすることを許可するオプションも用意されています(kNavAllowOpenPackages。)

  • カスタムコントロール領域の周囲に表示されるベベルフレームをオフにする新しいオプションが使用できるようになりました(kNavDontUseCustomFrame。)また、オープンされているファイルを“最近使った書類”メニューに追加しないようにするオプションも使用できるようになりました(kNavDontAddRecents。)

  • ユーザが現在の選択対象をオープンしたときに、新しいイベントセレクタがクライアントに通知されるようになりました(kNavCBOpenSelection。)

  • ファイルのフィルタ処理が緩和され、NavTypeList に含まれるコンポーネントシグネチャがワイルドカード値を持つことができるようになりました(kNavGenericSignature。)

  • いくつかの新しいカスタムコントロールセレクタが追加され、クライアントが特定のナビゲーション動作を自動化したり制限したりできるようになりました(kNavCtlBrowserSelectAll、kNavCtlGotoParent、kNavCtlSetActionState、kNavCtlBrowserRedraw、kNavCtlTerminate。)

     

関連資料

テクニカル Q&A TB38: ナビゲーション機能のバージョン
テクニカル Q&A TB40: ナビゲーション機能と memFullErr
Navigation Services SDK


先頭ページに戻る





Notification Manager

Notification Manager は、最前面のアプリケーションではないプログラムがユーザに特定のイベントを通知するためのメカニズムを提供します。


  • Notification Manager は、フローティングウインドウを使ってアラート通知を表示できるようになりました。これにより、Notification Manager のアラートが画面に表示されている間も、現在のアプリケーションのイベントループは実行を継続することが可能になります。古いスタイルの“モーダル”アラートのように“キャンセル”ボタンを使用しなくても、これらの新しい Notification Manager アラートは、ウインドウのクローズボックスをクリックして画面から消すことができます。ブロックを行わない新しい Notification Manager は、TN1026: The Notification Manager: Problems & Fixes で説明されている2つの問題を解決しました。
  • Notification Manager は、カスタムアラートサウンド(リクエストレコードの nmSound フィールドで指定される)を非同期的に再生できるようになりました。

  • Notification Manager は今後、ブート時の初期にポストされた通知リクエストを放棄しなくなります。

    互換性に関する注意
    一部のアプリケーションは、Notification Manager アラートによるイベントループのブロックに依存するように設計されており、アラート通知がポストされた後は、ユーザがアラートを画面から消すまでポスティングアプリケーションの実行は再開されないことを前提にしていました。しかし、このような前提は正しいものではありません。つまり、アラート通知が表示される前にポスティングアプリケーションをアクティブにできる小さなウインドウがこれまでも存在していました。Notification Manager の新しい非ブロッキング動作により、アラートを画面から消すことなく、ユーザがポスティングアプリケーションをアクティブにすることが非常に容易になりました。アプリケーションはこのような可能性を正しく認識する必要があり、ユーザが通知を画面から消してしまうまではリクエストレコードを再使用しないように注意する必要があります。また、アプリケーションがアクティブになるときは、NMRemove を使ったアラート通知を明示的にキャンセルする必要もあります。

    Notification Manager の以前のバージョンと同様、通知応答プロシージャはユーザがアラートを消すまで呼び出されません。リクエストレコードを再使用するアプリケーションでは、リクエストレコードをもはや使用されていないものとしてマーキングする応答プロシージャを常に提供する必要があります。これにより、アプリケーションはアラートが消される前にリクエストレコードを再使用できなくなります。


関連資料

Technical Q&A OPS22: ブート時に再初期化される Notification Manager
テクニカルノート PS505: Notification Manager Q&As
テクニカルノート TN1026: The Notification Manager: Problems & Fixes
Inside Macintosh:ProcessesNotification Manager の章


先頭ページに戻る






Process Manager

Process Manager は複数のアプリケーションにプロセッサを共有させます。


  • Apple イベントのパフォーマンスが低下する原因となっていた Mac OS 8.6 の問題が修正されました。

    互換性に関する注意
    システム内には、システムの起動から終了まで動作し続けることが保証されているプロセスは存在しません。その結果、コントロールパネル、システム機能拡張、およびアプリケーションでは、他のプロセスに属する A5 のようなステート変数値がすべての WaitNextEvent 呼び出しにわたって一定であるということを前提にしてはいけません。また、どのプロセスも、別のプロセスのヒープゾーン内に持続的なストレージを安全に割り当てて、すべての WaitNextEvent 呼び出しにわたってそれが持続的に保持されるということを無条件に仮定することはできません。自分自身のヒープゾーンの外部に持続的なストレージを要求するプロセスは、システムヒープゾーン内にメモリを割り当てることができます。


関連資料

テクニカルノート TN1070: バックグラウンド・アプリケーション
テクニカルノート PS510: Process Manager Q&As
プロセスに関連するテクニカル Q&A
Inside Macintosh:ProcessesProcess Manager の章


先頭ページに戻る





Power Manager 2.0

Power Manager は Macintosh の電力消費を制御します。


  • 新しい Power Manager は電力消費の制御を更に細かく設定できる API を備えています。

関連資料

テクニカルノート TN1190: Power Manager 2.0

先頭ページに戻る





PPC Toolbox

PPC(Program-to-Program Communications)Toolbox は、同じマシン上で実行されているプロセス、および AppleTalk ネットワークまたは TCP/IP ネットワークによって接続されている異なるコンピュータ上で実行されているプロセスを対象とするプロセス間通信機能を提供します。


  • PPC ブラウザウインドウに、TCP/IP を介して接続されているリモートマシン上のプロセスを選択する機能が追加されました。ユーザは、ドメイン名形式またはドット区切りの 10 進数形式のいずれかでアドレスを指定し、PPC ブラウザウインドウにターゲットとなるマシンを表示できるようになります。

    互換性に関する注意
    TCP/IP 接続を介した PPC ではゲストアクセスを使用できません。


  • 過剰なリストポート呼び出し(IPCListPorts)をキャンセルする新しいルーチンが追加されました。新しいルーチンである IPCKillListPorts はペンディングになっている IPCListPorts 呼び出しからパラメータブロックを取り出して、即座にその呼び出しをキャンセルします。

  • IP 接続を介した PPC でターゲットマシンを指定する URL は、ドメイン名またはドットで区切られた 10 進数のアドレスによって IP アドレスを指定できます。たとえば、次の URL はどちらも IP 接続を介した PPC にとって有効な URL です。

    eppc://mymac.mycompany.com

    eppc://127.76.94.105

    互換性に関する注意
    TCP/IP 経由の PCC はポート番号 3031 で PPC 接続を待ち受けます。待ち受け用ポート番号を変更することはできませんが、発信側のポート番号を変更することは可能です。

    この機能は複数のホストが一つの IP アドレスを共有している場合に便利です。例えば、ネットワークアドレス変換機能(NAT)を使ったシステムの場合、NAT の外では同じ IP アドレスでありながら、NAT 内で各ホストが異なる IP アドレスを持つ場合があります。このような場合は IP アドレスだけで NAT 内のホストを指定することができないので、ポート番号で指定する必要があります。各ポート番号からポート番号 3031 と特定の IP アドレスへの変換は NAT の責任となります。

    例えば、eppc://myhost.mycompany.com:1234 を入力することによって、ポート番号 1234 のホストを指定することができます。

  • PPC Toolbox はキーチェーンアクセスを利用して、安全な接続を自動的に行えるようになりました。これにより、バックグラウンドオンリーアプリケーションは安全な PPC Toolbox セッションを初期化し、Apple イベントを送信して認証を要求するマシン上で処理を行えるようになります。これまでは認証を行うためにユーザの操作が必要であったため、バックグラウンドオンリーアプリケーションが認証を必要とする安全な接続を確立することは不可能でした。Mac OS 9 では、PPC Toolbox ルーチンの StartSecureSession(Apple Event Manager によっても使用されます)がキーチェーンアクセスとともに動作するため、任意のプロセスがユーザによる何らかの操作なしに1つまたは複数の安全なセッションをオープンすることが可能になります。

    ターゲットマシンに対するエントリを含んだロックされていないキーチェーンが存在すると、ユーザによる何らかの操作なしに安全なセッションを確立することができます。そうではなく、ターゲットマシンに対するキーチェーンエントリが作成されていなかったり、エントリが存在してもそれを含むキーチェーンがロックされている場合は、ユーザによる操作エラーが発生したことを示すエラーが返されることになります。

関連資料

このテクニカルノートの Open Transport のセクションで説明されている TCP/IP スタックの状態変化を示すイベントの項


先頭ページに戻る





QuickDraw

QuickDraw は Mac OS の一部で、画面やその他のラスタデバイス上でグラフィカル情報の描画と表示を行うために使用されます。


  • サイズの大きなカーソルのサポートが追加されました。今後、デベロッパはこれまでの 16×16 ピクセルのカーソルよりも大きなカーソルを作成できるようになります。また、割り込みレベルで更新されるアニメーションカラーカーソルを作成することも可能になります。新しいカーソル機能により、スクリーンバッファ内部でのカーソルのレンダリングを許可するハードウェアアクセラレーションや、ハードウェアレンダリングとソフトウェアレンダリングの切り替えが可能になります。このような新機能を利用するには、カーソルプラグインコンポーネントを作成する必要があります。詳細については、カーソルプラグインコンポーネントの SDK(準備中)を参照してください。
  • 新しい 'add noise' および Color XOr 転送モードが追加されました。

  • ビデオカードまたは AGP(Accelerated Graphics Port)上のラスタデータにメモリを割り当てることを NewGWorld に指示するフラグが追加されました。

  • ユーザ定義の転送モードを追加する機能が使用できるようになりました。必要なオペレーションをインプリメントするコールバックプロシージャを提供することで、ユーザは新しい転送モードを指定できます。

  • ランドスケーププリンティングに使用するラスタイメージを拡大または縮小するときに発生する可能性のあった、1 列のピクセルが印刷イメージに現れなくなるという問題が解決されました。

  • LockPixels および SetCPixel ルーチンのパフォーマンスが向上しました。

  • すべての QuickDraw 構造体に適用できるいくつかのアクセッサルーチンが追加されました。

    互換性に関する注意
    ソースコードの将来にわたる互換性を保証するため、今後は QuickDraw 構造体に直接アクセスする代わりに、新しいパブリックアクセッサを使用するようにしてください。


関連資料

QuickDraw に関連するテクニカルノート
QuickDraw に関連するテクニカル Q&A
Inside Macintosh: Imaging with QuickDraw


先頭ページに戻る





Sound Manager

Sound Manager はデジタルサウンドの再生と録音を行うための機能を提供します。


  • 仮想メモリを“入”にしている一部の PowerBook のモデルでサウンドを再生するときにカチカチいう音が聞こえるという問題が解消されました。

  • Sound Manager は再インプリメントされました。新しいインプリメンテーションにより、パフォーマンスと安定性が向上しています。

  • 新しいインプリメンテーションでは、同時に複数のサウンド入力ソースをアクティブにすることはできません。

関連資料

テクニカルノート TN1048: Some Sound Advice: Getting the Most Out of the Sound Manager
テクニカルノート TN1124: New Sound Input Driver Features
テクニカルノート TN1108: よく知られていなかったサウンドの機能
Inside Macintosh: SoundSound Manager の章
Olson, K. Sound Secrets. Develop 24.


先頭ページに戻る





Standard File

Standard File は、“開く”および“保存”ダイアログボックスによってファイルにアクセスするための一貫したユーザインタフェースを提供します。


  • Standard File は変更されていません。Standard File は Mac OS 9 のパッケージ機能に対応していないので、Standard File を利用するアプリケーションデベロッパは注意が必要です。

    互換性に関する注意
    Mac OS 9 パッケージは Standard File ダイアログでは正しく表示されません。Standard File によって表示されるダイアログでは、Mac OS 9 パッケージの内部までナビゲートできてしまいます。Navigation Services はパッケージの表示を正しく処理します。他の Mac OS 9 アプリケーションと一致したユーザインタフェースの開発に関心のあるデベロッパは、従来の Standard File に対する呼び出しを Navigation Services に対する呼び出しに置き換える必要があります。


関連資料

Navigation Services
Inside Macintosh: FilesStandard File Package の章
Navigation Services SDK


先頭ページに戻る





StdCLib 3.5

StdCLib は、PowerPC ベースのすべての Mac OS 互換コンピュータ上の ROM 内に格納されている共有ライブラリで、C 言語を使ってコンパイルされたプログラムのための機能を提供します。StdCLib はすべての PowerPC モデル上に存在しますが、System 7.6 アップデートより前は、StdCLibInit というシステム機能拡張によって提供されていました。


  • Command-"."(ピリオド) による割り込みが発生するときにネイティブツールがクラッシュするというシグナル処理の問題が修正されました。

  • ベクトルデータの16 バイト境界にメモリを割り当てる新しいメモリ割り当てルーチン、プロセッサの AltiVec ステートを保存または復元する setjmp/longjmp バリアント、AltiVec データの読み書きに使用する新しい printf および scanf フォーマットサイズ指定子などの AltiVec に対するサポートが追加されました。ベクトルデータの 16 バイト境界に揃えられたメモリ割り当てをサポートするため、新しいエントリポイント vec_malloc、vec_calloc、vec_realloc、および vec_free が追加されました。

    互換性に関する注意
    Mac OS 9.0 に含まれている StdCLib 3.5 はベクターデータを printf 類の関数で処理する際にベクターデータのスタック上のアラインメントが正常に行われず、正しく出力されないことがあります。

  • 標準 C ライブラリの文字列関数が PowerPC に最適化されました。

  • ネイティブの 64 ビット long 整数(long long 整数)に対するサポートが追加されました。このデータ型は、printf、scanf、atoll、および strtoll の各ルーチンでサポートされます。

  • C ライブラリの malloc のインプリメンテーションが一新されました。これにより、パフォーマンスが向上し、1 回の呼び出しで 8 M を超えるメモリを割り当てられるようになりました。また、サブアロケーションブロックを Macintosh の Memory Manager に返すためのよりインテリジェントな方式が導入され、メモリが不足してくると、新しい malloc は空のサブアロケーションブロックを Macintosh の Memory Manager に返すようになります。

  • 新しく FSSpec I/O ルーチンが追加されました。これらのルーチンにより、Macintosh ファイル仕様レコードを標準 C ライブラリの I/O ルーチンと組み合わせて使用することが可能になります。これらの新しいルーチンは FSpio.h ヘッダファイルの中で定義されています。提供されるルーチンには、FSp_creat、FSp_access、FSp_fopen、FSp_freopen、FSp_fsetfileinfo、FSp_open、FSp_remove、FSp_rename、および FSp_unlink が含まれます。これらのルーチンは標準 C ライブラリに含まれる対応するルーチンと同じ機能を果たしますが、ファイルを識別する文字列ではなく FSpec ポインタを受けつける点のみが異なります。

  • <time.h> の関数が拡張またはバグフィックスされました。tm_isdst フィールドは、mktime および localtime で正しくセットされます。%p フォーマット指定子が strftime でサポートされるようになりました。localtime でのうるう年の計算が修正されました。gmtime 関数が完全にサポートされるようになりました。

  • fgets が Mac、DOS、および UNIX ファイルに対応した行の末尾を正しく認識するようになりました。

  • ファイルを識別するために C 形式のパス名を要求するすべての I/O 関数が 255 文字を超える名前を正しく処理できるようになりました。

  • memchrstrchr が 8 ビット文字を正しく処理できるようになりました。

  • strncat に含まれていた 2 つのバグがフィックスされました。第 1 のバグは n % 4 == 3 および n < strlen(s2) のときに発生し、最後の文字が切り捨てられていました。また、第 2 のバグは n % 4 == 0 および n <= strlen(s2) <= n + 3 のときに発生し、最後の 3 文字が切り捨てられていました

  • いくつかのルーチンの PLstr スイートが修正されました。特に、PLstrchr、PLstrrchr、および PLstrspn の各関数にはバグがあり、ターゲット文字列の長さを超える 1 文字をスキャンしたり(PLstrchr、PLstrrchr)、文字セット指定子を超える 1 文字をスキャンしたりしていました(PLstrspn。)これらのバグはフィックスされました。また、len(SRC) < n <= len(DST) のときに、デスティネーション文字列に誤った処理を加える PLstrncpy のバグもフィックスされました。

  • 余分な(意味のない)文字が出力される原因となっていた [S|U]Int64ToStr の off-by-one エラーが修正されました。

  • scanf の二重の丸めが修正されました。

  • getenv のパフォーマンスが向上しました。

関連資料

テクニカルノート TN1102: Mac OS 8.0StdCLib のセクション


先頭ページに戻る





Multilingual Text Editor 1.1

MultiLinual Text Editing(MLTE)は、Unicode テキストの書類を作成したり編集したりするための C 言語インタフェースを提供します。MLTE は多くの点で TextEdit に類似していますが、次のような独自の機能を多く持っています。


  • Unicode テキストを描画するためのエンジン(ATSUI)

  • 文書中へのオブジェクト(サウンド、絵、QuickTime ムービなど)の埋め込み

  • 書類全体に適応するタブ

  • テキストのフルジャスティフィケーション

  • サイズが 32 K を超えるテキスト

  • ドラッグ & ドロップ操作機能を標準で提供

  • スクロールバー処理機能を標準で提供

  • 印刷機能を標準で提供

  • インライン入力機能を標準で提供

  • 先進的な ATSUI フォント機能のサポート

  • 複数の“取り消し”をサポート

関連資料

MLTE 技術文献(準備中)


先頭ページに戻る





Thread Manager

Thread Manager はオペレーティングシステムの一部で、複数のアプリケーションプログラム内で使用するマルチプログラミングサービスを提供します。


  • GetDefaultThreadStackSize、GetSpecificFreeThreadCount、GetFreeThreadCount の各ルーチンはこれまで、PowerPC アプリケーションからプリエンプティブなスレッドタイプを使って呼び出されるときに noErr を返していました。これらのルーチンは、このような状況で本来のエラーコードを返すように修正されました。

  • Thread Manager の SetThreadReadyGivenTaskRef ルーチンは、停止しているスレッドへの参照を指定するときに正しく動作するようになりました。この修正は、Thread Manager の PowerPC バージョンに適用され、68K バージョンにはインプリメントされていません。Thread Manager のこれまでのバージョンで、このルーチンは停止しているスレッドへの参照を使って呼び出されるときに正しい動作を行っていませんでした。

関連資料

Thread Manager 2.1 SDK
Concurrent Programming With the Thread Manager. Develop 17.


先頭ページに戻る





Unicode Text Utilities 1.1

Unicode Text Utilities は Unicode テキストを対象に動作する API のセットを提供します。これらの API は、Unicode テキストのソートと照合、単語の切れ目の検出、文字プロパティの確立などに必要なサービスを提供します。


  • 新しい文字プロパティ API が追加されました。

  • Unicode テキストの境界または切れ目を検出する API が追加されました。

  • UCKeyTranslate ルーチンに関連するバグがフィックスされました。

関連資料

Unicode Utilities 技術文献


先頭ページに戻る





UTC Utilities

UTC(Coordinated Universal Time)Utilities はクロックチップにアクセスする機能と、日付をさまざまなフォーマットに変換する API を提供します。


  • 新しい 64 ビットルーチンが追加され、UTC およびローカルタイムフォーマットの両方でシステムのクロックにアクセスすることが可能になりました。GetDateTime の戻り値を新しいルーチンで使用できる値に変換するには、GetDateTime の戻り値を新しい time 構造体の low seconds 値の中にコピーしてやるだけです(他のフィールドは適切な値を使って初期化する必要があります。)

  • UTC(Coordinated Universal Time) とローカルタイムの間で変換を行うための機能が追加されました。ただし今回のリリースでは、これらのルーチンは 1904 年から 2108 年の範囲の日付を対象に動作します。

  • 新しいルーチンには小数点以下の秒数を計算する機能が用意されています。この小数点以下の値は 16 ビットの値として新しい time 構造体の中に格納され、seconds = value / 0xFFFF と解釈されます。

関連資料

テクニカルノート TN1049: もうすぐ2000年 -- Macintoshはどうなる?
テクニカル Q&A OPS01: System Clock
テクニカルノート TN1064: Inside Macintosh: Operating System Utilities: Addendum to Chapter 4 - Determining If Daylight Savings Time is in Effect
Inside Macintosh: Operating System UtilitiesDate, Time, and Measurement Utilities の章
Minow, M. Timing on the Macintosh. Develop 29.


先頭ページに戻る





Virtual Memory Manager

Virtual Memory Manager は Mac OS に仮想メモリサービスを提供します。Virtual Memory Manager には次の変更が加えられました。


  • 非 DMA ディスクドライバがページのデータにアクセスして、それをディスクに書き込むときにダーティページのクリーニングを行うと、“recently used”とマーキングされてしまうという問題が修正されました。

  • ボリュームの仮想メモリに関する情報を取得する GetVolumeVirtualMemoryInfo という新しい API はバッキングストレージのために使用します。この呼び出しは Carbon ではサポートされません。

  • 非常にまれに発生し、データの破損の原因となっていた Virtual Memory Manager のバグがフィックスされました。この問題は、非常に高速なストライプハードディスクアレイで、読み込み操作のストライプ境界がページの中央にある場合のみ発生していました。

関連資料

Memory Manager
テクニカルノート TN1094: Virtual Memory Application Compatibility
テクニカルノート TN1104: 割り込み時でも安全なルーチン
テクニカルノート IM_ERRATA 02, "Inside Macintosh - Memory Errata
テクニカル Q&A DV32: PrepareMemoryForIO と実行レベル
メモリに関連するテクニカルノート
メモリに関連するテクニカル Q&A
Inside Macintosh: MemoryVirtual Memory Manager の章
Minow, M. The New Device Drivers: Memory Matters. Develop 24.


先頭ページに戻る







コントロールパネル

コントロールパネル


コントロールパネルはシステムのカスタム設定に使用するユーザインタフェースを提供します。

古いスタイルのコントロールパネルファイル(ファイルタイプが 'cdev')は独立した Process Manager パーティションの中で起動されるようになりました。デフォルトの設定で、このパーティションのサイズは 200K ですが、ID = -16474 を含む 'SIZE' リソースによって、このパーティションのサイズをカスタマイズすることもできます。このような 'SIZE' リソースが存在すると、“最小サイズ”と“推奨サイズ”を使用できるようになります。

コントロールパネルファイルに 'CODE' ID = 0 リソース(68K アプリ)が含まれているか、コントロールパネルファイルが“application”タイプとしてマーキングされたフラグメントディスクリプタを含む 'cfrg' リソースを持っている場合、Process Manager はコントロールパネルファイルをアプリケーションとして起動することを選択します。これらの条件を満たすコントロールパネルはシステムによって呼び出される 'cdev' リソースを持ちません。

Finder のパーティション内で実行する必要のある一部のコントロールパネルとの互換性を維持するため、Command および Control キーを押しながらコントロールパネルアイコンをダブルクリックして、Finder レイヤ内でコントロールパネルをオープンすることができます。ただしこの機能は 'cdev' リソースを含むコントロールパネルファイルでのみ動作します。この機能は互換性を維持する目的だけで Mac OS 9 に残されているため、次のシステムリビジョンで削除される可能性があります。




アピアランス

アピアランス


“アピアランス”コントロールパネルは、グラフィカルユーザインタフェースの構成要素の外観を設定するためのユーザインタフェースを提供します。


  • “アピアランス”コントロールパネルをオープンするたびに、システムヒープの予約領域内で大量のメモリがリークするという問題が解消されました。

関連資料

テクニカル Q&A TB39: Appearance 機能拡張のバージョン
Inside Macintosh: Mac OS 8 Toolbox ReferenceAppearance Manager Reference の章
Inside Macintosh: Macintosh OS 8 Human Interface Guidelines
Appearance SDK

先頭ページに戻る





ColorSync

ColorSync 3.0


ColorSync は、パブリッシングソフトウェアが画面、プリンタ出力、および電子配信で繰り返し信頼性の高い、一貫したカラー表現を実現できるようにシステムレベルのカラー管理機能を提供します。


  • 新しいコントロールパネルはこれまでよりも多くの設定オプションを提供し、ColorSync プロファイル(システム特性)とさまざまな機能を組み合わせて使用することが可能になりました。

  • 設定に名前を付けられるようになり、ユーザはコントロールパネルの設定を保存または復元できるようになりました。

関連資料

ColorSync Manager Documentation Suite
Hayward, D. 著 Printing Hints: Syncing Up With Colorsync 2.0. Develop 23.
ColorSync Web ページ
ColorSync 3.0 SDK

先頭ページに戻る





日付 & 時刻

日付 & 時刻


“日付 & 時刻”コントロールパネルは、システムクロックをセットし、日付と時刻両方の表示形式を設定するためのユーザインタフェースを提供します。


  • デフォルトの設定で、日付は 2 桁ではなく 4 桁の年号を使って表示または入力されるようになりました。

関連資料

テクニカルノート TN1049: もうすぐ2000年 -- Macintoshはどうなる?
テクニカル Q&A OPS01: System Clock
テクニカルノート TN1064: Inside Macintosh: Operating System Utilities: Addendum to Chapter 4 - Determining If Daylight Savings Time is in Effect.
Inside Macintosh: Operating System UtilitiesDate, Time, and Measurement Utilities の章
Minow, M. 著 Timing on the Macintosh. Develop 29.

先頭ページに戻る





File Exchange

File Exchange 3.0.2


File Exchange は、ファイル名拡張子から Mac OS ファイルタイプへの自動的なマッピングを行うと同時に(たとえば、ファイル名拡張子の .TXT を Mac OS ファイルタイプの 'TEXT' にマップします)、Mac OS 以外のファイルシステムとして作成されたボリュームを Mac OS とともに使用するためのサービスを提供します。“File Exchange”コントロールパネルにより、ユーザはこの機能によって使用される設定を変更したり、新しいファイルマッピングを追加することができます。また、DOS の SCSI ディスクおよびドライブコンテナのマウントや、ファイル変換プリファレンスの設定を行うこともできます。


  • PC フォーマットの 120MB SuperDisk ディスクに対するより適切なサポートが提供されました。

  • File Exchange によってフォーマットされたボリュームに不正なボリュームサイズが割り当てられるという問題が修正されました。

  • File Exchange によってマウントされたボリュームの電源がオフになったときに、File Exchange は File Manager に通知を行うようになりました(ただし、下層にあるディスクドライバが File Manager のセクションで説明した新しい driverHardwareGoneErr エラーコードをサポートしている場合のみ。)

  • これまで、PC Exchange がオンになっているときに、PC フォーマットのボリュームを Mac OS フォーマットに再フォーマットしようとすると発生していた問題が修正されました。

  • 今後、DOS ディスクの名前を“”(空)に変更することは許可されなくなります。

  • “File Exchange”コントロールパネルの“すぐにマウント”ボタンをクリックしたときにボリュームをマウンドできないと、適切な追加情報やフィードバックが表示されるようになりました。

  • 新しい HDI ドライバ(バージョン 1.4.1)の機能をサポートできるようにアップデートされました。

関連資料

テクニカルノート PT515: Apple File Exchange Q&As

先頭ページに戻る





ファイル共有

ファイル共有