GdiComment 拡張メタファイルにコメントを追加

Cの宣言:

BOOL GdiComment(
	HDC hDC,
	UINT ByteArraySize,
	CONST BYTE *ByteArray);

VBの宣言:

Declare Function GdiComment Lib "gdi32" ( _
	ByVal hDC As Long, _
	ByVal ByteArraySize As Long, _
	ByRef ByteArray As Byte) As Long

説明:

拡張メタファイルにコメントを追加する。

コメントには既定のものが存在する。既定のコメントは、先頭がシグネチャGDICOMMENT_IDENTIFIERで開始される。アプリケーション固有の情報を追加する場合、独自のシグネチャをデータの先頭に設定すること。

引数の意味は以下の通り。
hDC コメントの追加を行なう拡張メタファイルの拡張メタファイル用デバイスコンテキストのハンドル。
ByteArraySize ByteArrayのサイズ。
ByteArray 追加するコメント。

戻り値は、関数の実行に成功したか否かを表す真偽値である。

VBのサンプル:

拡張メタファイルを作成する際に、シグネチャが&H54534554である4バイトのプライベートデータを付与する。
Private Sub Command1_Click()

    Dim b(7) As Byte 'プライベートデータ
    Dim hDC As Long 'メタファイル用デバイスコンテキストのハンドル
    Dim hMetaFile As Long 'メタファイルのハンドル
    Dim r As RECT ' メタファイルの描画領域
   
    'シグネチャの初期化
    b(0) = &H54
    b(2) = &H45
    b(1) = &H53
    b(3) = &H54
    
    'データ本体の初期化
    b(4) = &H12
    b(5) = &H34
    b(6) = &H56
    b(7) = &H78
    
    'メタファイルの描画領域を設定
    r.Left = 0
    r.Top = 0
    r.Right = 10000
    r.Bottom = 10000
    
    'メタファイル用デバイスコンテキストを作成
    hDC = CreateEnhMetaFile(0, "c:\pic\test.emf", r, vbNullString)

    '円を描画
    SetMapMode hDC, MM_HIMETRIC
    Ellipse hDC, 0, 0, 10000, -10000
    
    'プライベートデータを追加
    GdiComment hDC, 8, b(0)
    
    'メタファイル用デバイスコンテキストのクローズ
    hMetaFile = CloseEnhMetaFile(hDC)
    
    'メタファイルのクローズ
    DeleteEnhMetaFile hMetaFile

End Sub

(original text:2000/01/27 更新)

本ドキュメントの内容は保証しません。本ドキュメントによって生じた結果について、一切の責任を負いません。