Carbon API

なんですと!?

という感じだったのが、Cocoaから普通にCarbon APIを呼べちゃうこと。
リソースフォークをどうやって読み書きしようかずっと悩んでたが、なんのことはない、FSpOpenResFileすればよいだけだった。

こうなると、CocoaにするかCarbonにするか、ではなくて、CocoaはCarbonを含んでいるという言い方のほうが正しい。
Cocoa APIはMach-Oからしか使えないうえ、Objective-Cでしか呼び出せないという欠点があるが、クラシックなMacOSを使わんのであれば、もう圧倒的にCocoaがおすすめ。
Objective-Cはかなり良いし。 会社でもObjective-C使いたいくらい(Windowsなんでしょうがないが)。

とりあえず、ClipS Xが動くようになりつつある。ほんとにとりあえずだけど。

クリップボードはCocoaのNSPasteboardを使って扱う。CarbonのScrapManagerって使えるのか?調べようと思ったらdeveloper.apple.comは止まってた。

あと問題は、クリップボードにコピーされているテキストが、UnicodeなのかEUCなのかShiftJISなのか、事前に分からん点。
Mailはドラッグ&ドロップでクリッピングファイルが作れるので、それをDeRezして(リソースエディタはインストールされてないからな)解析。

今分かっているMailの作るフレーバータイプとその中身は以下の通り。

フレーバータイプ データ型
'TEXT' ShiftJISテキスト?
'styl' 従来のスタイル付きテキストのスタイル部分。このフォーマットはもともと最大32KByteまでしか扱えない。
'ustl' なんだ?フォント名が入っているところを見ると、なんか新しいスタイル型なのだろう。
'utxt' Unicodeテキスト。UCS2だな。
'RTF ' RTF。

ちなみに、MailでコピーしたテキストをそのままRawDataとして書き出してみたらEUCだった。なぜ?仮に変換するとしても、どういう前提で変換して良いものなのか。