プログラミングメモ →目次

HTMLクリップボードのデータフォーマット(VC++)

HTML Clipboard Format

HTMLフォーマットの文字列をコピーペーストする時に、クリップボードにHTMLフォーマットのデータを入れなければ、タグ情報をコピー先に届けられません。

1.HTMLフォーマットを登録して、IDを取得します。CF_HTML = (CLIPFORMAT)::RegisterClipboardFormat(_T("HTML Format"))

2.データの詳細は、下記のようなテキストで、utf-8フォーマットが必要です。コピーしたいHTML文字列を<!--StartFragment --><!--EndFragment -->の間に入れます。nnnnは十進数表現でのオフセットです。StartHTMLnnnnは、8行目の一文字目のオフセットで、EndHTMLnnnnは一番最後キャラクターのオフセット+1です。

Version:1.0
StartHTML:nnnn
EndHTML:nnnn
StartFragment:nnnn
EndFragment:nnnn
StartSelection:nnnn
EndSelection:nnnn
<!DOCTYPE>
<HTML>
<HEAD>
<TITLE>The HTML Clipboard</TITLE>
</HEAD>
<BODY>
<UL>
<!--StartFragment -->
----------------------コピーするhtmlタグをここに入れる-------------------
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .... 
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .... 
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .... 
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .... 
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .... 
----------------------コピーするhtmlタグをここに入れる-------------------
<!--EndFragment -->
</UL>
</BODY>
</HTML>

3.例:<LI> The Fragment </LI>をクリップボードに入れるとします。

Version:1.0
StartHTML:71
EndHTML:170
StartFragment:140
EndFragment:160
StartSelection:140
EndSelection:160
<!DOCTYPE>
<HTML>
<HEAD>
<TITLE> The HTML Clipboard</TITLE>
<BASE HREF="http://sample/specs">
</HEAD>
<BODY>
<UL>
<!--StartFragment -->
<LI> The Fragment </LI>
<!--EndFragment -->
</UL>
</BODY>
</HTML>