FORMATETC 構造体

FORMATETC 構造体は、一般化されたクリップボード形式であり、ターゲット デバイス、データの 側面 またはビュー、およびストレージ メディアを含むように拡張されています。 OLE コンテナー アプリケーションなどのデータ コンシューマーは、 IDataObject の呼び出しで FORMATETC 構造体を引数として渡し、複合ドキュメント オブジェクトなどのデータ ソースから必要なデータの種類を示します。 ソースは FORMATETC 構造体を使用して、提供できる形式を記述します。

FORMATETC では、モニカーなどの他のオブジェクトを含め、ほぼすべてのデータを記述できます。 コンテナーは、 IEnumFORMATETC インターフェイスを実装する列挙子オブジェクトを返す IDataObject::EnumFormatEtc を呼び出すことによって、埋め込みオブジェクトの 1 つにデータ形式の一覧表示を要求できます。 オブジェクトは、単に "テキストとビットマップ" を持つという応答ではなく、レンダリングされるデバイス (通常は画面またはプリンター)、ユーザーに表示される側面 (フル コンテンツ、サムネイル、アイコン、または印刷用の書式設定)、データを含むストレージ メディア (グローバル メモリ、 ディスク ファイル、ストレージ オブジェクト、またはストリーム)。 データを厳密に記述するこの機能により、プリンターと画面の出力が高品質になり、データ参照の効率が向上します。サムネイル スケッチは、完全に詳細なレンダリングよりも取得と表示がはるかに高速になります。

次の表に、 FORMATETC データ構造のフィールドと、それらが指定する情報を示します。

フィールド 指定内容
cfFormat
データをレンダリングする形式。標準のクリップボード形式、独自の形式、または OLE 形式を指定できます。 OLE 形式の詳細については、「複合ドキュメント」を参照してください。
ptd
CreateDC 関数を使用してデバイス コンテキスト (hDC) のハンドルを作成できるように、画面やプリンターなどの Windows ターゲット デバイスに関する十分な情報を含む DVTARGETDEVICE 構造体。
dwAspect
レンダリングするデータの側面またはビュー、完全なコンテンツ、サムネイル スケッチ、アイコン、または印刷用の書式設定を指定できます。
lindex
関心のある側面の部分。現在の場合、値は -1 である必要があります。これは、ビュー全体が対象であることを示します。
tymed
データのストレージ メディア。グローバル メモリ、ディスク ファイル、または COM の構造化ストレージ インターフェイスの 1 つのインスタンスを指定できます。

データ形式と転送メディア