変換可能なクリップボード形式
Microsoft Windowsは、さまざまなクリップボード形式をネイティブでサポートしています。クリップボードの内容をコピーして貼り付ける際、Windowsはクリップボードデータを他の互換性のあるクリップボード形式に自動的に変換しようとします。これにより、コンテンツをさまざまなアプリケーションに簡単に貼り付けることができます。
データ形式がクリップボードに投稿されると、Windowsは、他のアプリケーションへの貼り付けが成功する可能性を高めるために、元々投稿された形式のいずれかから変換して取得できる追加の形式を自動的に追加します。
ターゲットアプリケーションが、ソースが直接提供できない形式を要求した場合、Windowsはクリップボードデータをある形式から別の形式に自動的に変換します。
たとえば、ワープロから書式設定されたテキストをコピーする場合、Windowsは、要求元のアプリケーションに対して、元の書式設定されたテキストだけでなく、プレーンテキストなどの他の形式も利用可能にします。
別の例として、クリップボードデータにCF_TEXTクリップボード形式のプレーンテキストデータが含まれており、データを貼り付けるアプリケーションがCF_UNICODETEXT形式のUnicodeテキストを要求した場合、Windowsは貼り付けプロセス中にクリップボードデータを自動的に変換します。
注:
一部の変換では、たとえばリッチテキストをプレーンテキストに自動変換する場合など、情報が失われる可能性があります。
| クリップボード形式 | 説明 |
|---|---|
| CF_TEXT | CF_TEXT |
| CF_OEMTEXT | |
| CF_UNICODETEXT | |
| CF_LOCALE | |
| CF_BITMAP | CF_BITMAP |
| CF_DIB | |
| CF_DIBV5 | |
| CF_METAFILEPICT | CF_METAFILEPICT |
| CF_ENHMETAFILE | |
| CF_OEMTEXT | CF_TEXT |
| CF_OEMTEXT | |
| CF_UNICODETEXT | |
| CF_LOCALE | |
| CF_DIB | CF_BITMAP |
| CF_DIB | |
| CF_DIBV5 | |
| CF_UNICODETEXT | CF_TEXT |
| CF_OEMTEXT | |
| CF_UNICODETEXT | |
| CF_LOCALE | |
| CF_ENHMETAFILE | CF_METAFILEPICT |
| CF_ENHMETAFILE | |
| CF_DIBV5 | CF_BITMAP |
| CF_DIB | |
| CF_DIBV5 |
注:
クリップボード形式の変換はWindows OSに依存しており、この表は将来のOSバージョンで変更される可能性があります。
Windowsのクリップボードシステムがすべての形式間で自由に変換するわけではないことを理解することが重要です。自動変換は、主に異なるテキストエンコーディング間やビットマップのバリエーション間など、いくつかの主要なタイプに限定されています。
他のほとんどの形式では、ソースアプリケーションが複数の形式を一度にクリップボードに配置することで互換性が確保されます。たとえば、Excelからグラフをコピーすると、データはOffice描画シェイプ (CFX_OfficeDrawingShape)、拡張メタファイル (CF_ENHMETAFILE)、および単純なビットマップ (CF_DIB) として配置される場合があります。これはクリップボードによる変換ではなく、異なる貼り付けシナリオのためにソースアプリケーションが複数の表現を提供しているものです。
クリップボード形式の制御と変換可能な形式
クリップボード形式制御ポリシーとセッション間クリップボード構成を設計する際には、変換可能な形式を考慮に入れる必要があります。たとえば、クライアントからクリップボードへのテキストベースのコンテンツのみを明示的に許可したい場合は、すべてのテキストベースの形式を「Session Clipboard Write Allowed Formats」ポリシーに追加する必要があります。この例では、以下の形式をポリシーに追加する必要があります。
CF_TEXT
CF_UNICODETEXT
CF_DSPTEXT
CF_LOCALE
CF_OEMTEXT
同様に、あるセッションから別のセッションにそのような種類のデータをコピーする際に、すべてのファイル形式をセッション間で転送したい場合は、すべてのファイルクリップボード形式をCrossSessionFormats構成に追加する必要があります。
CFX_FILES
CFX_HFDROP