クリップボード : その他のデータ形式の追加
更新 : 2007 年 11 月
サポートするデータ形式を追加する方法、特に OLE のサポートについて説明します。「クリップボード : データのコピーと貼り付け」では、クリップボードによるコピーと貼り付けをサポートするのに必要な、最低限の実装について説明しています。最低限必要な実装では、クリップボード用のデータ形式は、CF_METAFILEPICT、CF_EMBEDSOURCE、および CF_OBJECTDESCRIPTOR の 3 形式がサポートされます。場合によっては CF_LINKSOURCE もサポートされます。ほとんどのアプリケーションでは、この 3 形式以外にもクリップボード形式が必要になります。
独自の形式の登録
独自のデータ形式を作成する手順は、独自のクリップボード形式を登録するときと同じです。形式の名前を RegisterClipboardFormat 関数に渡し、その戻り値を形式の ID として使用します。
クリップボードに格納できる形式の追加
新しい形式をクリップボードに追加するには、COleClientItem クラスまたは COleServerItem クラス (データがネイティブな場合) のいずれかより派生させるクラスの、OnGetClipboardData 関数をオーバーライドします。この関数では、以下の処理を行います。
クリップボードに格納できる形式を追加するには
COleDataSource オブジェクトを作成します。
このデータ ソースを、COleDataSource::CacheGlobalData 関数を呼び出してネイティブ データ形式を追加する関数に渡します。
サポートする標準形式ごとに、COleDataSource::CacheGlobalData を呼び出して標準形式を追加します。
この方法は、MFC OLE のサンプル プログラム HIERSVR で使用されています。CServerItem クラスの OnGetClipboardData メンバ関数を確認してください。このサンプルでの唯一の違いは、HIERSVR ではほかの標準形式がサポートされないため、手順 3 が実装されないことです。