6 HENHMETAFILE EnhMetafile
;
8 LRESULT WINAPI
MainWndProc(HWND
, UINT
, WPARAM
, LPARAM
);
11 WinMain(HINSTANCE hInstance
,
12 HINSTANCE hPrevInstance
,
21 EnhMetafile
= GetEnhMetaFile("test.emf");
24 fprintf(stderr
, "GetEnhMetaFile failed (last error 0x%lX)\n",
28 GetEnhMetaFileHeader(EnhMetafile
, sizeof(ENHMETAHEADER
), &emh
);
29 EnhMetafileSize
.cx
= emh
.rclBounds
.right
- emh
.rclBounds
.left
;
30 EnhMetafileSize
.cy
= emh
.rclBounds
.bottom
- emh
.rclBounds
.top
;
32 wc
.lpszClassName
= "EnhMetaFileClass";
33 wc
.lpfnWndProc
= MainWndProc
;
34 wc
.style
= CS_VREDRAW
| CS_HREDRAW
;
35 wc
.hInstance
= hInstance
;
36 wc
.hIcon
= LoadIcon(NULL
, (LPCTSTR
)IDI_APPLICATION
);
37 wc
.hCursor
= LoadCursor(NULL
, (LPCTSTR
)IDC_ARROW
);
38 wc
.hbrBackground
= (HBRUSH
)(COLOR_BTNFACE
+ 1);
39 wc
.lpszMenuName
= NULL
;
42 if (RegisterClass(&wc
) == 0)
44 DeleteEnhMetaFile(EnhMetafile
);
45 fprintf(stderr
, "RegisterClass failed (last error 0x%lX)\n",
50 hWnd
= CreateWindow("EnhMetaFileClass",
51 "Enhanced Metafile test",
55 EnhMetafileSize
.cx
+ (2 * GetSystemMetrics(SM_CXSIZEFRAME
)) + 2,
56 EnhMetafileSize
.cy
+ (2 * GetSystemMetrics(SM_CYSIZEFRAME
)) + GetSystemMetrics(SM_CYCAPTION
) + 2,
63 DeleteEnhMetaFile(EnhMetafile
);
64 fprintf(stderr
, "CreateWindow failed (last error 0x%lX)\n",
69 //tf = CreateFontA(14, 0, 0, TA_BASELINE, FW_NORMAL, FALSE, FALSE, FALSE,
70 // ANSI_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS,
71 // DEFAULT_QUALITY, FIXED_PITCH|FF_DONTCARE, "Timmons");
73 ShowWindow(hWnd
, nCmdShow
);
75 while(GetMessage(&msg
, NULL
, 0, 0))
77 TranslateMessage(&msg
);
78 DispatchMessage(&msg
);
81 DeleteEnhMetaFile(EnhMetafile
);
84 UnregisterClass("EnhMetaFileClass", hInstance
);
89 LRESULT CALLBACK
MainWndProc(HWND hWnd
, UINT msg
, WPARAM wParam
, LPARAM lParam
)
101 GetClientRect(hWnd
, &rc
);
102 hDC
= BeginPaint(hWnd
, &ps
);
103 rc
.left
= (rc
.right
/ 2) - (EnhMetafileSize
.cx
/ 2);
104 rc
.top
= (rc
.bottom
/ 2) - (EnhMetafileSize
.cy
/ 2);
105 rc
.right
= rc
.left
+ EnhMetafileSize
.cx
;
106 rc
.bottom
= rc
.top
+ EnhMetafileSize
.cy
;
107 bk
= SetBkMode(hDC
, TRANSPARENT
);
108 Rectangle(hDC
, rc
.left
- 1, rc
.top
- 1, rc
.right
+ 1, rc
.bottom
+ 1);
110 PlayEnhMetaFile(hDC
, EnhMetafile
, &rc
);
120 return DefWindowProc(hWnd
, msg
, wParam
, lParam
);