> 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の自動変換で統合されて貼り付けられる
という風になっていて、データが変更されると困る用途に適しています。