クリップボード: その他の形式の追加

このトピックでは、サポートされる形式、特に OLE サポートを拡充する方法について説明します。 「クリップボード : データのコピーと貼り付け」のトピックでは、クリップボードへのコピーとクリップボードからの貼り付けに必要な最小限の実装について説明しています。 それしか実装しなかった場合、クリップボードに格納される形式は CF_METAFILEPICTCF_EMBEDSOURCECF_OBJECTDESCRIPTOR のみです (場合によっては CF_LINKSOURCE も含む)。 この 3 つ以外の形式もクリップボードに格納する必要のあるアプリケーションがほとんどでしょう。

カスタム形式の登録

独自のカスタム形式を作成するには、カスタム クリップボード形式を登録するときと同じ手順に従います。つまり、形式の名前を RegisterClipboardFormat 関数に渡し、その戻り値を形式 ID として使用します。

クリップボードに形式を追加する

クリップボードに設定されている形式に、さらに形式を追加するには、(コピーの対象となるデータがネイティブであるかどうかに応じて) COleClientItem または COleServerItem から派生したクラスの OnGetClipboardData 関数をオーバーライドする必要があります。 この関数で、次の手順に従ってください。

クリップボードに形式を追加するには

  1. COleDataSource オブジェクトを作成します。

  2. COleDataSource::CacheGlobalData を呼び出して、サポートされる一連の形式に独自のネイティブ データ形式を追加する関数に対し、このデータ ソースを渡します。

  3. サポートしたい標準形式ごとに COleDataSource::CacheGlobalData を呼び出して標準の形式を追加します。

この手法は、MFC OLE サンプル プログラム HIERSVR で使用されています (CServerItem クラスの OnGetClipboardData メンバー関数を参照)。 このサンプルが唯一異なるのは、手順 3 が実装されていないことです。HIERSVR は他の標準形式をサポートしないためです。

さらに詳しい情報

関連項目

クリップボード: OLE クリップボード機構の使用方法