\section{\module{ic} ---
インターネット設定へのアクセス}

\declaremodule{builtin}{ic}
  \platform{Mac}
\modulesynopsis{インターネット設定へのアクセス。}

このモジュールでは、\program{システム設定} や \program{Finder}
で設定したインターネット関連の設定へのアクセス機能を提供しています。

このモジュールには、\module{icglue}\refbimodindex{icglue} という
低水準の関連モジュールがあり、インターネット設定への基本的なアクセス
機能を提供しています。
この低水準のモジュールはドキュメント化されていませんが、各ルーチンの
docstring にはパラメタの説明があり、ルーチン名には Internet Config に
対する Pascal や \C{} のインタフェースと同じ名前を使っているので、
このモジュールが必要な場合には標準の IC プログラマドキュメントを利用
できます。

\module{ic}モジュールでは、例外\exception{error}と、インターネット設定
から生じる全てのエラーコードに対するシンボル名を定義しています。詳しくは
ソースコードを参照してください。

\begin{excdesc}{error}
\module{ic}モジュール内部でエラーが生じたときに送出される例外です。
\end{excdesc}

\module{ic}モジュールは以下のクラスと関数を定義しています：

\begin{classdesc}{IC}{\optional{signature\optional{, ic}}}
インターネット設定オブジェクトを作成します。\var{signature}は、
IC の設定に影響を及ぼす可能性のある現在のアプリケーションを表す
4文字のクリエータコード (デフォルトは\code{'Pyth'}) です。
オプションの引数\var{ic} は低水準モジュールであらかじめ作成しておいた
\code{icglue.icinstance}で、別の設定ファイルなどから設定を得る場合に
便利です。
\end{classdesc}

\begin{funcdesc}{launchurl}{url\optional{, hint}}
\funcline{parseurl}{data\optional{, start\optional{, end\optional{, hint}}}}
\funcline{mapfile}{file}
\funcline{maptypecreator}{type, creator\optional{, filename}}
\funcline{settypecreator}{file}
これらの関数は、後述する同名のメソッドへの「ショートカット」です。
\end{funcdesc}

\subsection{IC オブジェクト}

\class{IC}オブジェクトはマップ型のインターフェースを持っているので、
メールアドレスの取得は単に\code{\var{ic}['MailAddress']} でできます。
値の代入もでき、設定ファイルのオプションを変更できます。

このモジュールは各種のデータ型を知っていて、IC内部の表現を「論理的な」
Python データ構造に変換します。\module{ic} モジュールを単体で実行すると、
テストプログラムが実行されて ICデータベースにある全てのキーと値のペアを
リスト表示するので、文書代わりになります。

モジュールがデータの表現方法を推測できなかった場合、\member{data}
属性に生のデータが入った\code{ICOpaqueData} 型のインスタンスを返します。
この型のオブジェクトも代入に利用できます。

\class{IC}には辞書型のインターフェースの他にも以下のようなメソッドが
あります。

\begin{methoddesc}[IC]{launchurl}{url\optional{, hint}}
与えられたURLを解析し、適切なアプリケーションを起動してURLを渡します。省
略可能な\var{hint}は、\code{'mailto:'}などのスキーム名で、不完全なURLはこ
のスキームにあわせて補完します。\var{hint} を指定していない場合、
不完全なURLは無効になります。
\end{methoddesc}

\begin{methoddesc}[IC]{parseurl}{data\optional{, start\optional{, end\optional{, hint}}}}
\var{data} の中からURLを検索し、URLの開始位置、終了位置、URLそのものを
返します。オプションの引数\var{start}と\var{end} を使うと検索範囲を制限
できます。例えば、ユーザーが長いテキストフィールドをクリックした場合に、
このルーチンにテキストフィールド全体とクリック位置\var{start} を渡すことで、
ユーザーがクリックした場所にある URL 全体を返させられます。
先に述べたように、\var{hint}はオプションで、不完全なURLを補完するための
スキームです。
\end{methoddesc}

\begin{methoddesc}[IC]{mapfile}{file}
\var{file} に対するマッピングエントリを返します。\var{file} には
ファイル名か\function{FSSpec()} の戻り値を渡せます。実在
しないファイルであってもかまいません。

マッピングエントリは\code{(\var{version}, \var{type},
  \var{creator}, \var{postcreator}, \var{flags}, \var{extension},
  \var{appname}, \var{postappname}, \var{mimetype}, \var{entryname})}
からなるタプルで返されます。\var{version} はエントリーのバージョン番号、
\var{type} は4文字のファイルタイプ、\var{creator} は 4 文字の
クリエータタイプ、\var{postcreator} はファイルのダウンロード後に
オプションとして起動され、後処理を行うアプリケーションの 4 文字
のクリエータコードです。\var{flags} は、転送をバイナリで行うかアスキー
で行うか、などの様々なフラグビットからなる値です。
\var{extension}はこのファイルタイプに対するファイル名の拡張子、
\var{appname}はファイルが属するアプリケーションの印字可能な名前、
\var{postappname}は後処理用アプリケーション、
\var{mimetype}はこのファイルのMIMEタイプ、最後の\var{entryname}は
このエントリの名前です。
\end{methoddesc}

\begin{methoddesc}[IC]{maptypecreator}{type, creator\optional{, filename}}
4文字の\var{type}と\var{creator} コードを持つファイルに対するマッピン
グエントリを返します。(クリエータが \code{'????'} であるような場合に) 
正しいエントリが見つかりやすいようにオプションの\var{filename} を指定
できます。

マッピングエントリーは\var{mapfile}と同じフォーマットで返されます。
\end{methoddesc}

\begin{methoddesc}[IC]{settypecreator}{file}
実在のファイル\var{file} に対して、拡張子に基づいて適切なクリエータと
タイプを設定します。\var{file} の指定は、ファイル名でも
\function{FSSpec()} の戻り値でもかまいません。変更は Finder に
通知されるので、Finder 上のアイコンは即座に更新されます。
\end{methoddesc}
