次の方法で共有


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

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

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

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

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

00000011 0000000C 00000004 

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

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