<Return[G]><Top>

GetEnhMetaFilePaletteEntries

Declare Function Api_GetEnhMetaFilePaletteEntries& Lib "gdi32" Alias "GetEnhMetaFilePaletteEntries" (ByVal hemf&, ByVal cEntries&, lppe As PALETTEENTRY)

Declare Function GetEnhMetaFilePaletteEntries Lib "gdi32" Alias "GetEnhMetaFilePaletteEntries" (ByVal hemf As Long, ByVal cEntries As Long, lppe As PALETTEENTRY) As Long

指定された拡張メタファイルから、オプションのパレットエントリを取得する。

パラメータ
hemf
    [入力]拡張メタファイルのハンドルを指定する。
cEntries
    [入力]パレットから取得したいエントリの数を指定する。
lppe
    [出力]パレットの色を受け取る 構造体の配列へのポインタを指定する。配列は、少なくとも cEntries パラメータで指定した数の要素を備

    えていなければならない。

戻り値
    配列ポインタが NULL であり、拡張メタファイルがオプションのパレットを保持している場合は、パレットのエントリ数が返る。配列ポインタが

    有効なポインタであり、拡張メタファイルがオプションのパレットを保持している場合は、コピーされたエントリ数が返る。メタファイルがオプショ

    ンのパレットを保持していない場合は、0 が返る。それ以外の場合は、GDI_ERROR が返る。
    Windows NT/2000:拡張エラー情報を取得するには、 関数を使う。

解説
    アプリケーションは画像を作成してメタファイルに格納する前に、CreatePalette と SetPaletteEntries の各関数を呼び出して各メタファイル内

    にオプションのパレットを格納できる。この結果、さまざまな表示デバイスに画像を表示する場合も、色の一貫性を保つことができる。
    拡張メタファイルに格納されている画像を表示するときは、GetEnhMetaFilePaletteEntries 関数を呼び出して、オプションのパレットが存在

    するかどうかを調べる。パレットが存在する場合は、もう一度 GetEnhMetaFilePaletteEntries 関数を呼び出してパレットエントリを取得し、

    CreatePalette 関数を使って論理パレットを作成し、SelectPalette 関数を使って自らのデバイスコンテキストでそのパレットを選択し、

    RealizePalette 関数を使ってそのパレットを実体化する。論理パレットを実体化した後で PlayEnhMetaFile 関数を呼び出すと、元の色で画

    像が表示される。