<Return[S]><Top>

SetWinMetaFileBits

Declare Function Api_SetWinMetaFileBits& Lib "gdi32" Alias "SetWinMetaFileBits" (ByVal cbBuffer&, lpbBuffer As Byte, ByVal hdcRef&, lpmfp As METAFILEPICT)

Declare Function SetWinMetaFileBits Lib "gdi32" Alias "SetWinMetaFileBits" (ByVal cbBuffer As Long, lpbBuffer As Byte, ByVal hdcRef As Long, lpmfp As METAFILEPICT) As Long

メタファイルを古い Windows 形式から新しい拡張形式に変換し、新しいメタファイルをメモリに格納する。

パラメータ
cbBuffer
    Windows 形式メタファイルが入ったバッファのサイズをバイト数で指定する。
lpbBuffer
    Windows 形式メタファイルのデータが入ったバッファへのポインタを指定する(このデータは、GetMetaFileBitsEx 関数または

    GetWinMetaFileBits 関数で取得したものと想定される)。
hdcRef
    基準デバイスコンテキストのハンドルを指定する。
lpmfp
    メタファイルピクチャの予定サイズとピクチャの作成時に使ったマッピングモードが入った METAFILEPICT 構造体へのポインタを指定する。

戻り値
    関数が成功すると、メモリ上に作成された拡張形式メタファイルのハンドルが返る。
    関数が失敗すると、NULL が返る。
    Windows NT/2000:拡張エラー情報を取得するには、GetLastError 関数を使う。

解説
    WIN32 API は、基準デバイスコンテキストの解像度のデータと METAFILEPICT 構造体のデータを使ってピクチャのスケールを変更する。

    hdcRef パラメータに NULL を指定すると、現在の出力デバイスの解像度が使われる。lpmfp パラメータに NULL を指定すると、 

    MM_ANISOTROPIC マッピングモードを使ってピクチャのスケールがデバイスの表面全体に合うように変更される。METAFILEPICT 構造

    体の hMF メンバは使われない。
    不要になった拡張形式メタファイルのハンドルは、DeleteEnhMetaFile 関数を使って削除する。
    この関数が返すハンドルは、ほかの拡張形式メタファイル関数で利用できる。
    メタファイルが作成されたデバイスと基準デバイスコンテキストが同じでない場合、デバイスを使う一部の GDI 関数は、ピクチャを正しく描画し

    ないことがある。