CreateEnhMetaFileW

CreateEnhMetaFile 関数は拡張形式メタファイル用のデバイスコンテキストを作成する。このデバイスコンテキストはデバイス独立な図を保存するために使用できる。(Unicode)

CreateEnhMetaFileW hdc, lpFilename, lprc, lpDesc

hdc : [intptr] 拡張メタファイル用のリファレンスデバイスへのハンドル。NULL を指定可能。詳細は備考を参照。
lpFilename : [wstr] 作成する拡張メタファイルのファイル名へのポインタ。NULL の場合、拡張メタファイルはメモリ上に置かれ、DeleteEnhMetaFile で削除されると内容が失われる。
lprc : [var] 拡張メタファイルに保存する図の寸法(0.01 ミリ単位)を指定する RECT 構造体へのポインタ。
lpDesc : [wstr] 図を作成したアプリケーションの名前と図のタイトルを指定する文字列へのポインタ。NULL を指定可能。詳細は備考を参照。

(プラグイン / モジュール : gdi32.dll)

解説

CreateEnhMetaFile
関数は拡張形式メタファイル用のデバイスコンテキストを作成する。このデバイスコンテキストはデバイス独立な図を保存するために使用できる。(Unicode)

[戻り値]
関数が成功した場合、戻り値は拡張メタファイル用のデバイスコンテキストへのハンドルとなる。関数が失敗した場合、戻り値は NULL となる。

[備考]
テキスト引数で Unicode 文字を使う必要がある場合は CreateEnhMetaFile をワイド文字関数として使う。テキスト引数で
Windows 文字セットの文字を使う必要がある場合はこの関数を ANSI 関数として使う。システムは hdcRef
パラメータで指定されたリファレンスデバイスを使用して、図が元々表示されていたデバイスの解像度と単位を記録する。hdcRef パラメータが
NULL の場合、現在のディスプレイデバイスをリファレンスとして使う。lpRect パラメータが指す RECT 構造体の left と
top メンバは、それぞれ right と bottom メンバより小さくなければならない。矩形の辺上の点も図に含まれる。lpRect が
NULL の場合、グラフィックスデバイスインターフェイス (GDI)
はアプリケーションが描画した図を囲む最小矩形の寸法を計算する。可能な場合は lpRect
パラメータを指定すべきである。lpDescription パラメータが指す文字列は、アプリケーション名と図名の間に null
文字を含み、2 つの null 文字で終わらなければならない。例:"XYZ Graphics Editor\0Bald
Eagle\0\0"(\0 は null 文字)。lpDescription が NULL
の場合、拡張メタファイルヘッダに対応するエントリは入らない。アプリケーションは、この関数で作成したデバイスコンテキストを使ってグラフィックス図を拡張メタファイルに保存する。このデバイスコンテキストを識別するハンドルは任意の
GDI 関数に渡せる。アプリケーションが図を拡張メタファイルに保存した後、PlayEnhMetaFile
を呼ぶことで任意の出力デバイス上に図を表示できる。図を表示する際、システムは lpRect
パラメータが指す矩形とリファレンスデバイスからの解像度データを使って図を配置・スケーリングする。この関数が返すデバイスコンテキストには、新しいデバイスコンテキストに関連付けられているのと同じデフォルト属性が含まれる。アプリケーションは
GetWinMetaFileBits を使って拡張メタファイルを古い Windows
メタファイル形式に変換しなければならない。拡張メタファイルのファイル名には .emf 拡張子を使うべきである。

情報

プラグイン / モジュールgdi32.dll
バージョン1.0
作成日2026/04/16
著作者IronHSP / CsWin32 bridge
URLhttps://github.com/inovia/IronHSP
備考Win32 API の gdi32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_gdi32_gen2.hs