[スレッド全体]

2016/8/26 (金) 20:06:54 もか 返信 削除
Mozilla/5.0 (Windows NT 6.3; WOW64; rv:48.0) Gecko/20100101 Firefox/48.0
[2378] Re:クリップボード関数の謎引数
> nMode -1:バイナリモード
このモードは、ビットマップとかCF_LOCALE、他のエディタのクリップボード形式などを読み書きする時に使います。
これらの関数は、CF_TEXT/CF_UNICODETEXTでも読み書きが可能なように実装されていますが、主戦場は特殊用途です。
普通のテキストは、Get(Set)Clipboard関数を使ってください、という方針です。
サクラでは、一番使うのは矩形データの確認、登録です。

CygwinのときにCF_TEXTがUTF-8だったりします(最近は不明)。
Visual StudioのCF_TEXTもUTF-8になっているらしいです。
そういう場合には、コード指定が必要です。
参考:https://github.com/xyzzy-022/xyzzy/issues/73

また日本語環境でNEC/IBM拡張漢字を区別して扱う場合に必須です。
どういうことかというと、
1. テキストファイルにはNEC/IBM拡張漢字がある
2. サクラv2で読み込むとたぶんNECはUnicodeに変換されIBMは特殊なサロゲート断片になる
3. それをそのまま普通にコピーすると、相手のソフトでIBMがゴミとして貼り付く
4. SetClipboardByFormat(data, "CF_TEXT", 0, -1)で貼り付けると、クリップボードがIBMが元の符号位置に戻ったSJISデータになる
6. 相手に貼り付けると、無事IBM/NECが区別されるか、WindowsのCF_UNICODETEXTの自動変換で統合されて貼り付けられる
という風になっていて、データが変更されると困る用途に適しています。

[▼次のスレッド]
INCM/CMT
Cyclamen v3.81
[ut:0.010][st:0.000]