次の方法で共有


拡張メタファイル レコード

拡張メタファイルは、レコードの配列です。 メタファイル・レコードは、ENHMETARECORD構造体可変長です。 すべての拡張メタファイル・レコードの先頭には、2 つのメンバーを含む EMR 構造があります。 最初のメンバー iType は、レコードに含まれるパラメーターを持つ GDI 関数であるレコード型を識別します。 構造体は長さが可変であるため、他のメンバー nSize にはレコードのサイズが含まれます。 NSize メンバーの直後には、GDI 関数の残りのパラメーター (存在する場合) があります。 構造体の残りの部分には、レコードの種類に依存する追加のデータが含まれています。

拡張メタファイルの最初のレコードは、常に拡張メタファイル ヘッダーである enHMETAHEADER構造体です。 ヘッダーは、次の情報を指定します。

  • メタファイルのサイズ (バイト単位)
  • 画像フレームの寸法 (デバイス単位)
  • 額縁の寸法 (.01 ミリメートル単位)
  • メタファイル内のレコードの数
  • 省略可能なテキストの説明へのオフセット
  • オプションのパレットのサイズ
  • 元のデバイスの解像度 (ピクセル単位)
  • 元のデバイスの解像度 (ミリメートル単位)

省略可能なテキストの説明は、ヘッダー レコードの後に記述できます。 テキストの説明には、画像と作成者の名前が記述されています。 オプションのパレットは、拡張メタファイルの作成に使用する色を指定します。 残りのレコードは、図の作成に使用される GDI 関数を識別します。 次の 16 進数の出力は、SetMapMode 関数の呼び出しに対して生成されたレコードに対応します。

00000011 0000000C 00000004 

0x00000011値は、レコードの種類を指定します (Wingdi.h ファイルで定義されているEMR_SETMAPMODE定数に対応します)。 0x0000000C値は、レコードの長さをバイト単位で指定します。 0x00000004値は、マッピング モードを識別します (SetMapMode 関数で定義されているMM_LOENGLISH定数に対応します)。

その他のレコードの種類の一覧については、「メタファイル構造 参照してください。