diff --git a/reactos/apps/tests/Makefile b/reactos/apps/tests/Makefile index 8c9436745e5..e30b632cf22 100644 --- a/reactos/apps/tests/Makefile +++ b/reactos/apps/tests/Makefile @@ -15,7 +15,7 @@ mktime mstest multiwin mutex nptest patblt pipe primitives pteb regtest \ sectest sertest shaptest shm statst statst2 stretchblt suspend \ tcpsvr terminate txtscale thread thread_msg tokentest vmtest \ winhello winhello2 wm_erasebkgnd wm_paint eventpair threadwait \ -map_dup_inherit p_dup_handle apc2 +map_dup_inherit p_dup_handle apc2 enhmetafile TEST_MISC = diff --git a/reactos/apps/tests/enhmetafile/.cvsignore b/reactos/apps/tests/enhmetafile/.cvsignore new file mode 100644 index 00000000000..d63774a7353 --- /dev/null +++ b/reactos/apps/tests/enhmetafile/.cvsignore @@ -0,0 +1,6 @@ +*.o +*.d +*.exe +*.coff +*.sym +*.map diff --git a/reactos/apps/tests/enhmetafile/enhmetafile.c b/reactos/apps/tests/enhmetafile/enhmetafile.c new file mode 100644 index 00000000000..d59d3ec992f --- /dev/null +++ b/reactos/apps/tests/enhmetafile/enhmetafile.c @@ -0,0 +1,108 @@ +#include +#include +#include + +//HFONT tf; +HENHMETAFILE EnhMetafile; +LRESULT WINAPI MainWndProc(HWND, UINT, WPARAM, LPARAM); + +int WINAPI +WinMain(HINSTANCE hInstance, + HINSTANCE hPrevInstance, + LPSTR lpszCmdLine, + int nCmdShow) +{ + WNDCLASS wc; + MSG msg; + HWND hWnd; + + EnhMetafile = GetEnhMetaFile("test.emf"); + if(!EnhMetafile) + { + fprintf(stderr, "GetEnhMetaFile failed (last error 0x%lX)\n", + GetLastError()); + return(1); + } + + wc.lpszClassName = "EnhMetaFileClass"; + wc.lpfnWndProc = MainWndProc; + wc.style = CS_VREDRAW | CS_HREDRAW; + wc.hInstance = hInstance; + wc.hIcon = LoadIcon(NULL, (LPCTSTR)IDI_APPLICATION); + wc.hCursor = LoadCursor(NULL, (LPCTSTR)IDC_ARROW); + wc.hbrBackground = (HBRUSH)(COLOR_BTNFACE + 1); + wc.lpszMenuName = NULL; + wc.cbClsExtra = 0; + wc.cbWndExtra = 0; + if (RegisterClass(&wc) == 0) + { + DeleteEnhMetaFile(EnhMetafile); + fprintf(stderr, "RegisterClass failed (last error 0x%lX)\n", + GetLastError()); + return(1); + } + + hWnd = CreateWindow("EnhMetaFileClass", + "Enhanced Metafile test", + WS_OVERLAPPEDWINDOW, + 0, + 0, + 250, + 200, + NULL, + NULL, + hInstance, + NULL); + if (hWnd == NULL) + { + DeleteEnhMetaFile(EnhMetafile); + fprintf(stderr, "CreateWindow failed (last error 0x%lX)\n", + GetLastError()); + return(1); + } + + //tf = CreateFontA(14, 0, 0, TA_BASELINE, FW_NORMAL, FALSE, FALSE, FALSE, + // ANSI_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, + // DEFAULT_QUALITY, FIXED_PITCH|FF_DONTCARE, "Timmons"); + + ShowWindow(hWnd, nCmdShow); + + while(GetMessage(&msg, NULL, 0, 0)) + { + TranslateMessage(&msg); + DispatchMessage(&msg); + } + + DeleteEnhMetaFile(EnhMetafile); + + //DeleteObject(tf); + UnregisterClass("EnhMetaFileClass", hInstance); + + return msg.wParam; +} + +LRESULT CALLBACK MainWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) +{ + PAINTSTRUCT ps; + RECT rc; + HDC hDC; + + switch(msg) + { + + case WM_PAINT: + GetClientRect(hWnd, &rc); + hDC = BeginPaint(hWnd, &ps); + PlayEnhMetaFile(hDC, EnhMetafile, &rc); + EndPaint(hWnd, &ps); + break; + + case WM_DESTROY: + PostQuitMessage(0); + break; + + default: + return DefWindowProc(hWnd, msg, wParam, lParam); + } + return 0; +} diff --git a/reactos/apps/tests/enhmetafile/makefile b/reactos/apps/tests/enhmetafile/makefile new file mode 100644 index 00000000000..508694d8480 --- /dev/null +++ b/reactos/apps/tests/enhmetafile/makefile @@ -0,0 +1,23 @@ +# $Id: makefile,v 1.1 2003/11/15 14:05:30 weiden Exp $ + +PATH_TO_TOP = ../../.. + +TARGET_NORC = yes + +TARGET_TYPE = program + +TARGET_APPTYPE = windows + +TARGET_NAME = enhmetafile + +TARGET_SDKLIBS = kernel32.a gdi32.a + +TARGET_OBJECTS = $(TARGET_NAME).o + +TARGET_CFLAGS = -Wall -Werror + +include $(PATH_TO_TOP)/rules.mak + +include $(TOOLS_PATH)/helper.mk + +# EOF diff --git a/reactos/apps/tests/enhmetafile/test.emf b/reactos/apps/tests/enhmetafile/test.emf new file mode 100644 index 00000000000..d056e2070df Binary files /dev/null and b/reactos/apps/tests/enhmetafile/test.emf differ