Firefox のクリップボードアクセスは テキストではなかった
ツイッタークライアント mofooter でクリップボードのコピーを使用すると、Firefoxにアドレスがうまくコピーできないことがあります。
しかし、クリップボードビューア(clipbrd) を使うと、 UNICODE TEXT/ANSI TEXT/OEM Text の いずれも正常に転送できています。
試しに、Word Pad にコピーしてみると 全く別の文字列がコピーされることが判明しました。
これは、Firefoxで再現されてる文字列と同じでした。
つまり、RTF形式のデータがFirefox内でのコピー処理(アドレスバー含む)に使用されているということです。
対策1
コードにするとこんな感じかな?
WORD hRTF=RegisterClipboardFormat(“Rich Text Format”);
SetClipboardData(hRTF,hGlobal);
対策2
ちなみに、EmptyClipboard()を事前に実行していれば、
SetClipboardData(CF_UNICODETEXT,hGlobal)
を実行すると全ての属性のClipboardに転送してくれるようです。
ドキュメント:
EmptyClipboard 関数を呼び出さないと、OpenClipboard の hWndNewOwner パラメータで指定したウィンドウはクリップボードのオーナーになりません。
EmptyClipboard 関数は クリップボードを空にし、クリップボード内のデータのハンドルを解放します。


Comments