キャプチャにマウスカーソルを含めたい。ドキュメントを眺めたが見つからないので Googleでしたいので調べてみた。以下、分かったこと。
(1) 「これだ!」といううまい方法は無い
(2) CGSGetGlobalCursorData( ) を使う ※プライベート関数
(3) QDGetCursorDataを使う ※10.4 でdeprecated
(4) 表示されているマウスカーソルとは無関係に、カーソル画像を用意してキャプチャ画像に合成する
(2)(3)が有力だが、片や非公開のプライベート関数、もう一方は 10.4で廃止扱いの関数ときて決定的な方法が見つからなかった。ちょっとユニークだったのが (4)の方法。これは標準のグラブ(Grab.app)が採用している。
情報源:
(2)(3)関連
Apple Mailing List (Carbon.dev) - Getting the system cursor (マウスカーソルのキャプチャ方法について)
http://lists.apple.com/archives/Carbon-dev/2008/Feb/msg00211.html
Apple Mailing List (Quartz-dev)- Going round the bend with CGImageRef 16x16 (CGDataProviderCreateWithDataの利用例)
http://lists.apple.com/archives/quartz-dev//2008/Apr/msg00023.html
Member "x11vnc-0.9.4/x11vnc/macosxCG.c" of archive x11vnc-0.9.4.tar.gz (CGSGetGlobalCursorDataの利用例)
http://www.sfr-fresh.com/unix/privat/x11vnc-0.9.4.tar.gz:a/x11vnc-0.9.4/x11vnc/macosxCG.c
Google グループ cocoa-dev-japan - 在のマウスカーソル画像の取得 オプション
http://groups.google.com/group/cocoa-dev-japan/browse_thread/thread/6596d9a1f4d4ef86
(4)関連
Macの手書き説明書 - スクリーンショットにマウスポインタを含める方法
http://veadardiary.blog29.fc2.com/blog-entry-1290.html
- - - -
とりあえずあちこちで使われている(?)プライベート関数 CGSGetGlobalCursorData() を試してみよう。