1 /* 2 * PROJECT: ReactOS api tests 3 * LICENSE: GPL - See COPYING in the top level directory 4 * PURPOSE: Test for GetGlyphOutline 5 * PROGRAMMERS: Katayama Hirofumi MZ <katayama.hirofumi.mz@gmail.com> 6 */ 7 8 #include "precomp.h" 9 10 typedef struct TEST_ENTRY 11 { 12 INT line; 13 LPCWSTR lfFaceName; 14 LONG lfHeight; 15 DWORD dwRet; 16 DWORD dwError; 17 WCHAR wch; 18 UINT uFormat; 19 BOOL bMetrics; 20 GLYPHMETRICS gm; 21 DWORD cbBuffer; 22 LPVOID lpvBuffer; 23 } TEST_ENTRY; 24 25 static const MAT2 s_mat = { {0,1}, {0,0}, {0,0}, {0,1} }; 26 27 static BYTE s_ab[512]; 28 29 #define WCH0 0 30 #define WCH1 0xFFFF 31 #define WCH2 L'A' 32 #define WCH3 L'T' 33 #define WCH4 L'g' 34 #define WCH5 L'.' 35 36 static const TEST_ENTRY s_entries[] = 37 { 38 { __LINE__, L"Tahoma", -12, GDI_ERROR, 0xDEADBEEF, WCH0, GGO_METRICS, FALSE, { 0 } }, 39 { __LINE__, L"Tahoma", -12, GDI_ERROR, 0xDEADBEEF, WCH1, GGO_METRICS, FALSE, { 0 } }, 40 { __LINE__, L"Tahoma", -12, GDI_ERROR, 0xDEADBEEF, WCH2, GGO_METRICS, FALSE, { 0 } }, 41 { __LINE__, L"Tahoma", -12, GDI_ERROR, 0xDEADBEEF, WCH3, GGO_METRICS, FALSE, { 0 } }, 42 { __LINE__, L"Tahoma", -12, GDI_ERROR, 0xDEADBEEF, WCH4, GGO_METRICS, FALSE, { 0 } }, 43 { __LINE__, L"Tahoma", -12, GDI_ERROR, 0xDEADBEEF, WCH5, GGO_METRICS, FALSE, { 0 } }, 44 { __LINE__, L"Tahoma", -12, GDI_ERROR, 0xDEADBEEF, WCH0, GGO_METRICS, FALSE, { 0 }, 1, s_ab }, 45 { __LINE__, L"Tahoma", -12, GDI_ERROR, 0xDEADBEEF, WCH1, GGO_METRICS, FALSE, { 0 }, 1, s_ab }, 46 { __LINE__, L"Tahoma", -12, GDI_ERROR, 0xDEADBEEF, WCH2, GGO_METRICS, FALSE, { 0 }, 1, s_ab }, 47 { __LINE__, L"Tahoma", -12, GDI_ERROR, 0xDEADBEEF, WCH3, GGO_METRICS, FALSE, { 0 }, 1, s_ab }, 48 { __LINE__, L"Tahoma", -12, GDI_ERROR, 0xDEADBEEF, WCH4, GGO_METRICS, FALSE, { 0 }, 1, s_ab }, 49 { __LINE__, L"Tahoma", -12, GDI_ERROR, 0xDEADBEEF, WCH5, GGO_METRICS, FALSE, { 0 }, 1, s_ab }, 50 { __LINE__, L"Tahoma", -12, GDI_ERROR, 0xDEADBEEF, WCH0, GGO_METRICS, FALSE, { 0 }, 512, s_ab }, 51 { __LINE__, L"Tahoma", -12, GDI_ERROR, 0xDEADBEEF, WCH1, GGO_METRICS, FALSE, { 0 }, 512, s_ab }, 52 { __LINE__, L"Tahoma", -12, GDI_ERROR, 0xDEADBEEF, WCH2, GGO_METRICS, FALSE, { 0 }, 512, s_ab }, 53 { __LINE__, L"Tahoma", -12, GDI_ERROR, 0xDEADBEEF, WCH3, GGO_METRICS, FALSE, { 0 }, 512, s_ab }, 54 { __LINE__, L"Tahoma", -12, GDI_ERROR, 0xDEADBEEF, WCH4, GGO_METRICS, FALSE, { 0 }, 512, s_ab }, 55 { __LINE__, L"Tahoma", -12, GDI_ERROR, 0xDEADBEEF, WCH5, GGO_METRICS, FALSE, { 0 }, 512, s_ab }, 56 { __LINE__, L"Tahoma", -12, GDI_ERROR, 0xDEADBEEF, WCH0, GGO_BITMAP, FALSE, { 0 }, }, 57 { __LINE__, L"Tahoma", -12, GDI_ERROR, 0xDEADBEEF, WCH1, GGO_BITMAP, FALSE, { 0 }, }, 58 { __LINE__, L"Tahoma", -12, GDI_ERROR, 0xDEADBEEF, WCH2, GGO_BITMAP, FALSE, { 0 }, }, 59 { __LINE__, L"Tahoma", -12, GDI_ERROR, 0xDEADBEEF, WCH3, GGO_BITMAP, FALSE, { 0 }, }, 60 { __LINE__, L"Tahoma", -12, GDI_ERROR, 0xDEADBEEF, WCH4, GGO_BITMAP, FALSE, { 0 }, }, 61 { __LINE__, L"Tahoma", -12, GDI_ERROR, 0xDEADBEEF, WCH5, GGO_BITMAP, FALSE, { 0 }, }, 62 { __LINE__, L"Tahoma", -12, GDI_ERROR, 0xDEADBEEF, WCH0, GGO_BITMAP, FALSE, { 0 }, 1, s_ab }, 63 { __LINE__, L"Tahoma", -12, GDI_ERROR, 0xDEADBEEF, WCH1, GGO_BITMAP, FALSE, { 0 }, 1, s_ab }, 64 { __LINE__, L"Tahoma", -12, GDI_ERROR, 0xDEADBEEF, WCH2, GGO_BITMAP, FALSE, { 0 }, 1, s_ab }, 65 { __LINE__, L"Tahoma", -12, GDI_ERROR, 0xDEADBEEF, WCH3, GGO_BITMAP, FALSE, { 0 }, 1, s_ab }, 66 { __LINE__, L"Tahoma", -12, GDI_ERROR, 0xDEADBEEF, WCH4, GGO_BITMAP, FALSE, { 0 }, 1, s_ab }, 67 { __LINE__, L"Tahoma", -12, GDI_ERROR, 0xDEADBEEF, WCH5, GGO_BITMAP, FALSE, { 0 }, 1, s_ab }, 68 { __LINE__, L"Tahoma", -12, GDI_ERROR, 0xDEADBEEF, WCH0, GGO_BITMAP, FALSE, { 0 }, 512, s_ab }, 69 { __LINE__, L"Tahoma", -12, GDI_ERROR, 0xDEADBEEF, WCH1, GGO_BITMAP, FALSE, { 0 }, 512, s_ab }, 70 { __LINE__, L"Tahoma", -12, GDI_ERROR, 0xDEADBEEF, WCH2, GGO_BITMAP, FALSE, { 0 }, 512, s_ab }, 71 { __LINE__, L"Tahoma", -12, GDI_ERROR, 0xDEADBEEF, WCH3, GGO_BITMAP, FALSE, { 0 }, 512, s_ab }, 72 { __LINE__, L"Tahoma", -12, GDI_ERROR, 0xDEADBEEF, WCH4, GGO_BITMAP, FALSE, { 0 }, 512, s_ab }, 73 { __LINE__, L"Tahoma", -12, GDI_ERROR, 0xDEADBEEF, WCH5, GGO_BITMAP, FALSE, { 0 }, 512, s_ab }, 74 75 { __LINE__, L"Tahoma", -14, GDI_ERROR, 0xDEADBEEF, WCH0, GGO_METRICS, FALSE, { 0 } }, 76 { __LINE__, L"Tahoma", -14, GDI_ERROR, 0xDEADBEEF, WCH1, GGO_METRICS, FALSE, { 0 } }, 77 { __LINE__, L"Tahoma", -14, GDI_ERROR, 0xDEADBEEF, WCH2, GGO_METRICS, FALSE, { 0 } }, 78 { __LINE__, L"Tahoma", -14, GDI_ERROR, 0xDEADBEEF, WCH3, GGO_METRICS, FALSE, { 0 } }, 79 { __LINE__, L"Tahoma", -14, GDI_ERROR, 0xDEADBEEF, WCH4, GGO_METRICS, FALSE, { 0 } }, 80 { __LINE__, L"Tahoma", -14, GDI_ERROR, 0xDEADBEEF, WCH5, GGO_METRICS, FALSE, { 0 } }, 81 { __LINE__, L"Tahoma", -14, GDI_ERROR, 0xDEADBEEF, WCH0, GGO_METRICS, FALSE, { 0 }, 1, s_ab }, 82 { __LINE__, L"Tahoma", -14, GDI_ERROR, 0xDEADBEEF, WCH1, GGO_METRICS, FALSE, { 0 }, 1, s_ab }, 83 { __LINE__, L"Tahoma", -14, GDI_ERROR, 0xDEADBEEF, WCH2, GGO_METRICS, FALSE, { 0 }, 1, s_ab }, 84 { __LINE__, L"Tahoma", -14, GDI_ERROR, 0xDEADBEEF, WCH3, GGO_METRICS, FALSE, { 0 }, 1, s_ab }, 85 { __LINE__, L"Tahoma", -14, GDI_ERROR, 0xDEADBEEF, WCH4, GGO_METRICS, FALSE, { 0 }, 1, s_ab }, 86 { __LINE__, L"Tahoma", -14, GDI_ERROR, 0xDEADBEEF, WCH5, GGO_METRICS, FALSE, { 0 }, 1, s_ab }, 87 { __LINE__, L"Tahoma", -14, GDI_ERROR, 0xDEADBEEF, WCH0, GGO_METRICS, FALSE, { 0 }, 512, s_ab }, 88 { __LINE__, L"Tahoma", -14, GDI_ERROR, 0xDEADBEEF, WCH1, GGO_METRICS, FALSE, { 0 }, 512, s_ab }, 89 { __LINE__, L"Tahoma", -14, GDI_ERROR, 0xDEADBEEF, WCH2, GGO_METRICS, FALSE, { 0 }, 512, s_ab }, 90 { __LINE__, L"Tahoma", -14, GDI_ERROR, 0xDEADBEEF, WCH3, GGO_METRICS, FALSE, { 0 }, 512, s_ab }, 91 { __LINE__, L"Tahoma", -14, GDI_ERROR, 0xDEADBEEF, WCH4, GGO_METRICS, FALSE, { 0 }, 512, s_ab }, 92 { __LINE__, L"Tahoma", -14, GDI_ERROR, 0xDEADBEEF, WCH5, GGO_METRICS, FALSE, { 0 }, 512, s_ab }, 93 { __LINE__, L"Tahoma", -14, GDI_ERROR, 0xDEADBEEF, WCH0, GGO_BITMAP, FALSE, { 0 }, }, 94 { __LINE__, L"Tahoma", -14, GDI_ERROR, 0xDEADBEEF, WCH1, GGO_BITMAP, FALSE, { 0 }, }, 95 { __LINE__, L"Tahoma", -14, GDI_ERROR, 0xDEADBEEF, WCH2, GGO_BITMAP, FALSE, { 0 }, }, 96 { __LINE__, L"Tahoma", -14, GDI_ERROR, 0xDEADBEEF, WCH3, GGO_BITMAP, FALSE, { 0 }, }, 97 { __LINE__, L"Tahoma", -14, GDI_ERROR, 0xDEADBEEF, WCH4, GGO_BITMAP, FALSE, { 0 }, }, 98 { __LINE__, L"Tahoma", -14, GDI_ERROR, 0xDEADBEEF, WCH5, GGO_BITMAP, FALSE, { 0 }, }, 99 { __LINE__, L"Tahoma", -14, GDI_ERROR, 0xDEADBEEF, WCH0, GGO_BITMAP, FALSE, { 0 }, 1, s_ab }, 100 { __LINE__, L"Tahoma", -14, GDI_ERROR, 0xDEADBEEF, WCH1, GGO_BITMAP, FALSE, { 0 }, 1, s_ab }, 101 { __LINE__, L"Tahoma", -14, GDI_ERROR, 0xDEADBEEF, WCH2, GGO_BITMAP, FALSE, { 0 }, 1, s_ab }, 102 { __LINE__, L"Tahoma", -14, GDI_ERROR, 0xDEADBEEF, WCH3, GGO_BITMAP, FALSE, { 0 }, 1, s_ab }, 103 { __LINE__, L"Tahoma", -14, GDI_ERROR, 0xDEADBEEF, WCH4, GGO_BITMAP, FALSE, { 0 }, 1, s_ab }, 104 { __LINE__, L"Tahoma", -14, GDI_ERROR, 0xDEADBEEF, WCH5, GGO_BITMAP, FALSE, { 0 }, 1, s_ab }, 105 { __LINE__, L"Tahoma", -14, GDI_ERROR, 0xDEADBEEF, WCH0, GGO_BITMAP, FALSE, { 0 }, 512, s_ab }, 106 { __LINE__, L"Tahoma", -14, GDI_ERROR, 0xDEADBEEF, WCH1, GGO_BITMAP, FALSE, { 0 }, 512, s_ab }, 107 { __LINE__, L"Tahoma", -14, GDI_ERROR, 0xDEADBEEF, WCH2, GGO_BITMAP, FALSE, { 0 }, 512, s_ab }, 108 { __LINE__, L"Tahoma", -14, GDI_ERROR, 0xDEADBEEF, WCH3, GGO_BITMAP, FALSE, { 0 }, 512, s_ab }, 109 { __LINE__, L"Tahoma", -14, GDI_ERROR, 0xDEADBEEF, WCH4, GGO_BITMAP, FALSE, { 0 }, 512, s_ab }, 110 { __LINE__, L"Tahoma", -14, GDI_ERROR, 0xDEADBEEF, WCH5, GGO_BITMAP, FALSE, { 0 }, 512, s_ab }, 111 112 { __LINE__, L"Tahoma", -12, 36, 0xDEADBEEF, WCH1, GGO_METRICS, TRUE, { 9, 9, { 2, 9 }, 12, 0 }, }, 113 { __LINE__, L"Tahoma", -12, 28, 0xDEADBEEF, WCH2, GGO_METRICS, TRUE, { 7, 9, { 0, 9 }, 8, 0 }, }, 114 { __LINE__, L"Tahoma", -12, 28, 0xDEADBEEF, WCH3, GGO_METRICS, TRUE, { 7, 9, { 0, 9 }, 8, 0 }, }, 115 { __LINE__, L"Tahoma", -12, 28, 0xDEADBEEF, WCH4, GGO_METRICS, TRUE, { 6, 9, { 0, 7 }, 7, 0 }, }, 116 { __LINE__, L"Tahoma", -12, 20, 0xDEADBEEF, WCH5, GGO_METRICS, TRUE, { 1, 2, { 1, 2 }, 4, 0 }, }, 117 { __LINE__, L"Tahoma", -12, 36, 0xDEADBEEF, WCH1, GGO_METRICS, TRUE, { 9, 9, { 2, 9 }, 12, 0 }, 1, s_ab }, 118 { __LINE__, L"Tahoma", -12, 28, 0xDEADBEEF, WCH2, GGO_METRICS, TRUE, { 7, 9, { 0, 9 }, 8, 0 }, 1, s_ab }, 119 { __LINE__, L"Tahoma", -12, 28, 0xDEADBEEF, WCH3, GGO_METRICS, TRUE, { 7, 9, { 0, 9 }, 8, 0 }, 1, s_ab }, 120 { __LINE__, L"Tahoma", -12, 28, 0xDEADBEEF, WCH4, GGO_METRICS, TRUE, { 6, 9, { 0, 7 }, 7, 0 }, 1, s_ab }, 121 { __LINE__, L"Tahoma", -12, 20, 0xDEADBEEF, WCH5, GGO_METRICS, TRUE, { 1, 2, { 1, 2 }, 4, 0 }, 1, s_ab }, 122 { __LINE__, L"Tahoma", -12, 36, 0xDEADBEEF, WCH1, GGO_METRICS, TRUE, { 9, 9, { 2, 9 }, 12, 0 }, 512, s_ab }, 123 { __LINE__, L"Tahoma", -12, 28, 0xDEADBEEF, WCH2, GGO_METRICS, TRUE, { 7, 9, { 0, 9 }, 8, 0 }, 512, s_ab }, 124 { __LINE__, L"Tahoma", -12, 28, 0xDEADBEEF, WCH3, GGO_METRICS, TRUE, { 7, 9, { 0, 9 }, 8, 0 }, 512, s_ab }, 125 { __LINE__, L"Tahoma", -12, 28, 0xDEADBEEF, WCH4, GGO_METRICS, TRUE, { 6, 9, { 0, 7 }, 7, 0 }, 512, s_ab }, 126 { __LINE__, L"Tahoma", -12, 20, 0xDEADBEEF, WCH5, GGO_METRICS, TRUE, { 1, 2, { 1, 2 }, 4, 0 }, 512, s_ab }, 127 { __LINE__, L"Tahoma", -12, 36, 0xDEADBEEF, WCH1, GGO_BITMAP, TRUE, { 9, 9, { 2, 9 }, 12, 0 }, }, 128 { __LINE__, L"Tahoma", -12, 36, 0xDEADBEEF, WCH2, GGO_BITMAP, TRUE, { 7, 9, { 0, 9 }, 8, 0 }, }, 129 { __LINE__, L"Tahoma", -12, 36, 0xDEADBEEF, WCH3, GGO_BITMAP, TRUE, { 7, 9, { 0, 9 }, 8, 0 }, }, 130 { __LINE__, L"Tahoma", -12, 36, 0xDEADBEEF, WCH4, GGO_BITMAP, TRUE, { 6, 9, { 0, 7 }, 7, 0 }, }, 131 { __LINE__, L"Tahoma", -12, 8, 0xDEADBEEF, WCH5, GGO_BITMAP, TRUE, { 1, 2, { 1, 2 }, 4, 0 }, }, 132 { __LINE__, L"Tahoma", -12, 36, 0xDEADBEEF, WCH1, GGO_BITMAP, TRUE, { 9, 9, { 2, 9 }, 12, 0 }, 512, s_ab }, 133 { __LINE__, L"Tahoma", -12, 36, 0xDEADBEEF, WCH2, GGO_BITMAP, TRUE, { 7, 9, { 0, 9 }, 8, 0 }, 512, s_ab }, 134 { __LINE__, L"Tahoma", -12, 36, 0xDEADBEEF, WCH3, GGO_BITMAP, TRUE, { 7, 9, { 0, 9 }, 8, 0 }, 512, s_ab }, 135 { __LINE__, L"Tahoma", -12, 36, 0xDEADBEEF, WCH4, GGO_BITMAP, TRUE, { 6, 9, { 0, 7 }, 7, 0 }, 512, s_ab }, 136 { __LINE__, L"Tahoma", -12, 8, 0xDEADBEEF, WCH5, GGO_BITMAP, TRUE, { 1, 2, { 1, 2 }, 4, 0 }, 512, s_ab }, 137 138 { __LINE__, L"Tahoma", -14, 40, 0xDEADBEEF, WCH1, GGO_METRICS, TRUE, { 11, 11, { 2, 11 }, 14, 0 }, }, 139 { __LINE__, L"Tahoma", -14, 28, 0xDEADBEEF, WCH2, GGO_METRICS, TRUE, { 7, 10, { 0, 10 }, 8, 0 }, }, 140 { __LINE__, L"Tahoma", -14, 36, 0xDEADBEEF, WCH3, GGO_METRICS, TRUE, { 9, 10, { -1, 10 }, 8, 0 }, }, 141 { __LINE__, L"Tahoma", -14, 28, 0xDEADBEEF, WCH4, GGO_METRICS, TRUE, { 7, 11, { 0, 8 }, 8, 0 }, }, 142 { __LINE__, L"Tahoma", -14, 20, 0xDEADBEEF, WCH5, GGO_METRICS, TRUE, { 1, 2, { 1, 2 }, 4, 0 }, }, 143 { __LINE__, L"Tahoma", -14, 40, 0xDEADBEEF, WCH1, GGO_METRICS, TRUE, { 11, 11, { 2, 11 }, 14, 0 }, 1, s_ab }, 144 { __LINE__, L"Tahoma", -14, 28, 0xDEADBEEF, WCH2, GGO_METRICS, TRUE, { 7, 10, { 0, 10 }, 8, 0 }, 1, s_ab }, 145 { __LINE__, L"Tahoma", -14, 36, 0xDEADBEEF, WCH3, GGO_METRICS, TRUE, { 9, 10, { -1, 10 }, 8, 0 }, 1, s_ab }, 146 { __LINE__, L"Tahoma", -14, 28, 0xDEADBEEF, WCH4, GGO_METRICS, TRUE, { 7, 11, { 0, 8 }, 8, 0 }, 1, s_ab }, 147 { __LINE__, L"Tahoma", -14, 20, 0xDEADBEEF, WCH5, GGO_METRICS, TRUE, { 1, 2, { 1, 2 }, 4, 0 }, 1, s_ab }, 148 { __LINE__, L"Tahoma", -14, 40, 0xDEADBEEF, WCH1, GGO_METRICS, TRUE, { 11, 11, { 2, 11 }, 14, 0 }, 512, s_ab }, 149 { __LINE__, L"Tahoma", -14, 28, 0xDEADBEEF, WCH2, GGO_METRICS, TRUE, { 7, 10, { 0, 10 }, 8, 0 }, 512, s_ab }, 150 { __LINE__, L"Tahoma", -14, 36, 0xDEADBEEF, WCH3, GGO_METRICS, TRUE, { 9, 10, { -1, 10 }, 8, 0 }, 512, s_ab }, 151 { __LINE__, L"Tahoma", -14, 28, 0xDEADBEEF, WCH4, GGO_METRICS, TRUE, { 7, 11, { 0, 8 }, 8, 0 }, 512, s_ab }, 152 { __LINE__, L"Tahoma", -14, 20, 0xDEADBEEF, WCH5, GGO_METRICS, TRUE, { 1, 2, { 1, 2 }, 4, 0 }, 512, s_ab }, 153 { __LINE__, L"Tahoma", -14, 44, 0xDEADBEEF, WCH1, GGO_BITMAP, TRUE, { 11, 11, { 2, 11 }, 14, 0 }, }, 154 { __LINE__, L"Tahoma", -14, 40, 0xDEADBEEF, WCH2, GGO_BITMAP, TRUE, { 7, 10, { 0, 10 }, 8, 0 }, }, 155 { __LINE__, L"Tahoma", -14, 40, 0xDEADBEEF, WCH3, GGO_BITMAP, TRUE, { 9, 10, { -1, 10 }, 8, 0 }, }, 156 { __LINE__, L"Tahoma", -14, 0x2C, 0xDEADBEEF, WCH4, GGO_BITMAP, TRUE, { 7, 11, { 0, 8 }, 8, 0 }, }, 157 { __LINE__, L"Tahoma", -14, 0x8, 0xDEADBEEF, WCH5, GGO_BITMAP, TRUE, { 1, 2, { 1, 2 }, 4, 0 }, }, 158 { __LINE__, L"Tahoma", -14, 44, 0xDEADBEEF, WCH1, GGO_BITMAP, TRUE, { 11, 11, { 2, 11 }, 14, 0 }, 512, s_ab }, 159 { __LINE__, L"Tahoma", -14, 40, 0xDEADBEEF, WCH2, GGO_BITMAP, TRUE, { 7, 10, { 0, 10 }, 8, 0 }, 512, s_ab }, 160 { __LINE__, L"Tahoma", -14, 40, 0xDEADBEEF, WCH3, GGO_BITMAP, TRUE, { 9, 10, { -1, 10 }, 8, 0 }, 512, s_ab }, 161 { __LINE__, L"Tahoma", -14, 0x2C, 0xDEADBEEF, WCH4, GGO_BITMAP, TRUE, { 7, 11, { 0, 8 }, 8, 0 }, 512, s_ab }, 162 { __LINE__, L"Tahoma", -14, 0x8, 0xDEADBEEF, WCH5, GGO_BITMAP, TRUE, { 1, 2, { 1, 2 }, 4, 0 }, 512, s_ab }, 163 164 { __LINE__, L"Marlett", -12, GDI_ERROR, 0xDEADBEEF, WCH0, GGO_METRICS, FALSE, { 0 }, }, 165 { __LINE__, L"Marlett", -12, GDI_ERROR, 0xDEADBEEF, WCH1, GGO_METRICS, FALSE, { 0 }, }, 166 { __LINE__, L"Marlett", -12, GDI_ERROR, 0xDEADBEEF, WCH2, GGO_METRICS, FALSE, { 0 }, }, 167 { __LINE__, L"Marlett", -12, GDI_ERROR, 0xDEADBEEF, WCH3, GGO_METRICS, FALSE, { 0 }, }, 168 { __LINE__, L"Marlett", -12, GDI_ERROR, 0xDEADBEEF, WCH4, GGO_METRICS, FALSE, { 0 }, }, 169 { __LINE__, L"Marlett", -12, GDI_ERROR, 0xDEADBEEF, WCH5, GGO_METRICS, FALSE, { 0 }, }, 170 { __LINE__, L"Marlett", -12, GDI_ERROR, 0xDEADBEEF, WCH0, GGO_METRICS, FALSE, { 0 }, 1, s_ab }, 171 { __LINE__, L"Marlett", -12, GDI_ERROR, 0xDEADBEEF, WCH1, GGO_METRICS, FALSE, { 0 }, 1, s_ab }, 172 { __LINE__, L"Marlett", -12, GDI_ERROR, 0xDEADBEEF, WCH2, GGO_METRICS, FALSE, { 0 }, 1, s_ab }, 173 { __LINE__, L"Marlett", -12, GDI_ERROR, 0xDEADBEEF, WCH3, GGO_METRICS, FALSE, { 0 }, 1, s_ab }, 174 { __LINE__, L"Marlett", -12, GDI_ERROR, 0xDEADBEEF, WCH4, GGO_METRICS, FALSE, { 0 }, 1, s_ab }, 175 { __LINE__, L"Marlett", -12, GDI_ERROR, 0xDEADBEEF, WCH5, GGO_METRICS, FALSE, { 0 }, 1, s_ab }, 176 { __LINE__, L"Marlett", -12, GDI_ERROR, 0xDEADBEEF, WCH0, GGO_METRICS, FALSE, { 0 }, 512, s_ab }, 177 { __LINE__, L"Marlett", -12, GDI_ERROR, 0xDEADBEEF, WCH1, GGO_METRICS, FALSE, { 0 }, 512, s_ab }, 178 { __LINE__, L"Marlett", -12, GDI_ERROR, 0xDEADBEEF, WCH2, GGO_METRICS, FALSE, { 0 }, 512, s_ab }, 179 { __LINE__, L"Marlett", -12, GDI_ERROR, 0xDEADBEEF, WCH3, GGO_METRICS, FALSE, { 0 }, 512, s_ab }, 180 { __LINE__, L"Marlett", -12, GDI_ERROR, 0xDEADBEEF, WCH4, GGO_METRICS, FALSE, { 0 }, 512, s_ab }, 181 { __LINE__, L"Marlett", -12, GDI_ERROR, 0xDEADBEEF, WCH5, GGO_METRICS, FALSE, { 0 }, 512, s_ab }, 182 { __LINE__, L"Marlett", -12, GDI_ERROR, 0xDEADBEEF, WCH0, GGO_BITMAP, FALSE, { 0 }, }, 183 { __LINE__, L"Marlett", -12, GDI_ERROR, 0xDEADBEEF, WCH1, GGO_BITMAP, FALSE, { 0 }, }, 184 { __LINE__, L"Marlett", -12, GDI_ERROR, 0xDEADBEEF, WCH2, GGO_BITMAP, FALSE, { 0 }, }, 185 { __LINE__, L"Marlett", -12, GDI_ERROR, 0xDEADBEEF, WCH3, GGO_BITMAP, FALSE, { 0 }, }, 186 { __LINE__, L"Marlett", -12, GDI_ERROR, 0xDEADBEEF, WCH4, GGO_BITMAP, FALSE, { 0 }, }, 187 { __LINE__, L"Marlett", -12, GDI_ERROR, 0xDEADBEEF, WCH5, GGO_BITMAP, FALSE, { 0 }, }, 188 { __LINE__, L"Marlett", -12, GDI_ERROR, 0xDEADBEEF, WCH0, GGO_BITMAP, FALSE, { 0 }, 1, s_ab }, 189 { __LINE__, L"Marlett", -12, GDI_ERROR, 0xDEADBEEF, WCH1, GGO_BITMAP, FALSE, { 0 }, 1, s_ab }, 190 { __LINE__, L"Marlett", -12, GDI_ERROR, 0xDEADBEEF, WCH2, GGO_BITMAP, FALSE, { 0 }, 1, s_ab }, 191 { __LINE__, L"Marlett", -12, GDI_ERROR, 0xDEADBEEF, WCH3, GGO_BITMAP, FALSE, { 0 }, 1, s_ab }, 192 { __LINE__, L"Marlett", -12, GDI_ERROR, 0xDEADBEEF, WCH4, GGO_BITMAP, FALSE, { 0 }, 1, s_ab }, 193 { __LINE__, L"Marlett", -12, GDI_ERROR, 0xDEADBEEF, WCH5, GGO_BITMAP, FALSE, { 0 }, 1, s_ab }, 194 { __LINE__, L"Marlett", -12, GDI_ERROR, 0xDEADBEEF, WCH0, GGO_BITMAP, FALSE, { 0 }, 512, s_ab }, 195 { __LINE__, L"Marlett", -12, GDI_ERROR, 0xDEADBEEF, WCH1, GGO_BITMAP, FALSE, { 0 }, 512, s_ab }, 196 { __LINE__, L"Marlett", -12, GDI_ERROR, 0xDEADBEEF, WCH2, GGO_BITMAP, FALSE, { 0 }, 512, s_ab }, 197 { __LINE__, L"Marlett", -12, GDI_ERROR, 0xDEADBEEF, WCH3, GGO_BITMAP, FALSE, { 0 }, 512, s_ab }, 198 { __LINE__, L"Marlett", -12, GDI_ERROR, 0xDEADBEEF, WCH4, GGO_BITMAP, FALSE, { 0 }, 512, s_ab }, 199 { __LINE__, L"Marlett", -12, GDI_ERROR, 0xDEADBEEF, WCH5, GGO_BITMAP, FALSE, { 0 }, 512, s_ab }, 200 201 { __LINE__, L"Marlett", -14, GDI_ERROR, 0xDEADBEEF, WCH0, GGO_METRICS, FALSE, { 0 }, }, 202 { __LINE__, L"Marlett", -14, GDI_ERROR, 0xDEADBEEF, WCH1, GGO_METRICS, FALSE, { 0 }, }, 203 { __LINE__, L"Marlett", -14, GDI_ERROR, 0xDEADBEEF, WCH2, GGO_METRICS, FALSE, { 0 }, }, 204 { __LINE__, L"Marlett", -14, GDI_ERROR, 0xDEADBEEF, WCH3, GGO_METRICS, FALSE, { 0 }, }, 205 { __LINE__, L"Marlett", -14, GDI_ERROR, 0xDEADBEEF, WCH4, GGO_METRICS, FALSE, { 0 }, }, 206 { __LINE__, L"Marlett", -14, GDI_ERROR, 0xDEADBEEF, WCH5, GGO_METRICS, FALSE, { 0 }, }, 207 { __LINE__, L"Marlett", -14, GDI_ERROR, 0xDEADBEEF, WCH0, GGO_METRICS, FALSE, { 0 }, 1, s_ab }, 208 { __LINE__, L"Marlett", -14, GDI_ERROR, 0xDEADBEEF, WCH1, GGO_METRICS, FALSE, { 0 }, 1, s_ab }, 209 { __LINE__, L"Marlett", -14, GDI_ERROR, 0xDEADBEEF, WCH2, GGO_METRICS, FALSE, { 0 }, 1, s_ab }, 210 { __LINE__, L"Marlett", -14, GDI_ERROR, 0xDEADBEEF, WCH3, GGO_METRICS, FALSE, { 0 }, 1, s_ab }, 211 { __LINE__, L"Marlett", -14, GDI_ERROR, 0xDEADBEEF, WCH4, GGO_METRICS, FALSE, { 0 }, 1, s_ab }, 212 { __LINE__, L"Marlett", -14, GDI_ERROR, 0xDEADBEEF, WCH5, GGO_METRICS, FALSE, { 0 }, 1, s_ab }, 213 { __LINE__, L"Marlett", -14, GDI_ERROR, 0xDEADBEEF, WCH0, GGO_METRICS, FALSE, { 0 }, 512, s_ab }, 214 { __LINE__, L"Marlett", -14, GDI_ERROR, 0xDEADBEEF, WCH1, GGO_METRICS, FALSE, { 0 }, 512, s_ab }, 215 { __LINE__, L"Marlett", -14, GDI_ERROR, 0xDEADBEEF, WCH2, GGO_METRICS, FALSE, { 0 }, 512, s_ab }, 216 { __LINE__, L"Marlett", -14, GDI_ERROR, 0xDEADBEEF, WCH3, GGO_METRICS, FALSE, { 0 }, 512, s_ab }, 217 { __LINE__, L"Marlett", -14, GDI_ERROR, 0xDEADBEEF, WCH4, GGO_METRICS, FALSE, { 0 }, 512, s_ab }, 218 { __LINE__, L"Marlett", -14, GDI_ERROR, 0xDEADBEEF, WCH5, GGO_METRICS, FALSE, { 0 }, 512, s_ab }, 219 { __LINE__, L"Marlett", -14, GDI_ERROR, 0xDEADBEEF, WCH0, GGO_BITMAP, FALSE, { 0 }, }, 220 { __LINE__, L"Marlett", -14, GDI_ERROR, 0xDEADBEEF, WCH1, GGO_BITMAP, FALSE, { 0 }, }, 221 { __LINE__, L"Marlett", -14, GDI_ERROR, 0xDEADBEEF, WCH2, GGO_BITMAP, FALSE, { 0 }, }, 222 { __LINE__, L"Marlett", -14, GDI_ERROR, 0xDEADBEEF, WCH3, GGO_BITMAP, FALSE, { 0 }, }, 223 { __LINE__, L"Marlett", -14, GDI_ERROR, 0xDEADBEEF, WCH4, GGO_BITMAP, FALSE, { 0 }, }, 224 { __LINE__, L"Marlett", -14, GDI_ERROR, 0xDEADBEEF, WCH5, GGO_BITMAP, FALSE, { 0 }, }, 225 { __LINE__, L"Marlett", -14, GDI_ERROR, 0xDEADBEEF, WCH0, GGO_BITMAP, FALSE, { 0 }, 1, s_ab }, 226 { __LINE__, L"Marlett", -14, GDI_ERROR, 0xDEADBEEF, WCH1, GGO_BITMAP, FALSE, { 0 }, 1, s_ab }, 227 { __LINE__, L"Marlett", -14, GDI_ERROR, 0xDEADBEEF, WCH2, GGO_BITMAP, FALSE, { 0 }, 1, s_ab }, 228 { __LINE__, L"Marlett", -14, GDI_ERROR, 0xDEADBEEF, WCH3, GGO_BITMAP, FALSE, { 0 }, 1, s_ab }, 229 { __LINE__, L"Marlett", -14, GDI_ERROR, 0xDEADBEEF, WCH4, GGO_BITMAP, FALSE, { 0 }, 1, s_ab }, 230 { __LINE__, L"Marlett", -14, GDI_ERROR, 0xDEADBEEF, WCH5, GGO_BITMAP, FALSE, { 0 }, 1, s_ab }, 231 { __LINE__, L"Marlett", -14, GDI_ERROR, 0xDEADBEEF, WCH0, GGO_BITMAP, FALSE, { 0 }, 512, s_ab }, 232 { __LINE__, L"Marlett", -14, GDI_ERROR, 0xDEADBEEF, WCH1, GGO_BITMAP, FALSE, { 0 }, 512, s_ab }, 233 { __LINE__, L"Marlett", -14, GDI_ERROR, 0xDEADBEEF, WCH2, GGO_BITMAP, FALSE, { 0 }, 512, s_ab }, 234 { __LINE__, L"Marlett", -14, GDI_ERROR, 0xDEADBEEF, WCH3, GGO_BITMAP, FALSE, { 0 }, 512, s_ab }, 235 { __LINE__, L"Marlett", -14, GDI_ERROR, 0xDEADBEEF, WCH4, GGO_BITMAP, FALSE, { 0 }, 512, s_ab }, 236 { __LINE__, L"Marlett", -14, GDI_ERROR, 0xDEADBEEF, WCH5, GGO_BITMAP, FALSE, { 0 }, 512, s_ab }, 237 238 { __LINE__, L"Marlett", -12, 24, 0xDEADBEEF, WCH0, GGO_METRICS, TRUE, { 5, 8, { 0, 8 }, 6, 0 }, }, 239 { __LINE__, L"Marlett", -12, 24, 0xDEADBEEF, WCH1, GGO_METRICS, TRUE, { 5, 8, { 0, 8 }, 6, 0 }, }, 240 { __LINE__, L"Marlett", -12, 24, 0xDEADBEEF, WCH2, GGO_METRICS, TRUE, { 5, 8, { 0, 8 }, 6, 0 }, }, 241 { __LINE__, L"Marlett", -12, 24, 0xDEADBEEF, WCH3, GGO_METRICS, TRUE, { 5, 8, { 0, 8 }, 6, 0 }, }, 242 { __LINE__, L"Marlett", -12, 28, 0xDEADBEEF, WCH4, GGO_METRICS, TRUE, { 8, 9, { 2, 11 }, 12, 0 }, }, 243 { __LINE__, L"Marlett", -12, 24, 0xDEADBEEF, WCH5, GGO_METRICS, TRUE, { 5, 8, { 0, 8 }, 6, 0 }, }, 244 { __LINE__, L"Marlett", -12, 24, 0xDEADBEEF, WCH0, GGO_METRICS, TRUE, { 5, 8, { 0, 8 }, 6, 0 }, 1, s_ab }, 245 { __LINE__, L"Marlett", -12, 24, 0xDEADBEEF, WCH1, GGO_METRICS, TRUE, { 5, 8, { 0, 8 }, 6, 0 }, 1, s_ab }, 246 { __LINE__, L"Marlett", -12, 24, 0xDEADBEEF, WCH2, GGO_METRICS, TRUE, { 5, 8, { 0, 8 }, 6, 0 }, 1, s_ab }, 247 { __LINE__, L"Marlett", -12, 24, 0xDEADBEEF, WCH3, GGO_METRICS, TRUE, { 5, 8, { 0, 8 }, 6, 0 }, 1, s_ab }, 248 { __LINE__, L"Marlett", -12, 28, 0xDEADBEEF, WCH4, GGO_METRICS, TRUE, { 8, 9, { 2, 11 }, 12, 0 }, 1, s_ab }, 249 { __LINE__, L"Marlett", -12, 24, 0xDEADBEEF, WCH5, GGO_METRICS, TRUE, { 5, 8, { 0, 8 }, 6, 0 }, 1, s_ab }, 250 { __LINE__, L"Marlett", -12, 24, 0xDEADBEEF, WCH0, GGO_METRICS, TRUE, { 5, 8, { 0, 8 }, 6, 0 }, 512, s_ab }, 251 { __LINE__, L"Marlett", -12, 24, 0xDEADBEEF, WCH1, GGO_METRICS, TRUE, { 5, 8, { 0, 8 }, 6, 0 }, 512, s_ab }, 252 { __LINE__, L"Marlett", -12, 24, 0xDEADBEEF, WCH2, GGO_METRICS, TRUE, { 5, 8, { 0, 8 }, 6, 0 }, 512, s_ab }, 253 { __LINE__, L"Marlett", -12, 24, 0xDEADBEEF, WCH3, GGO_METRICS, TRUE, { 5, 8, { 0, 8 }, 6, 0 }, 512, s_ab }, 254 { __LINE__, L"Marlett", -12, 28, 0xDEADBEEF, WCH4, GGO_METRICS, TRUE, { 8, 9, { 2, 11 }, 12, 0 }, 512, s_ab }, 255 { __LINE__, L"Marlett", -12, 24, 0xDEADBEEF, WCH5, GGO_METRICS, TRUE, { 5, 8, { 0, 8 }, 6, 0 }, 512, s_ab }, 256 { __LINE__, L"Marlett", -12, 32, 0xDEADBEEF, WCH0, GGO_BITMAP, TRUE, { 5, 8, { 0, 8 }, 6, 0 }, }, 257 { __LINE__, L"Marlett", -12, 32, 0xDEADBEEF, WCH1, GGO_BITMAP, TRUE, { 5, 8, { 0, 8 }, 6, 0 }, }, 258 { __LINE__, L"Marlett", -12, 32, 0xDEADBEEF, WCH2, GGO_BITMAP, TRUE, { 5, 8, { 0, 8 }, 6, 0 }, }, 259 { __LINE__, L"Marlett", -12, 32, 0xDEADBEEF, WCH3, GGO_BITMAP, TRUE, { 5, 8, { 0, 8 }, 6, 0 }, }, 260 { __LINE__, L"Marlett", -12, 36, 0xDEADBEEF, WCH4, GGO_BITMAP, TRUE, { 8, 9, { 2, 11 }, 12, 0 }, }, 261 { __LINE__, L"Marlett", -12, 32, 0xDEADBEEF, WCH5, GGO_BITMAP, TRUE, { 5, 8, { 0, 8 }, 6, 0 }, }, 262 { __LINE__, L"Marlett", -12, 32, 0xDEADBEEF, WCH0, GGO_BITMAP, TRUE, { 5, 8, { 0, 8 }, 6, 0 }, 512, s_ab }, 263 { __LINE__, L"Marlett", -12, 32, 0xDEADBEEF, WCH1, GGO_BITMAP, TRUE, { 5, 8, { 0, 8 }, 6, 0 }, 512, s_ab }, 264 { __LINE__, L"Marlett", -12, 32, 0xDEADBEEF, WCH2, GGO_BITMAP, TRUE, { 5, 8, { 0, 8 }, 6, 0 }, 512, s_ab }, 265 { __LINE__, L"Marlett", -12, 32, 0xDEADBEEF, WCH3, GGO_BITMAP, TRUE, { 5, 8, { 0, 8 }, 6, 0 }, 512, s_ab }, 266 { __LINE__, L"Marlett", -12, 36, 0xDEADBEEF, WCH4, GGO_BITMAP, TRUE, { 8, 9, { 2, 11 }, 12, 0 }, 512, s_ab }, 267 { __LINE__, L"Marlett", -12, 32, 0xDEADBEEF, WCH5, GGO_BITMAP, TRUE, { 5, 8, { 0, 8 }, 6, 0 }, 512, s_ab }, 268 269 { __LINE__, L"Marlett", -14, 28, 0xDEADBEEF, WCH0, GGO_METRICS, TRUE, { 6, 9, { 0, 9 }, 7, 0 }, }, 270 { __LINE__, L"Marlett", -14, 28, 0xDEADBEEF, WCH1, GGO_METRICS, TRUE, { 6, 9, { 0, 9 }, 7, 0 }, }, 271 { __LINE__, L"Marlett", -14, 28, 0xDEADBEEF, WCH2, GGO_METRICS, TRUE, { 6, 9, { 0, 9 }, 7, 0 }, }, 272 { __LINE__, L"Marlett", -14, 28, 0xDEADBEEF, WCH3, GGO_METRICS, TRUE, { 6, 9, { 0, 9 }, 7, 0 }, }, 273 { __LINE__, L"Marlett", -14, 36, 0xDEADBEEF, WCH4, GGO_METRICS, TRUE, { 10, 10, { 2, 12 }, 14, 0 }, }, 274 { __LINE__, L"Marlett", -14, 28, 0xDEADBEEF, WCH5, GGO_METRICS, TRUE, { 6, 9, { 0, 9 }, 7, 0 }, }, 275 { __LINE__, L"Marlett", -14, 28, 0xDEADBEEF, WCH0, GGO_METRICS, TRUE, { 6, 9, { 0, 9 }, 7, 0 }, 1, s_ab }, 276 { __LINE__, L"Marlett", -14, 28, 0xDEADBEEF, WCH1, GGO_METRICS, TRUE, { 6, 9, { 0, 9 }, 7, 0 }, 1, s_ab }, 277 { __LINE__, L"Marlett", -14, 28, 0xDEADBEEF, WCH2, GGO_METRICS, TRUE, { 6, 9, { 0, 9 }, 7, 0 }, 1, s_ab }, 278 { __LINE__, L"Marlett", -14, 28, 0xDEADBEEF, WCH3, GGO_METRICS, TRUE, { 6, 9, { 0, 9 }, 7, 0 }, 1, s_ab }, 279 { __LINE__, L"Marlett", -14, 36, 0xDEADBEEF, WCH4, GGO_METRICS, TRUE, { 10, 10, { 2, 12 }, 14, 0 }, 1, s_ab }, 280 { __LINE__, L"Marlett", -14, 28, 0xDEADBEEF, WCH5, GGO_METRICS, TRUE, { 6, 9, { 0, 9 }, 7, 0 }, 1, s_ab }, 281 { __LINE__, L"Marlett", -14, 28, 0xDEADBEEF, WCH0, GGO_METRICS, TRUE, { 6, 9, { 0, 9 }, 7, 0 }, 512, s_ab }, 282 { __LINE__, L"Marlett", -14, 28, 0xDEADBEEF, WCH1, GGO_METRICS, TRUE, { 6, 9, { 0, 9 }, 7, 0 }, 512, s_ab }, 283 { __LINE__, L"Marlett", -14, 28, 0xDEADBEEF, WCH2, GGO_METRICS, TRUE, { 6, 9, { 0, 9 }, 7, 0 }, 512, s_ab }, 284 { __LINE__, L"Marlett", -14, 28, 0xDEADBEEF, WCH3, GGO_METRICS, TRUE, { 6, 9, { 0, 9 }, 7, 0 }, 512, s_ab }, 285 { __LINE__, L"Marlett", -14, 36, 0xDEADBEEF, WCH4, GGO_METRICS, TRUE, { 10, 10, { 2, 12 }, 14, 0 }, 512, s_ab }, 286 { __LINE__, L"Marlett", -14, 28, 0xDEADBEEF, WCH5, GGO_METRICS, TRUE, { 6, 9, { 0, 9 }, 7, 0 }, 512, s_ab }, 287 { __LINE__, L"Marlett", -14, 36, 0xDEADBEEF, WCH0, GGO_BITMAP, TRUE, { 6, 9, { 0, 9 }, 7, 0 }, }, 288 { __LINE__, L"Marlett", -14, 36, 0xDEADBEEF, WCH1, GGO_BITMAP, TRUE, { 6, 9, { 0, 9 }, 7, 0 }, }, 289 { __LINE__, L"Marlett", -14, 36, 0xDEADBEEF, WCH2, GGO_BITMAP, TRUE, { 6, 9, { 0, 9 }, 7, 0 }, }, 290 { __LINE__, L"Marlett", -14, 36, 0xDEADBEEF, WCH3, GGO_BITMAP, TRUE, { 6, 9, { 0, 9 }, 7, 0 }, }, 291 { __LINE__, L"Marlett", -14, 40, 0xDEADBEEF, WCH4, GGO_BITMAP, TRUE, { 10, 10, { 2, 12 }, 14, 0 }, }, 292 { __LINE__, L"Marlett", -14, 36, 0xDEADBEEF, WCH5, GGO_BITMAP, TRUE, { 6, 9, { 0, 9 }, 7, 0 }, }, 293 { __LINE__, L"Marlett", -14, 36, 0xDEADBEEF, WCH0, GGO_BITMAP, TRUE, { 6, 9, { 0, 9 }, 7, 0 }, 512, s_ab }, 294 { __LINE__, L"Marlett", -14, 36, 0xDEADBEEF, WCH1, GGO_BITMAP, TRUE, { 6, 9, { 0, 9 }, 7, 0 }, 512, s_ab }, 295 { __LINE__, L"Marlett", -14, 36, 0xDEADBEEF, WCH2, GGO_BITMAP, TRUE, { 6, 9, { 0, 9 }, 7, 0 }, 512, s_ab }, 296 { __LINE__, L"Marlett", -14, 36, 0xDEADBEEF, WCH3, GGO_BITMAP, TRUE, { 6, 9, { 0, 9 }, 7, 0 }, 512, s_ab }, 297 { __LINE__, L"Marlett", -14, 40, 0xDEADBEEF, WCH4, GGO_BITMAP, TRUE, { 10, 10, { 2, 12 }, 14, 0 }, 512, s_ab }, 298 { __LINE__, L"Marlett", -14, 36, 0xDEADBEEF, WCH5, GGO_BITMAP, TRUE, { 6, 9, { 0, 9 }, 7, 0 }, 512, s_ab }, 299 }; 300 301 void DoEntry(const TEST_ENTRY *pEntry) 302 { 303 LOGFONTW lf; 304 HFONT hFont; 305 HDC hDC; 306 HGDIOBJ hFontOld; 307 308 ZeroMemory(&lf, sizeof(lf)); 309 310 lf.lfHeight = pEntry->lfHeight; 311 lf.lfCharSet = DEFAULT_CHARSET; 312 lstrcpyW(lf.lfFaceName, pEntry->lfFaceName); 313 314 hFont = CreateFontIndirectW(&lf); 315 ok(hFont != NULL, "hFont was NULL\n"); 316 if (hFont == NULL) 317 { 318 skip("Line %d: skipped because hFont == NULL\n", pEntry->line); 319 return; 320 } 321 322 hDC = CreateCompatibleDC(NULL); 323 ok(hDC != NULL, "hDC was NULL\n"); 324 if (hDC == NULL) 325 { 326 skip("Line %d: skipped because hDC == NULL\n", pEntry->line); 327 DeleteObject(hFont); 328 return; 329 } 330 331 hFontOld = SelectObject(hDC, hFont); 332 ok(hFontOld != NULL, "SelectObject failed\n"); 333 if (hFontOld == NULL) 334 { 335 skip("Line %d: skipped because SelectObject failed\n", pEntry->line); 336 } 337 else 338 { 339 DWORD dwRet, dwError; 340 GLYPHMETRICS gm; 341 342 SetLastError(0xDEADBEEF); 343 344 if (pEntry->bMetrics) 345 { 346 FillMemory(&gm, sizeof(gm), 0xCD); 347 dwRet = GetGlyphOutlineW(hDC, pEntry->wch, pEntry->uFormat, &gm, pEntry->cbBuffer, pEntry->lpvBuffer, &s_mat); 348 } 349 else 350 { 351 dwRet = GetGlyphOutlineW(hDC, pEntry->wch, pEntry->uFormat, NULL, pEntry->cbBuffer, pEntry->lpvBuffer, &s_mat); 352 } 353 dwError = GetLastError(); 354 355 ok(dwRet == pEntry->dwRet, "Line %d: dwRet expected 0x%lX, was 0x%lX\n", pEntry->line, pEntry->dwRet, dwRet); 356 ok(dwError == pEntry->dwError, "Line %d: dwError expected 0x%lX, was 0x%lX\n", pEntry->line, pEntry->dwError, dwError); 357 358 if (pEntry->bMetrics) 359 { 360 ok(gm.gmBlackBoxX == pEntry->gm.gmBlackBoxX, "Line %d: gm.gmBlackBoxX expected 0x%X, was 0x%X\n", pEntry->line, pEntry->gm.gmBlackBoxX, gm.gmBlackBoxX); 361 ok(gm.gmBlackBoxY == pEntry->gm.gmBlackBoxY, "Line %d: gm.gmBlackBoxY expected 0x%X, was 0x%X\n", pEntry->line, pEntry->gm.gmBlackBoxY, gm.gmBlackBoxY); 362 ok(gm.gmptGlyphOrigin.x == pEntry->gm.gmptGlyphOrigin.x, "Line %d: gm.gmptGlyphOrigin.x expected %ld, was %ld\n", pEntry->line, pEntry->gm.gmptGlyphOrigin.x, gm.gmptGlyphOrigin.x); 363 ok(gm.gmptGlyphOrigin.y == pEntry->gm.gmptGlyphOrigin.y, "Line %d: gm.gmptGlyphOrigin.y expected %ld, was %ld\n", pEntry->line, pEntry->gm.gmptGlyphOrigin.y, gm.gmptGlyphOrigin.y); 364 ok(gm.gmCellIncX == pEntry->gm.gmCellIncX, "Line %d: gm.gmCellIncX expected %d, was %d\n", pEntry->line, pEntry->gm.gmCellIncX, gm.gmCellIncX); 365 ok(gm.gmCellIncY == pEntry->gm.gmCellIncY, "Line %d: gm.gmCellIncY expected %d, was %d\n", pEntry->line, pEntry->gm.gmCellIncY, gm.gmCellIncY); 366 } 367 SelectObject(hDC, hFontOld); 368 } 369 370 DeleteObject(hFont); 371 DeleteDC(hDC); 372 } 373 374 START_TEST(GetGlyphOutline) 375 { 376 SIZE_T i, count = ARRAYSIZE(s_entries); 377 for (i = 0; i < count; ++i) 378 { 379 DoEntry(&s_entries[i]); 380 } 381 } 382