HMETAFILE CopyMetaFile( HMETAFILE hWmf, LPCTSR FileName);
Declare Function CopyMetaFile Lib "gdi32" Alias "CopyMetaFileA" ( _ ByVal hWmf As Long, _ ByVal FileName As String) As Long
引数の意味は以下の通り。
| hWmf | 複製元のWindowsメタファイルのハンドル。 |
| FileName | 複製先のWindowsメタファイルのファイル名。NULLを指定した場合、メモリ上のWindowsメタファイルとして複製される。 |
戻り値は、複製結果のWindowsメタファイルのハンドルである。関数の実行に失敗した場合、NULLが返される。
' 拡張メタファイルをWindowsメタファイルに変換
Private Sub Command1_Click()
Dim hEnhMetaFile As Long '拡張メタファイルのハンドル
Dim hMemWinMetaFile As Long 'メモリ上のWindowsメタファイルのハンドル
Dim hFileWinMetaFile As Long 'ファイル上のWindowsメタファイルのハンドル
Dim Buf(10000) As Byte 'Windowsメタファイルデータの取得バッファ
Dim BufSize As Long 'Bufに格納されたデータのサイズ
'拡張メタファイルのオープン
hEnhMetaFile = GetEnhMetaFile("c:\pic\test.emf")
'Windowsメタファイル形式でデータを取得
BufSize = GetWinMetaFileBits(hEnhMetaFile, 10000, Buf(0), MM_TEXT, Me.hDC)
'Windowsメタファイルの作成
hMemWinMetaFile = SetMetaFileBitsEx(BufSize, Buf(0))
'ファイルに保存
hFileWinMetaFile = CopyMetaFile(hMemWinMetaFile, "c:\pic\test.wmf")
'メタファイルのクローズ
DeleteMetaFile hFileWinMetaFile
DeleteMetaFile hMemWinMetaFile
DeleteEnhMetaFile hEnhMetaFile
End Sub