Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1557 lines
64 KiB

  1. /******************************Module*Header*******************************\
  2. * Module Name: kdftdbg.h
  3. *
  4. * Copyright (c) 1995-1999 Microsoft Corporation
  5. \**************************************************************************/
  6. #include <winfont.h>
  7. #define WOW_EMBEDING 2
  8. extern "C" VOID
  9. vPrintFONTDIFF(
  10. FONTDIFF *pfd ,
  11. CHAR *psz )
  12. {
  13. //
  14. // This is where you put the code common to vDumpFONTDIFF and vPrintFONTDIFF
  15. //
  16. dprintf(" ** %s **\n" , psz );
  17. dprintf(" jReserved1 %d\n" , pfd->jReserved1 );
  18. dprintf(" jReserved2 %d\n" , pfd->jReserved2 );
  19. dprintf(" jReserved3 %d\n" , pfd->jReserved3 );
  20. dprintf(" bWeight %d\n" , pfd->bWeight );
  21. dprintf(" usWinWeight %d\n" , pfd->usWinWeight );
  22. dprintf(" fsSelection %-#6x\n" , pfd->fsSelection );
  23. dprintf(" fwdAveCharWidth %d\n" , pfd->fwdAveCharWidth);
  24. dprintf(" fwdMaxCharInc %d\n" , pfd->fwdMaxCharInc );
  25. dprintf(" ptlCaret {%d,%d}\n" , pfd->ptlCaret.x
  26. , pfd->ptlCaret.y );
  27. }
  28. /******************************Public*Routine******************************\
  29. * vPrintTEXTMETRICW
  30. *
  31. * History:
  32. * Tue 08-Dec-1992 11:41:36 by Kirk Olynyk [kirko]
  33. * Wrote it.
  34. \**************************************************************************/
  35. extern "C" VOID
  36. vPrintTEXTMETRICW(
  37. TEXTMETRICW *p )
  38. {
  39. dprintf(" tmHeight = %d\n", p->tmHeight );
  40. dprintf(" tmAscent = %d\n", p->tmAscent );
  41. dprintf(" tmDescent = %d\n", p->tmDescent );
  42. dprintf(" tmInternalLeading = %d\n", p->tmInternalLeading );
  43. dprintf(" tmExternalLeading = %d\n", p->tmExternalLeading );
  44. dprintf(" tmAveCharWidth = %d\n", p->tmAveCharWidth );
  45. dprintf(" tmMaxCharWidth = %d\n", p->tmMaxCharWidth );
  46. dprintf(" tmWeight = %d\n", p->tmWeight );
  47. dprintf(" tmOverhang = %d\n", p->tmOverhang );
  48. dprintf(" tmDigitizedAspectX = %d\n", p->tmDigitizedAspectX );
  49. dprintf(" tmDigitizedAspectY = %d\n", p->tmDigitizedAspectY );
  50. dprintf(" tmFirstChar = %-#6x\n", p->tmFirstChar );
  51. dprintf(" tmLastChar = %-#6x\n", p->tmLastChar );
  52. dprintf(" tmDefaultChar = %-#6x\n", p->tmDefaultChar );
  53. dprintf(" tmBreakChar = %-#6x\n", p->tmBreakChar );
  54. dprintf(" tmItalic = %-#4x\n", p->tmItalic );
  55. dprintf(" tmUnderlined = %-#4x\n", p->tmUnderlined );
  56. dprintf(" tmStruckOut = %-#4x\n", p->tmStruckOut );
  57. dprintf(" tmPitchAndFamily = %-#4x\n", p->tmPitchAndFamily );
  58. dprintf(" tmCharSet = %-#4x\n", p->tmCharSet );
  59. }
  60. extern "C" VOID
  61. vPrintIFIMETRICS(
  62. IFIMETRICS *pifi )
  63. {
  64. //
  65. // Convenient pointer to Panose number
  66. //
  67. char *psz;
  68. PANOSE *ppan = &pifi->panose;
  69. PWSZ pwszFamilyName = (PWSZ)(((BYTE*) pifi) + pifi->dpwszFamilyName);
  70. PWSZ pwszStyleName = (PWSZ)(((BYTE*) pifi) + pifi->dpwszStyleName );
  71. PWSZ pwszFaceName = (PWSZ)(((BYTE*) pifi) + pifi->dpwszFaceName );
  72. PWSZ pwszUniqueName = (PWSZ)(((BYTE*) pifi) + pifi->dpwszUniqueName);
  73. dprintf(" cjThis %-#8lx\n" , pifi->cjThis );
  74. dprintf(" cjIfiExtra %-#8lx\n" , pifi->cjIfiExtra );
  75. dprintf(" pwszFamilyName \"%ws\"\n", pwszFamilyName );
  76. dprintf(" pwszStyleName \"%ws\"\n", pwszStyleName );
  77. dprintf(" pwszFaceName \"%ws\"\n", pwszFaceName );
  78. dprintf(" pwszUniqueName \"%ws\"\n", pwszUniqueName );
  79. dprintf(" dpFontSim %-#8lx\n" , pifi->dpFontSim );
  80. dprintf(" lEmbedId %-#8lx\n" , pifi->lEmbedId );
  81. dprintf(" lItalicAngle %d\n" , pifi->lItalicAngle);
  82. dprintf(" lCharBias %d\n" , pifi->lCharBias );
  83. dprintf(" dpCharSets %d\n" , pifi->dpCharSets );
  84. dprintf(" jWinCharSet %04x\n" , pifi->jWinCharSet );
  85. switch (pifi->jWinCharSet)
  86. {
  87. case ANSI_CHARSET : psz = "ANSI_CHARSET" ; break;
  88. case DEFAULT_CHARSET : psz = "DEFAULT_CHARSET" ; break;
  89. case SYMBOL_CHARSET : psz = "SYMBOL_CHARSET" ; break;
  90. case SHIFTJIS_CHARSET : psz = "SHIFTJIS_CHARSET" ; break;
  91. case HANGEUL_CHARSET : psz = "HANGEUL_CHARSET" ; break;
  92. case GB2312_CHARSET : psz = "GB2312_CHARSET" ; break;
  93. case CHINESEBIG5_CHARSET: psz = "CHINESEBIG5_CHARSET" ; break;
  94. case OEM_CHARSET : psz = "OEM_CHARSET" ; break;
  95. case JOHAB_CHARSET : psz = "JOHAB_CHARSET" ; break;
  96. case HEBREW_CHARSET : psz = "HEBREW_CHARSET" ; break;
  97. case ARABIC_CHARSET : psz = "ARABIC_CHARSET" ; break;
  98. case GREEK_CHARSET : psz = "GREEK_CHARSET" ; break;
  99. case TURKISH_CHARSET : psz = "TURKISH_CHARSET" ; break;
  100. case THAI_CHARSET : psz = "THAI_CHARSET" ; break;
  101. case EASTEUROPE_CHARSET : psz = "EASTEUROPE_CHARSET" ; break;
  102. case RUSSIAN_CHARSET : psz = "RUSSIAN_CHARSET" ; break;
  103. case MAC_CHARSET : psz = "MAC_CHARSET" ; break;
  104. case BALTIC_CHARSET : psz = "BALTIC_CHARSET" ; break;
  105. default : psz = "UNKNOWN" ; break;
  106. }
  107. dprintf(" %s\n", psz);
  108. if (pifi->dpCharSets)
  109. {
  110. BYTE *pj = (BYTE *)pifi + pifi->dpCharSets;
  111. BYTE *pjEnd = pj + 16;
  112. dprintf(" Supported Charsets: \n");
  113. for (; pj < pjEnd; pj++)
  114. {
  115. switch (*pj)
  116. {
  117. case ANSI_CHARSET : psz = "ANSI_CHARSET" ; break;
  118. case DEFAULT_CHARSET : psz = "DEFAULT_CHARSET" ; break;
  119. case SYMBOL_CHARSET : psz = "SYMBOL_CHARSET" ; break;
  120. case SHIFTJIS_CHARSET : psz = "SHIFTJIS_CHARSET" ; break;
  121. case HANGEUL_CHARSET : psz = "HANGEUL_CHARSET" ; break;
  122. case GB2312_CHARSET : psz = "GB2312_CHARSET" ; break;
  123. case CHINESEBIG5_CHARSET: psz = "CHINESEBIG5_CHARSET" ; break;
  124. case OEM_CHARSET : psz = "OEM_CHARSET" ; break;
  125. case JOHAB_CHARSET : psz = "JOHAB_CHARSET" ; break;
  126. case HEBREW_CHARSET : psz = "HEBREW_CHARSET" ; break;
  127. case ARABIC_CHARSET : psz = "ARABIC_CHARSET" ; break;
  128. case GREEK_CHARSET : psz = "GREEK_CHARSET" ; break;
  129. case TURKISH_CHARSET : psz = "TURKISH_CHARSET" ; break;
  130. case THAI_CHARSET : psz = "THAI_CHARSET" ; break;
  131. case EASTEUROPE_CHARSET : psz = "EASTEUROPE_CHARSET" ; break;
  132. case RUSSIAN_CHARSET : psz = "RUSSIAN_CHARSET" ; break;
  133. case MAC_CHARSET : psz = "MAC_CHARSET" ; break;
  134. case BALTIC_CHARSET : psz = "BALTIC_CHARSET" ; break;
  135. default : psz = "UNKNOWN" ; break;
  136. }
  137. dprintf(" 0x%lx, %s\n", (DWORD)(*pj), psz);
  138. }
  139. }
  140. dprintf(" jWinPitchAndFamily %04x\n" , pifi->jWinPitchAndFamily );
  141. switch (pifi->jWinPitchAndFamily & 0xF)
  142. {
  143. case DEFAULT_PITCH : psz = "DEFAULT_PITCH"; break;
  144. case FIXED_PITCH : psz = "FIXED_PITCH"; break;
  145. case VARIABLE_PITCH : psz = "VARIABLE_PITCH"; break;
  146. default : psz = "UNKNOWN_PITCH"; break;
  147. }
  148. dprintf(" %s | ", psz);
  149. switch (pifi->jWinPitchAndFamily & 0xF0)
  150. {
  151. case FF_DONTCARE : psz = "FF_DONTCARE"; break;
  152. case FF_ROMAN : psz = "FF_ROMAN"; break;
  153. case FF_SWISS : psz = "FF_SWISS"; break;
  154. case FF_MODERN : psz = "FF_MODERN"; break;
  155. case FF_SCRIPT : psz = "FF_SCRIPT"; break;
  156. case FF_DECORATIVE : psz = "FF_DECORATIVE"; break;
  157. default : psz = "FF_UNKNOWN"; break;
  158. }
  159. dprintf("%s\n", psz);
  160. dprintf(" usWinWeight %d\n" , pifi->usWinWeight );
  161. dprintf(" flInfo %-#8lx\n" , pifi->flInfo );
  162. if (pifi->flInfo & FM_INFO_TECH_TRUETYPE)
  163. dprintf(" FM_INFO_TECH_TRUETYPE\n");
  164. if (pifi->flInfo & FM_INFO_TECH_BITMAP)
  165. dprintf(" FM_INFO_TECH_BITMAP\n");
  166. if (pifi->flInfo & FM_INFO_TECH_STROKE)
  167. dprintf(" FM_INFO_TECH_STROKE\n");
  168. if (pifi->flInfo & FM_INFO_TECH_OUTLINE_NOT_TRUETYPE)
  169. dprintf(" FM_INFO_TECH_OUTLINE_NOT_TRUETYPE\n");
  170. if (pifi->flInfo & FM_INFO_ARB_XFORMS)
  171. dprintf(" FM_INFO_ARB_XFORMS\n");
  172. if (pifi->flInfo & FM_INFO_1BPP)
  173. dprintf(" FM_INFO_1BPP\n");
  174. if (pifi->flInfo & FM_INFO_4BPP)
  175. dprintf(" FM_INFO_4BPP\n");
  176. if (pifi->flInfo & FM_INFO_8BPP)
  177. dprintf(" FM_INFO_8BPP\n");
  178. if (pifi->flInfo & FM_INFO_16BPP)
  179. dprintf(" FM_INFO_16BPP\n");
  180. if (pifi->flInfo & FM_INFO_24BPP)
  181. dprintf(" FM_INFO_24BPP\n");
  182. if (pifi->flInfo & FM_INFO_32BPP)
  183. dprintf(" FM_INFO_32BPP\n");
  184. if (pifi->flInfo & FM_INFO_INTEGER_WIDTH)
  185. dprintf(" FM_INFO_INTEGER_WIDTH\n");
  186. if (pifi->flInfo & FM_INFO_CONSTANT_WIDTH)
  187. dprintf(" FM_INFO_CONSTANT_WIDTH\n");
  188. if (pifi->flInfo & FM_INFO_NOT_CONTIGUOUS)
  189. dprintf(" FM_INFO_NOT_CONTIGUOUS\n");
  190. if (pifi->flInfo & FM_INFO_TECH_MM)
  191. dprintf(" FM_INFO_TECH_MM\n");
  192. if (pifi->flInfo & FM_INFO_RETURNS_OUTLINES)
  193. dprintf(" FM_INFO_RETURNS_OUTLINES\n");
  194. if (pifi->flInfo & FM_INFO_RETURNS_STROKES)
  195. dprintf(" FM_INFO_RETURNS_STROKES\n");
  196. if (pifi->flInfo & FM_INFO_RETURNS_BITMAPS)
  197. dprintf(" FM_INFO_RETURNS_BITMAPS\n");
  198. if (pifi->flInfo & FM_INFO_DSIG)
  199. dprintf(" FM_INFO_DSIG\n");
  200. if (pifi->flInfo & FM_INFO_RIGHT_HANDED)
  201. dprintf(" FM_INFO_RIGHT_HANDED\n");
  202. if (pifi->flInfo & FM_INFO_INTEGRAL_SCALING)
  203. dprintf(" FM_INFO_INTEGRAL_SCALING\n");
  204. if (pifi->flInfo & FM_INFO_90DEGREE_ROTATIONS)
  205. dprintf(" FM_INFO_90DEGREE_ROTATIONS\n");
  206. if (pifi->flInfo & FM_INFO_OPTICALLY_FIXED_PITCH)
  207. dprintf(" FM_INFO_OPTICALLY_FIXED_PITCH\n");
  208. if (pifi->flInfo & FM_INFO_DO_NOT_ENUMERATE)
  209. dprintf(" FM_INFO_DO_NOT_ENUMERATE\n");
  210. if (pifi->flInfo & FM_INFO_ISOTROPIC_SCALING_ONLY)
  211. dprintf(" FM_INFO_ISOTROPIC_SCALING_ONLY\n");
  212. if (pifi->flInfo & FM_INFO_ANISOTROPIC_SCALING_ONLY)
  213. dprintf(" FM_INFO_ANISOTROPIC_SCALING_ONLY\n");
  214. if (pifi->flInfo & FM_INFO_TECH_CFF)
  215. dprintf(" FM_INFO_TECH_CFF\n");
  216. if (pifi->flInfo & FM_INFO_FAMILY_EQUIV)
  217. dprintf(" FM_INFO_FAMILY_EQUIV\n");
  218. if (pifi->flInfo & FM_INFO_IGNORE_TC_RA_ABLE)
  219. dprintf(" FM_INFO_IGNORE_TC_RA_ABLE\n");
  220. dprintf(" fsSelection %-#6lx\n" , pifi->fsSelection );
  221. if (pifi->fsSelection & FM_SEL_ITALIC)
  222. dprintf(" FM_SEL_ITALIC\n");
  223. if (pifi->fsSelection & FM_SEL_UNDERSCORE)
  224. dprintf(" FM_SEL_UNDERSCORE\n");
  225. if (pifi->fsSelection & FM_SEL_NEGATIVE)
  226. dprintf(" FM_SEL_NEGATIVE\n");
  227. if (pifi->fsSelection & FM_SEL_OUTLINED)
  228. dprintf(" FM_SEL_OUTLINED\n");
  229. if (pifi->fsSelection & FM_SEL_STRIKEOUT)
  230. dprintf(" FM_SEL_STRIKEOUT\n");
  231. if (pifi->fsSelection & FM_SEL_BOLD)
  232. dprintf(" FM_SEL_BOLD\n");
  233. if (pifi->fsSelection & FM_SEL_REGULAR)
  234. dprintf(" FM_SEL_REGULAR\n");
  235. dprintf(" fsType %-#6lx\n" , pifi->fsType );
  236. if (pifi->fsType & FM_TYPE_LICENSED)
  237. dprintf(" FM_TYPE_LICENSED\n");
  238. if (pifi->fsType & FM_READONLY_EMBED)
  239. dprintf(" FM_READONLY_EMBED\n");
  240. if (pifi->fsType & FM_NO_EMBEDDING)
  241. dprintf(" FM_NO_EMBEDDING\n");
  242. dprintf(" fwdUnitsPerEm %d\n" , pifi->fwdUnitsPerEm );
  243. dprintf(" fwdLowestPPEm %d\n" , pifi->fwdLowestPPEm );
  244. dprintf(" fwdWinAscender %d\n" , pifi->fwdWinAscender );
  245. dprintf(" fwdWinDescender %d\n" , pifi->fwdWinDescender );
  246. dprintf(" fwdMacAscender %d\n" , pifi->fwdMacAscender );
  247. dprintf(" fwdMacDescender %d\n" , pifi->fwdMacDescender );
  248. dprintf(" fwdMacLineGap %d\n" , pifi->fwdMacLineGap );
  249. dprintf(" fwdTypoAscender %d\n" , pifi->fwdTypoAscender );
  250. dprintf(" fwdTypoDescender %d\n" , pifi->fwdTypoDescender );
  251. dprintf(" fwdTypoLineGap %d\n" , pifi->fwdTypoLineGap );
  252. dprintf(" fwdAveCharWidth %d\n" , pifi->fwdAveCharWidth );
  253. dprintf(" fwdMaxCharInc %d\n" , pifi->fwdMaxCharInc );
  254. dprintf(" fwdCapHeight %d\n" , pifi->fwdCapHeight );
  255. dprintf(" fwdXHeight %d\n" , pifi->fwdXHeight );
  256. dprintf(" fwdSubscriptXSize %d\n" , pifi->fwdSubscriptXSize );
  257. dprintf(" fwdSubscriptYSize %d\n" , pifi->fwdSubscriptYSize );
  258. dprintf(" fwdSubscriptXOffset %d\n" , pifi->fwdSubscriptXOffset );
  259. dprintf(" fwdSubscriptYOffset %d\n" , pifi->fwdSubscriptYOffset );
  260. dprintf(" fwdSuperscriptXSize %d\n" , pifi->fwdSuperscriptXSize );
  261. dprintf(" fwdSuperscriptYSize %d\n" , pifi->fwdSuperscriptYSize );
  262. dprintf(" fwdSuperscriptXOffset %d\n" , pifi->fwdSuperscriptXOffset);
  263. dprintf(" fwdSuperscriptYOffset %d\n" , pifi->fwdSuperscriptYOffset);
  264. dprintf(" fwdUnderscoreSize %d\n" , pifi->fwdUnderscoreSize );
  265. dprintf(" fwdUnderscorePosition %d\n" , pifi->fwdUnderscorePosition);
  266. dprintf(" fwdStrikeoutSize %d\n" , pifi->fwdStrikeoutSize );
  267. dprintf(" fwdStrikeoutPosition %d\n" , pifi->fwdStrikeoutPosition );
  268. dprintf(" chFirstChar %-#4x\n" , (int) (BYTE) pifi->chFirstChar );
  269. dprintf(" chLastChar %-#4x\n" , (int) (BYTE) pifi->chLastChar );
  270. dprintf(" chDefaultChar %-#4x\n" , (int) (BYTE) pifi->chDefaultChar );
  271. dprintf(" chBreakChar %-#4x\n" , (int) (BYTE) pifi->chBreakChar );
  272. dprintf(" wcFirsChar %-#6x\n" , pifi->wcFirstChar );
  273. dprintf(" wcLastChar %-#6x\n" , pifi->wcLastChar );
  274. dprintf(" wcDefaultChar %-#6x\n" , pifi->wcDefaultChar );
  275. dprintf(" wcBreakChar %-#6x\n" , pifi->wcBreakChar );
  276. dprintf(" ptlBaseline {%ld,%ld}\n" , pifi->ptlBaseline.x,
  277. pifi->ptlBaseline.y );
  278. dprintf(" ptlAspect {%ld,%ld}\n" , pifi->ptlAspect.x,
  279. pifi->ptlAspect.y );
  280. dprintf(" ptlCaret {%ld,%ld}\n" , pifi->ptlCaret.x,
  281. pifi->ptlCaret.y );
  282. dprintf(" rclFontBox {%ld,%ld,%ld,%ld}\n",pifi->rclFontBox.left,
  283. pifi->rclFontBox.top,
  284. pifi->rclFontBox.right,
  285. pifi->rclFontBox.bottom );
  286. dprintf(" achVendId \"%c%c%c%c\"\n",pifi->achVendId[0],
  287. pifi->achVendId[1],
  288. pifi->achVendId[2],
  289. pifi->achVendId[3] );
  290. dprintf(" cKerningPairs %ld\n" , pifi->cKerningPairs );
  291. dprintf(" ulPanoseCulture %-#8lx\n" , pifi->ulPanoseCulture);
  292. dprintf(
  293. " panose {%02x,%02x,%02x,%02x,%02x,%02x,%02x,%02x,%02x,%02x}\n"
  294. , ppan->bFamilyType
  295. , ppan->bSerifStyle
  296. , ppan->bWeight
  297. , ppan->bProportion
  298. , ppan->bContrast
  299. , ppan->bStrokeVariation
  300. , ppan->bArmStyle
  301. , ppan->bLetterform
  302. , ppan->bMidline
  303. , ppan->bXHeight );
  304. if (pifi->dpFontSim)
  305. {
  306. FONTSIM *pfs = (FONTSIM*) (((BYTE*) pifi) + pifi->dpFontSim);
  307. if (pfs->dpBold)
  308. {
  309. vPrintFONTDIFF(
  310. (FONTDIFF*) (((BYTE*) pfs) + pfs->dpBold),
  311. "BOLD SIMULATION" );
  312. }
  313. if (pfs->dpItalic)
  314. {
  315. vPrintFONTDIFF(
  316. (FONTDIFF*) (((BYTE*) pfs) + pfs->dpItalic),
  317. "ITALIC SIMULATION" );
  318. }
  319. if (pfs->dpBoldItalic)
  320. {
  321. vPrintFONTDIFF(
  322. (FONTDIFF*) (((BYTE*) pfs) + pfs->dpBoldItalic),
  323. "BOLD ITALIC SIMULATION" );
  324. }
  325. }
  326. dprintf("\n\n");
  327. }
  328. extern "C" VOID vPrintLOGFONTW(LOGFONTW* plfw)
  329. {
  330. char *psz;
  331. dprintf(" lfw.lfHeight = %d\n", plfw->lfHeight);
  332. dprintf(" lfw.lfWidth = %d\n", plfw->lfWidth);
  333. dprintf(" lfw.lfEscapement = %d\n", plfw->lfEscapement);
  334. dprintf(" lfw.lfOrientation = %d\n", plfw->lfOrientation);
  335. dprintf(" lfw.lfWeight = %d = ", plfw->lfWeight);
  336. switch (plfw->lfWeight)
  337. {
  338. case FW_DONTCARE : psz = "FW_DONTCARE "; break;
  339. case FW_THIN : psz = "FW_THIN "; break;
  340. case FW_EXTRALIGHT : psz = "FW_EXTRALIGHT"; break;
  341. case FW_LIGHT : psz = "FW_LIGHT "; break;
  342. case FW_NORMAL : psz = "FW_NORMAL "; break;
  343. case FW_MEDIUM : psz = "FW_MEDIUM "; break;
  344. case FW_SEMIBOLD : psz = "FW_SEMIBOLD "; break;
  345. case FW_BOLD : psz = "FW_BOLD "; break;
  346. case FW_EXTRABOLD : psz = "FW_EXTRABOLD "; break;
  347. case FW_HEAVY : psz = "FW_HEAVY "; break;
  348. default : psz = "NON STANDARD "; break;
  349. }
  350. dprintf("%s\n",psz);
  351. dprintf(" lfw.lfItalic = %-#8lx\n", plfw->lfItalic);
  352. dprintf(" lfw.lfUnderline = %-#8lx\n", plfw->lfUnderline);
  353. dprintf(" lfw.lfStrikeOut = %-#8lx\n", plfw->lfStrikeOut);
  354. //
  355. // lfCharSet
  356. //
  357. dprintf(" lfw.lfCharSet = %-#8lx = ", plfw->lfCharSet);
  358. switch (plfw->lfCharSet)
  359. {
  360. case ANSI_CHARSET : psz = "ANSI_CHARSET" ; break;
  361. case DEFAULT_CHARSET : psz = "DEFAULT_CHARSET" ; break;
  362. case SYMBOL_CHARSET : psz = "SYMBOL_CHARSET" ; break;
  363. case SHIFTJIS_CHARSET : psz = "SHIFTJIS_CHARSET" ; break;
  364. case HANGEUL_CHARSET : psz = "HANGEUL_CHARSET" ; break;
  365. case GB2312_CHARSET : psz = "GB2312_CHARSET" ; break;
  366. case CHINESEBIG5_CHARSET: psz = "CHINESEBIG5_CHARSET" ; break;
  367. case OEM_CHARSET : psz = "OEM_CHARSET" ; break;
  368. case JOHAB_CHARSET : psz = "JOHAB_CHARSET" ; break;
  369. case HEBREW_CHARSET : psz = "HEBREW_CHARSET" ; break;
  370. case ARABIC_CHARSET : psz = "ARABIC_CHARSET" ; break;
  371. case GREEK_CHARSET : psz = "GREEK_CHARSET" ; break;
  372. case TURKISH_CHARSET : psz = "TURKISH_CHARSET" ; break;
  373. case THAI_CHARSET : psz = "THAI_CHARSET" ; break;
  374. case EASTEUROPE_CHARSET : psz = "EASTEUROPE_CHARSET" ; break;
  375. case RUSSIAN_CHARSET : psz = "RUSSIAN_CHARSET" ; break;
  376. case MAC_CHARSET : psz = "MAC_CHARSET" ; break;
  377. case BALTIC_CHARSET : psz = "BALTIC_CHARSET" ; break;
  378. default : psz = "UNKNOWN" ; break;
  379. }
  380. dprintf("%s\n", psz);
  381. //
  382. // lfOutPrecision
  383. //
  384. dprintf(" lfw.lfOutPrecision = %-#8lx = ", plfw->lfOutPrecision);
  385. switch (plfw->lfOutPrecision)
  386. {
  387. case OUT_DEFAULT_PRECIS : psz = "OUT_DEFAULT_PRECIS"; break;
  388. case OUT_STRING_PRECIS : psz = "OUT_STRING_PRECIS"; break;
  389. case OUT_CHARACTER_PRECIS : psz = "OUT_CHARACTER_PRECIS"; break;
  390. case OUT_STROKE_PRECIS : psz = "OUT_STROKE_PRECIS"; break;
  391. case OUT_TT_PRECIS : psz = "OUT_TT_PRECIS"; break;
  392. case OUT_DEVICE_PRECIS : psz = "OUT_DEVICE_PRECIS"; break;
  393. case OUT_RASTER_PRECIS : psz = "OUT_RASTER_PRECIS"; break;
  394. case OUT_TT_ONLY_PRECIS : psz = "OUT_TT_ONLY_PRECIS"; break;
  395. case OUT_OUTLINE_PRECIS : psz = "OUT_OUTLINE_PRECIS"; break;
  396. default : psz = "UNKNOWN"; break;
  397. }
  398. dprintf("%s\n", psz);
  399. //
  400. // lfClipPrecision
  401. //
  402. dprintf(" lfw.lfClipPrecision = %-#8lx", plfw->lfClipPrecision);
  403. switch (plfw->lfClipPrecision & CLIP_MASK)
  404. {
  405. case CLIP_DEFAULT_PRECIS : psz = "CLIP_DEFAULT_PRECIS"; break;
  406. case CLIP_CHARACTER_PRECIS : psz = "CLIP_CHARACTER_PRECIS"; break;
  407. case CLIP_STROKE_PRECIS : psz = "CLIP_STROKE_PRECIS"; break;
  408. default : psz = "UNKNOWN"; break;
  409. }
  410. dprintf(" = %s\n", psz);
  411. if (plfw->lfClipPrecision & CLIP_LH_ANGLES)
  412. {
  413. dprintf(" CLIP_LH_ANGLES\n");
  414. }
  415. if (plfw->lfClipPrecision & CLIP_TT_ALWAYS)
  416. {
  417. dprintf(" CLIP_TT_ALWAYS\n");
  418. }
  419. if (plfw->lfClipPrecision & CLIP_EMBEDDED)
  420. {
  421. dprintf(" CLIP_EMBEDDED\n");
  422. }
  423. //
  424. // lfQuality
  425. //
  426. dprintf(" lfw.lfQuality = %-#8lx", plfw->lfQuality);
  427. switch (plfw->lfQuality)
  428. {
  429. case DEFAULT_QUALITY : psz = "DEFAULT_QUALITY"; break;
  430. case DRAFT_QUALITY : psz = "DRAFT_QUALITY"; break;
  431. case PROOF_QUALITY : psz = "PROOF_QUALITY"; break;
  432. default : psz = "UNKNOWN"; break;
  433. }
  434. dprintf(" = %s\n", psz);
  435. //
  436. // lfPitchAndFamily
  437. //
  438. dprintf(" lfw.lfPitchAndFamily = %-#8lx", plfw->lfPitchAndFamily);
  439. switch (plfw->lfPitchAndFamily & 0xF0)
  440. {
  441. case FF_DONTCARE : psz = "FF_DONTCARE"; break;
  442. case FF_ROMAN : psz = "FF_ROMAN"; break;
  443. case FF_SWISS : psz = "FF_SWISS"; break;
  444. case FF_MODERN : psz = "FF_MODERN"; break;
  445. case FF_SCRIPT : psz = "FF_SCRIPT"; break;
  446. case FF_DECORATIVE : psz = "FF_DECORATIVE"; break;
  447. default : psz = "FF_UNKNOWN"; break;
  448. }
  449. dprintf(" = %s | ", psz);
  450. switch (plfw->lfPitchAndFamily & 0xF)
  451. {
  452. case DEFAULT_PITCH : psz = "DEFAULT_PITCH"; break;
  453. case FIXED_PITCH : psz = "FIXED_PITCH"; break;
  454. case VARIABLE_PITCH : psz = "VARIABLE_PITCH"; break;
  455. default : psz = "UNKNOWN_PITCH"; break;
  456. }
  457. dprintf("%s\n", psz);
  458. //
  459. // lfFaceName
  460. //
  461. dprintf(" lfw.lfFaceName = \"%ws\"\n",plfw->lfFaceName);
  462. }
  463. extern "C" VOID
  464. vPrintENUMLOGFONTEXDVW(
  465. ENUMLOGFONTEXDVW *pelfw
  466. )
  467. {
  468. vPrintLOGFONTW(&pelfw->elfEnumLogfontEx.elfLogFont);
  469. PANOSE *ppan;
  470. dprintf(" elfFullName = \"%ws\"\n", pelfw->elfEnumLogfontEx.elfFullName );
  471. dprintf(" elfStyle = \"%ws\"\n", pelfw->elfEnumLogfontEx.elfStyle );
  472. dprintf(" elfScript = \"%ws\"\n", pelfw->elfEnumLogfontEx.elfScript );
  473. // now print design vector if any...
  474. }
  475. /******************************Public*Routine******************************\
  476. * vPrintFONTOBJ
  477. *
  478. * History:
  479. * Fri 18-Feb-1994 10:23:33 by Kirk Olynyk [kirko]
  480. * Wrote it.
  481. \**************************************************************************/
  482. extern "C" VOID vPrintFONTOBJ(FONTOBJ *pfo)
  483. {
  484. FLONG fl = pfo->flFontType;
  485. dprintf(" iUniq = %d\n", pfo->iUniq );
  486. dprintf(" iFace = %d\n", pfo->iFace );
  487. dprintf(" cxMax = %d\n", pfo->cxMax );
  488. dprintf(" flFontType = %x\n", fl );
  489. if (fl & FO_TYPE_RASTER)
  490. dprintf(" FO_TYPE_RASTER\n");
  491. if (fl & FO_TYPE_DEVICE)
  492. dprintf(" FO_TYPE_DEVICE\n");
  493. if (fl & FO_TYPE_TRUETYPE)
  494. dprintf(" FO_TYPE_TRUETYPE\n");
  495. if (fl & FO_SIM_BOLD)
  496. dprintf(" FO_SIM_BOLD\n");
  497. if (fl & FO_SIM_ITALIC)
  498. dprintf(" FO_SIM_ITALIC\n");
  499. if (fl & FO_EM_HEIGHT)
  500. dprintf(" FO_EM_HEIGHT\n");
  501. dprintf(" iTTUniq = %d\n", pfo->iTTUniq );
  502. dprintf(" iFile = %d\n", pfo->iFile );
  503. dprintf( " sizLogResPpi= (%d,%d)\n"
  504. , pfo->sizLogResPpi.cx
  505. , pfo->sizLogResPpi.cy
  506. );
  507. dprintf(" ulStyleSize = %u\n", pfo->ulStyleSize);
  508. dprintf(" pvConsumer = %-#8x\n", pfo->pvConsumer);
  509. dprintf(" pvProducer = %-#8x\n", pfo->pvProducer);
  510. }
  511. /******************************Public*Routine******************************\
  512. * vPrintEXTFONTOBJ
  513. *
  514. * History:
  515. * Fri 18-Feb-1994 11:19:44 by Kirk Olynyk [kirko]
  516. * Wrote it.
  517. \**************************************************************************/
  518. extern "C" VOID vPrintEXTFONTOBJ(EXTFONTOBJ *pefo)
  519. {
  520. vPrintFONTOBJ(&(pefo->fobj));
  521. dprintf("*** BEGIN GDI INTERNAL STRUCTURE ***\n");
  522. }
  523. /******************************Public*Routine******************************\
  524. * vPrintFLOAT
  525. *
  526. * History:
  527. * Mon 29-Aug-1994 11:51:17 by Kirk Olynyk [kirko]
  528. * Wrote it.
  529. \**************************************************************************/
  530. extern "C" VOID vPrintFLOAT(FLOATL l_e)
  531. {
  532. dprintf("%#+12.6f", l_e);
  533. }
  534. /******************************Public*Routine******************************\
  535. * vPrintFD_XFORM(FD_XFORM
  536. *
  537. * History:
  538. * Mon 29-Aug-1994 11:50:52 by Kirk Olynyk [kirko]
  539. * Wrote it.
  540. \**************************************************************************/
  541. extern "C" VOID vPrintFD_XFORM(FD_XFORM *pfdx, char * psz)
  542. {
  543. dprintf("%seXX = ",psz); vPrintFLOAT(pfdx->eXX); dprintf("\n");
  544. dprintf("%seXY = ",psz); vPrintFLOAT(pfdx->eXY); dprintf("\n");
  545. dprintf("%seYX = ",psz); vPrintFLOAT(pfdx->eYX); dprintf("\n");
  546. dprintf("%seYY = ",psz); vPrintFLOAT(pfdx->eYY); dprintf("\n");
  547. }
  548. /**********w********************Public*Routine******************************\
  549. * vPrintFD_REALIZEEXTRA
  550. *
  551. * History:
  552. * Mon 29-Aug-1994 11:50:29 by Kirk Olynyk [kirko]
  553. * Wrote it.
  554. \**************************************************************************/
  555. //extern "C" VOID
  556. //vPrintFD_REALIZEEXTRA(FD_REALIZEEXTRA *p, char *psz)
  557. //{
  558. // dprintf(" fdxQuantized =\n",psz);
  559. // vPrintFD_XFORM(&(p->fdxQuantized), psz);
  560. // dprintf("%slExtLeading = %d\n", psz, p->lExtLeading);
  561. // dprintf("%salReserved = \n%s\t[%d]\n%s\t[%d]\n%s\t[%d]\n%s\t[%d]\n"
  562. // , psz
  563. // , psz
  564. // , p->alReserved[0]
  565. // , psz
  566. // , p->alReserved[1]
  567. // , psz
  568. // , p->alReserved[2]
  569. // , psz
  570. // , p->alReserved[3]
  571. // );
  572. //}
  573. /******************************Public*Routine******************************\
  574. * vPrintEFLOAT
  575. *
  576. * History:
  577. * Mon 29-Aug-1994 11:49:57 by Kirk Olynyk [kirko]
  578. * Wrote it.
  579. \**************************************************************************/
  580. extern "C" VOID vPrintEFLOAT(EFLOAT *pef)
  581. {
  582. FLOATL l_e;
  583. pef->vEfToF(l_e);
  584. vPrintFLOAT(l_e);
  585. }
  586. /******************************Public*Routine******************************\
  587. * vPrintFIX
  588. *
  589. * History:
  590. * Mon 29-Aug-1994 11:49:47 by Kirk Olynyk [kirko]
  591. * Wrote it.
  592. \**************************************************************************/
  593. extern "C" VOID vPrintFIX(FIX fx)
  594. {
  595. dprintf("%-#x%x",fx>>4, fx & 0xf);
  596. }
  597. /******************************Public*Routine******************************\
  598. * vPrintMATRIX
  599. *
  600. * History:
  601. * Mon 29-Aug-1994 11:49:27 by Kirk Olynyk [kirko]
  602. * Wrote it.
  603. \**************************************************************************/
  604. extern "C" VOID vPrintMATRIX( MATRIX *pmx, char *psz)
  605. {
  606. FLONG fl = pmx->flAccel;
  607. if (!psz) psz = "";
  608. dprintf("%sefM11 = ",psz); vPrintEFLOAT(&(pmx->efM11)); dprintf("\n");
  609. dprintf("%sefM12 = ",psz); vPrintEFLOAT(&(pmx->efM12)); dprintf("\n");
  610. dprintf("%sefM21 = ",psz); vPrintEFLOAT(&(pmx->efM21)); dprintf("\n");
  611. dprintf("%sefM22 = ",psz); vPrintEFLOAT(&(pmx->efM22)); dprintf("\n");
  612. dprintf("%sefDx = ",psz); vPrintEFLOAT(&(pmx->efDx )); dprintf("\n");
  613. dprintf("%sefDy = ",psz); vPrintEFLOAT(&(pmx->efDy )); dprintf("\n");
  614. dprintf("%sfxDx = ",psz); vPrintFIX(pmx->fxDx); dprintf("\n");
  615. dprintf("%sfxDy = ",psz); vPrintFIX(pmx->fxDy); dprintf("\n");
  616. dprintf(" flAccel = %-#8x\n", fl);
  617. if (fl & XFORM_SCALE) dprintf("%sXFORM_SCALE\n" ,psz);
  618. if (fl & XFORM_UNITY) dprintf("%sXFORM_UNITY\n" ,psz);
  619. if (fl & XFORM_Y_NEG) dprintf("%sXFORM_Y_NEG\n" ,psz);
  620. if (fl & XFORM_FORMAT_LTOFX) dprintf("%sXFORM_FORMAT_LTOFX\n" ,psz);
  621. if (fl & XFORM_FORMAT_FXTOL) dprintf("%sXFORM_FORMAT_FXTOL\n" ,psz);
  622. if (fl & XFORM_FORMAT_LTOL) dprintf("%sXFORM_FORMAT_LTOL\n" ,psz);
  623. if (fl & XFORM_NO_TRANSLATION) dprintf("%sXFORM_NO_TRANSLATION\n",psz);
  624. }
  625. /******************************Public*Routine******************************\
  626. * vPrintCACHE
  627. *
  628. * History:
  629. * Mon 29-Aug-1994 11:49:12 by Kirk Olynyk [kirko]
  630. * Wrote it.
  631. \**************************************************************************/
  632. extern "C" VOID vPrintCACHE(CACHE *pc, char *psz)
  633. {
  634. dprintf("%spgdNext = %-#x\n", psz, pc->pgdNext );
  635. dprintf("%spgdThreshold = %-#x\n", psz, pc->pgdThreshold);
  636. dprintf("%spgdFirstBlockEnd = %-#x\n", psz, pc->pjFirstBlockEnd );
  637. dprintf("%scjbbl = %u\n", psz, pc->cjbbl);
  638. dprintf("%scBlocksMax = %u\n", psz, pc->cBlocksMax);
  639. dprintf("%scBlocks = %u\n", psz, pc->cBlocks);
  640. dprintf("%scGlyphs = %u\n", psz, pc->cGlyphs);
  641. dprintf("%scMetrics = %u\n", psz, pc->cMetrics);
  642. dprintf("%spbblBase = %-#x\n", psz, pc->pbblBase);
  643. dprintf("%spbblCur = %-#x\n", psz, pc->pbblCur);
  644. dprintf("%spgbNext = %-#x\n", psz, pc->pgbNext);
  645. dprintf("%spgbThreshold = %-#x\n", psz, pc->pgbThreshold);
  646. dprintf("%spjAuxCacheMem= %-#x\n", psz, pc->pjAuxCacheMem);
  647. dprintf("%scjAuxCacheMem= %u\n" , psz, pc->cjAuxCacheMem);
  648. dprintf("%scjGlyphMax = %u\n" , psz, pc->cjGlyphMax);
  649. dprintf("%sbSmallMetrics= %u\n" , psz, pc->bSmallMetrics);
  650. }
  651. /******************************Public*Routine******************************\
  652. * vPrintflInfo
  653. *
  654. * History:
  655. * Mon 29-Aug-1994 11:51:48 by Kirk Olynyk [kirko]
  656. * Wrote it.
  657. \**************************************************************************/
  658. extern "C" VOID vPrintflInfo(FLONG flInfo, char *psz)
  659. {
  660. if (FM_INFO_TECH_TRUETYPE & flInfo)
  661. dprintf("%s FM_INFO_TECH_TRUETYPE\n",psz);
  662. if (FM_INFO_TECH_BITMAP & flInfo)
  663. dprintf("%s FM_INFO_TECH_BITMAP\n",psz);
  664. if (FM_INFO_TECH_STROKE & flInfo)
  665. dprintf("%s FM_INFO_TECH_STROKE\n",psz);
  666. if (FM_INFO_TECH_OUTLINE_NOT_TRUETYPE & flInfo)
  667. dprintf("%s FM_INFO__OUTLINE_NOT_TRUETYPE\n",psz);
  668. if (FM_INFO_ARB_XFORMS & flInfo)
  669. dprintf("%s FM_INFO_ARB_XFORMS\n",psz);
  670. if (FM_INFO_1BPP & flInfo)
  671. dprintf("%s FM_INFO_1BPP\n",psz);
  672. if (FM_INFO_4BPP & flInfo)
  673. dprintf("%s FM_INFO_4BPP\n",psz);
  674. if (FM_INFO_8BPP & flInfo)
  675. dprintf("%s FM_INFO_8BPP\n",psz);
  676. if (FM_INFO_16BPP & flInfo)
  677. dprintf("%s FM_INFO_16BPP\n",psz);
  678. if (FM_INFO_24BPP & flInfo)
  679. dprintf("%s FM_INFO_24BPP\n",psz);
  680. if (FM_INFO_32BPP & flInfo)
  681. dprintf("%s FM_INFO_32BPP\n",psz);
  682. if (FM_INFO_INTEGER_WIDTH & flInfo)
  683. dprintf("%s FM_INFO_INTEGER_WIDTH\n",psz);
  684. if (FM_INFO_CONSTANT_WIDTH & flInfo)
  685. dprintf("%s FM_INFO_CONSTANT_WIDTH\n",psz);
  686. if (FM_INFO_NOT_CONTIGUOUS & flInfo)
  687. dprintf("%s FM_INFO_NOT_CONTIGUOUS\n",psz);
  688. if (FM_INFO_TECH_MM & flInfo)
  689. dprintf("%s FM_INFO_TECH_MM\n",psz);
  690. if (FM_INFO_RETURNS_OUTLINES & flInfo)
  691. dprintf("%s FM_INFO_RETURNS_OUTLINES\n",psz);
  692. if (FM_INFO_RETURNS_STROKES & flInfo)
  693. dprintf("%s FM_INFO_RETURNS_STROKES\n",psz);
  694. if (FM_INFO_RETURNS_BITMAPS & flInfo)
  695. dprintf("%s FM_INFO_RETURNS_BITMAPS\n",psz);
  696. if (FM_INFO_DSIG & flInfo)
  697. dprintf("%s FM_INFO_DSIG\n",psz);
  698. if (FM_INFO_RIGHT_HANDED & flInfo)
  699. dprintf("%s FM_INFO_RIGHT_HANDED\n",psz);
  700. if (FM_INFO_INTEGRAL_SCALING & flInfo)
  701. dprintf("%s FM_INFO_INTEGRAL_SCALING\n",psz);
  702. if (FM_INFO_90DEGREE_ROTATIONS & flInfo)
  703. dprintf("%s FM_INFO_90DEGREE_ROTATIONS\n",psz);
  704. if (FM_INFO_OPTICALLY_FIXED_PITCH & flInfo)
  705. dprintf("%s FM_INFO_OPTICALLY_FIXED_PITCH\n",psz);
  706. if (FM_INFO_DO_NOT_ENUMERATE & flInfo)
  707. dprintf("%s INFO_DO_NOT_ENUMERATE\n",psz);
  708. if (FM_INFO_ISOTROPIC_SCALING_ONLY & flInfo)
  709. dprintf("%s FM_INSOTROPIC_SCALING_ONLY\n",psz);
  710. if (FM_INFO_ANISOTROPIC_SCALING_ONLY & flInfo)
  711. dprintf("%s FM_INFOSOTROPIC_SCALING_ONLY\n",psz);
  712. if (FM_INFO_TECH_CFF & flInfo)
  713. dprintf("%s FM_INFO_TECH_CFF\n",psz);
  714. if (FM_INFO_FAMILY_EQUIV & flInfo)
  715. dprintf("%s FM_INFO_FAMILY_EQUIV\n",psz);
  716. }
  717. /******************************Public*Routine******************************\
  718. * vPrintRFONT
  719. *
  720. * History:
  721. * Fri 18-Feb-1994 11:26:10 by Kirk Olynyk [kirko]
  722. * Wrote it.
  723. \**************************************************************************/
  724. extern "C" VOID vPrintRFONT(VOID *pvIn)
  725. {
  726. RFONT *prf = (RFONT*) pvIn;
  727. vPrintEXTFONTOBJ((EXTFONTOBJ*) prf);
  728. dprintf(" iUnique = %d\n", prf->iUnique);
  729. dprintf(" flType = %d = ",prf->flType);
  730. if (prf->flType & ~(RFONT_TYPE_NOCACHE | RFONT_TYPE_MASK))
  731. {
  732. dprintf("ERROR!!! UNKNOWN TYPE\n");
  733. }
  734. else
  735. {
  736. if (prf->flType & RFONT_TYPE_NOCACHE)
  737. {
  738. dprintf("RFONT_TYPE_NOCACHE\n");
  739. }
  740. switch (prf->flType & RFONT_TYPE_MASK)
  741. {
  742. case RFONT_TYPE_HGLYPH: dprintf("RFONT_TYPE_HGLYPH \n"); break;
  743. case RFONT_TYPE_UNICODE: dprintf("RFONT_TYPE_UNICODE\n"); break;
  744. default: dprintf("RFONT_TYPE_???????\n"); break;
  745. }
  746. }
  747. dprintf(" ulContent = %d = ", prf->ulContent);
  748. switch (prf->ulContent)
  749. {
  750. case RFONT_CONTENT_METRICS: dprintf("RFONT_CONTENT_METRICS\n"); break;
  751. case RFONT_CONTENT_BITMAPS: dprintf("RFONT_CONTENT_BITMAPS\n"); break;
  752. case RFONT_CONTENT_PATHS: dprintf("RFONT_CONTENT_PATHS\n"); break;
  753. default: dprintf("ERROR!!! UNKNOWN TYPE\n");
  754. }
  755. dprintf(" hdevProducer = %-#8x\n", prf->hdevProducer);
  756. dprintf(" bDeviceFont = %d\n", prf->bDeviceFont);
  757. dprintf(" hdevConsumer = %-#8x\n", prf->hdevConsumer);
  758. dprintf(" dhpdev = %-#8x\n", prf->dhpdev);
  759. dprintf(" ppfe = %-#8x\n", prf->ppfe);
  760. dprintf(" pPFF = %-#8x\n", prf->pPFF);
  761. dprintf(" fdx = \n");
  762. vPrintFD_XFORM(&(prf->fdx), "\t\t");
  763. dprintf(" cBitsPerPel = %d\n", prf->cBitsPerPel);
  764. dprintf(" mxWorldToDevice =\n");
  765. vPrintMATRIX(&(prf->mxWorldToDevice), "\t");
  766. dprintf(" iGraphicsMode = %d\n", prf->iGraphicsMode);
  767. {
  768. dprintf(" eptflNtoWScale = ");
  769. vPrintEFLOAT(&(prf->eptflNtoWScale.x));
  770. dprintf(", ");
  771. vPrintEFLOAT(&(prf->eptflNtoWScale.y));
  772. dprintf("\n");
  773. }
  774. dprintf(" bNtoWIdent = %d\n", prf->bNtoWIdent);
  775. dprintf(" xoForDDI.pmx = %-#8x\n", prf->xoForDDI.pmx);
  776. dprintf(" xoForDDI.ulMode = %u\n", prf->xoForDDI.ulMode);
  777. dprintf(" mxForDDI =\n");
  778. vPrintMATRIX(&(prf->mxForDDI), "\t");
  779. dprintf(" flRealizedType =\n");
  780. if (prf->flRealizedType & SO_FLAG_DEFAULT_PLACEMENT)
  781. dprintf("\t\tSO_FLAG_DEFAULT_PLACEMENT\n");
  782. if (prf->flRealizedType & SO_HORIZONTAL)
  783. dprintf("\t\tSO_HORIZONTAL\n");
  784. if (prf->flRealizedType & SO_VERTICAL)
  785. dprintf("\t\tSO_VERTICAL\n");
  786. if (prf->flRealizedType & SO_REVERSED)
  787. dprintf("\t\tSO_REVERSED\n");
  788. if (prf->flRealizedType & SO_ZERO_BEARINGS)
  789. dprintf("\t\tSO_ZERO_BEARINGS\n");
  790. if (prf->flRealizedType & SO_CHAR_INC_EQUAL_BM_BASE)
  791. dprintf("\t\tSO_CHAR_INC_EQUAL_BM_BASE\n");
  792. if (prf->flRealizedType & SO_MAXEXT_EQUAL_BM_SIDE)
  793. dprintf("\t\tSO_MAXEXT_EQUAL_BM_SIDE\n");
  794. dprintf(" ptlUnderline1 = (%d,%d)\n"
  795. , prf->ptlUnderline1.x
  796. , prf->ptlUnderline1.y);
  797. dprintf(" ptlStrikeOut = (%d,%d)\n"
  798. , prf->ptlStrikeOut.x
  799. , prf->ptlStrikeOut.y);
  800. dprintf(" ptlULThickness = (%d,%d)\n"
  801. , prf->ptlULThickness.x
  802. , prf->ptlULThickness.y);
  803. dprintf(" ptlSOThickness = (%d,%d)\n"
  804. , prf->ptlSOThickness.x
  805. , prf->ptlSOThickness.y);
  806. dprintf(" lCharInc = %d\n", prf->lCharInc);
  807. dprintf(" fxMaxAscent = "); vPrintFIX(prf->fxMaxAscent); dprintf("\n");
  808. dprintf(" fxMaxDescent = "); vPrintFIX(prf->fxMaxDescent); dprintf("\n");
  809. dprintf(" fxMaxExtent = "); vPrintFIX(prf->fxMaxExtent); dprintf("\n");
  810. dprintf(" cxMax = %u\n", prf->cxMax);
  811. dprintf(" lMaxAscent = %d\n", prf->lMaxAscent);
  812. dprintf(" lMaxHeight = %d\n", prf->lMaxHeight);
  813. dprintf(" ulOrientation = %u\n", prf->ulOrientation);
  814. dprintf(" pteUnitBase = (");
  815. vPrintEFLOAT(&(prf->pteUnitBase.x));
  816. dprintf(",");
  817. vPrintEFLOAT(&(prf->pteUnitBase.y));
  818. dprintf(")\n");
  819. dprintf(" efWtoDBase = ");
  820. vPrintEFLOAT(&(prf->efWtoDBase));
  821. dprintf("\n");
  822. dprintf(" efDtoWBase = ");
  823. vPrintEFLOAT(&(prf->efDtoWBase));
  824. dprintf("\n");
  825. dprintf(" lAscent = %d\n", prf->lAscent);
  826. dprintf(" pteUnitAscent = (");
  827. vPrintEFLOAT(&(prf->pteUnitAscent.x));
  828. dprintf(",");
  829. vPrintEFLOAT(&(prf->pteUnitAscent.y));
  830. dprintf(")\n");
  831. dprintf(" efWtoDAscent = ");
  832. vPrintEFLOAT(&(prf->efWtoDAscent));
  833. dprintf("\n");
  834. dprintf(" efDtoWAscent = ");
  835. vPrintEFLOAT(&(prf->efDtoWAscent));
  836. dprintf("\n");
  837. dprintf(" lEscapement = %d\n", prf->lEscapement);
  838. dprintf(" pteUnitEsc = (");
  839. vPrintEFLOAT(&(prf->pteUnitEsc.x));
  840. dprintf(",");
  841. vPrintEFLOAT(&(prf->pteUnitEsc.y));
  842. dprintf(")\n");
  843. dprintf(" efWtoDEsc = ");
  844. vPrintEFLOAT(&(prf->efWtoDEsc));
  845. dprintf("\n");
  846. dprintf(" efDtoWEsc = ");
  847. vPrintEFLOAT(&(prf->efDtoWEsc));
  848. dprintf("\n");
  849. dprintf(" efEscToBase = ");
  850. vPrintEFLOAT(&(prf->efEscToBase));
  851. dprintf("\n");
  852. dprintf(" efEscToAscent = ");
  853. vPrintEFLOAT(&(prf->efEscToAscent));
  854. dprintf("\n");
  855. dprintf(" flInfo = %-#8lx\n" , prf->flInfo);
  856. vPrintflInfo(prf->flInfo, "\t\t");
  857. //dprintf(" wcDefault = %u\n", prf->wcDefault);
  858. dprintf(" hgDefault = %-#x\n", prf->hgDefault);
  859. dprintf(" hgBreak = %-#x\n", prf->hgBreak);
  860. dprintf(" fxBreak = "); vPrintFIX(prf->fxBreak); dprintf("\n");
  861. dprintf(" pfdg = %-#x\n", prf->pfdg);
  862. dprintf(" wcgp = %-#x\n", prf->wcgp);
  863. dprintf(" cSelected = %d\n", prf->cSelected);
  864. dprintf(" rflPDEV.prfntPrev = %-#x\n", prf->rflPDEV.prfntPrev);
  865. dprintf(" rflPDEV.prfntNext = %-#x\n", prf->rflPDEV.prfntNext);
  866. dprintf(" rflPFF.prfntPrev = %-#x\n", prf->rflPFF.prfntPrev);
  867. dprintf(" rflPFF.prfntNext = %-#x\n", prf->rflPFF.prfntNext);
  868. dprintf(" cache =\n");
  869. vPrintCACHE(&(prf->cache),"\t");
  870. dprintf(" ptlSim = (%d,%d)\n", prf->ptlSim.x, prf->ptlSim.y);
  871. dprintf(" bNeededPaths = %d\n", prf->bNeededPaths);
  872. dprintf(" reExtra =\n");
  873. //vPrintFD_REALIZEEXTRA(&(prf->reExtra),"\t\t");
  874. dprintf(" efDtoWBase_31 = "); vPrintEFLOAT(&(prf->efDtoWBase_31)); dprintf("\n");
  875. dprintf(" efDtoWAscent_31 = "); vPrintEFLOAT(&(prf->efDtoWAscent_31)); dprintf("\n");
  876. }
  877. /******************************Public*Routine******************************\
  878. * vPrintPFT
  879. *
  880. * Print Physical Font Table
  881. *
  882. * History:
  883. * Mon 29-Aug-1994 10:26:56 by Kirk Olynyk [kirko]
  884. * Wrote it.
  885. \**************************************************************************/
  886. extern "C" VOID vPrintPFT(PFT *pPFT)
  887. {
  888. unsigned i;
  889. dprintf("\tpfhFamily = %-#x\n", pPFT->pfhFamily);
  890. dprintf("\tpfhFace = %-#x\n", pPFT->pfhFace );
  891. dprintf("\tcBuckets = %u\n", pPFT->cBuckets);
  892. dprintf("\tcFiles = %u\n", pPFT->cFiles);
  893. for (i = 0; i < pPFT->cBuckets; i++)
  894. {
  895. PFF *pPFF = pPFT->apPFF[i];
  896. if (pPFF)
  897. {
  898. // print the head of the chain
  899. dprintf("\tapPFF[%u] = %-#x\n", i, pPFF);
  900. while (pPFF)
  901. {
  902. // the colliding PFF pointers are printed
  903. // on subsequent lines and are indented
  904. // from the PFF pointer at the head of the list
  905. pPFF = pPFF->pPFFNext;
  906. dprintf("\t = %-#x\n", pPFF);
  907. }
  908. }
  909. }
  910. dprintf("\n\n");
  911. }
  912. /******************************Public*Routine******************************\
  913. * vPrintPFF
  914. *
  915. * Dumps the contents of a PFF object via the specified output routine.
  916. *
  917. * History:
  918. * 05-May-1993 -by- Gilman Wong [gilmanw]
  919. * Wrote it.
  920. \**************************************************************************/
  921. extern "C" VOID vPrintPFF (VOID *pv)
  922. {
  923. PFF *pPFF = (PFF*) pv;
  924. PFE **ppPFE, **ppPFE_;
  925. ULONG ul;
  926. ULONG ulMax = pPFF->cFonts;
  927. dprintf(" sizeofThis = %u\n", pPFF->sizeofThis);
  928. dprintf(" pPFFNext = %-#x\n", pPFF->pPFFNext );
  929. dprintf(" pPFFPrev = %-#x\n", pPFF->pPFFPrev );
  930. dprintf(" *pwszPathname_= \"%ws\"\n", pPFF->pwszPathname_);
  931. dprintf(" flState = %-#x\n", pPFF->flState );
  932. if (pPFF->flState & PFF_STATE_READY2DIE)
  933. dprintf(" PFF_STATE_READY2DIE\n");
  934. if (pPFF->flState & PFF_STATE_PERMANENT_FONT)
  935. dprintf(" PFF_STATE_PERMANENT_FONT\n");
  936. if (pPFF->flState & PFF_STATE_NETREMOTE_FONT)
  937. dprintf(" PFF_STATE_NETREMOTE_FONT\n");
  938. if (pPFF->flState & PFF_STATE_DCREMOTE_FONT)
  939. dprintf(" PFF_STATE_DCREMOTE_FONT\n");
  940. if (pPFF->flState & PFF_STATE_EUDC_FONT)
  941. dprintf(" PFF_STATE_EUDC_FONT\n");
  942. if (pPFF->flState & ~(PFF_STATE_READY2DIE | PFF_STATE_PERMANENT_FONT | PFF_STATE_NETREMOTE_FONT | PFF_STATE_EUDC_FONT | PFF_STATE_MEMORY_FONT | PFF_STATE_DCREMOTE_FONT))
  943. dprintf(" UNKNOWN FLAG\n");
  944. dprintf(" cLoaded = %u\n" , pPFF->cLoaded );
  945. dprintf(" cNotEnum = %u\n" , pPFF->cNotEnum );
  946. dprintf(" pPvtDataHead = %-#x\n", pPFF->pPvtDataHead);
  947. dprintf(" cRFONT = %u\n" , pPFF->cRFONT );
  948. dprintf(" prfntList = %-#x\n", pPFF->prfntList );
  949. dprintf(" hff = %-#x\n", pPFF->hff );
  950. if (pPFF->hff == 0)
  951. dprintf(" DEVICE PFF\n");
  952. dprintf(" hdev = %-#x\n", pPFF->hdev );
  953. // dprintf(" dhpdev = %-#x\n", pPFF->dhpdev );
  954. dprintf(" pfhFace = %-#x\n", pPFF->pfhFace );
  955. dprintf(" pfhFamily = %-#x\n", pPFF->pfhFamily );
  956. dprintf(" pPFT = %-#x\n", pPFF->pPFT );
  957. dprintf(" cFonts = %u\n" , pPFF->cFonts );
  958. for (ppPFE = (PFE **) &(pPFF->aulData[0]), ul = 0; ul < ulMax; ul++)
  959. {
  960. dprintf(" apPFE[%u] = %-#x\n", ul, ppPFE[ul]);
  961. }
  962. //if (pPFF->cFonts > gulTableLimit)
  963. // dprintf("Table exceeds set limit. Edit gulTableLimit to change.\n");
  964. }
  965. /******************************Public*Routine******************************\
  966. * vPrintWCRUN
  967. *
  968. * History:
  969. * Sat 31-Oct-1992 05:57:36 by Kirk Olynyk [kirko]
  970. * Wrote it.
  971. \**************************************************************************/
  972. extern "C" VOID vPrintWCRUN(WCRUN *pwcr)
  973. {
  974. DbgPrint("\n vPrintWCRUN");
  975. DbgPrint("\n pwcr = %-#8lx", pwcr);
  976. DbgPrint("\n cGlyphs = %d", pwcr->cGlyphs);
  977. DbgPrint("\n wcLow = %-#6lx", pwcr->wcLow);
  978. DbgPrint("\n phg = %-#8lx", pwcr->phg);
  979. WCHAR wc = pwcr->wcLow;
  980. HGLYPH *phg = pwcr->phg;
  981. HGLYPH *phgSup = phg + pwcr->cGlyphs;
  982. if (phg)
  983. {
  984. for (;phg < phgSup; phg += 1, wc += 1)
  985. {
  986. DbgPrint("\n %-#6lx %-#8lx", wc, *phg);
  987. }
  988. }
  989. DbgPrint("\n");
  990. }
  991. /******************************Member*Function*****************************\
  992. * RFONTOBJ::vPrintFD_GLYPHSET
  993. *
  994. * History:
  995. * Sat 31-Oct-1992 05:58:01 by Kirk Olynyk [kirko]
  996. * Wrote it.
  997. \**************************************************************************/
  998. extern "C" VOID RFONTOBJ::vPrintFD_GLYPHSET()
  999. {
  1000. FD_GLYPHSET *pfdg = prfnt->pfdg;
  1001. DbgPrint("\nRFONTOBJ::vPrintFD_GLYPHSET()");
  1002. DbgPrint("\n pfdg = %-#8lx", pfdg);
  1003. if (pfdg == 0)
  1004. {
  1005. DbgPrint("\n");
  1006. return;
  1007. }
  1008. DbgPrint("\n cjThis = %-#8lx", pfdg->cjThis);
  1009. DbgPrint("\n flAccel = %-#8lx", pfdg->flAccel);
  1010. DbgPrint("\n cGlyphsSupported = %d", pfdg->cGlyphsSupported);
  1011. DbgPrint("\n cRuns = %d", pfdg->cRuns);
  1012. for (
  1013. WCRUN *pwcr = pfdg->awcrun;
  1014. pwcr < pfdg->awcrun + pfdg->cRuns;
  1015. pwcr++
  1016. )
  1017. {
  1018. vPrintWCRUN(pwcr);
  1019. }
  1020. }
  1021. /******************************Public*Routine******************************\
  1022. * vPrintOUTLINETEXTMETRIC
  1023. *
  1024. * History:
  1025. * Tue 08-Dec-1992 11:34:10 by Kirk Olynyk [kirko]
  1026. * Wrote it.
  1027. \**************************************************************************/
  1028. extern "C" VOID
  1029. vPrintOUTLINETEXTMETRICW(
  1030. OUTLINETEXTMETRICW *p )
  1031. {
  1032. PANOSE *ppan = &(p->otmPanoseNumber);
  1033. dprintf(" otmSize = %d\n", p->otmSize );
  1034. vPrintTEXTMETRICW(&(p->otmTextMetrics) );
  1035. dprintf(" otmFiller = %-#4x\n", p->otmFiller );
  1036. dprintf(" otmPanoseNumber = {%02x,%02x,%02x,%02x,%02x,%02x,%02x,%02x,%02x,%02x}\n"
  1037. , ppan->bFamilyType
  1038. , ppan->bSerifStyle
  1039. , ppan->bWeight
  1040. , ppan->bProportion
  1041. , ppan->bContrast
  1042. , ppan->bStrokeVariation
  1043. , ppan->bArmStyle
  1044. , ppan->bLetterform
  1045. , ppan->bMidline
  1046. , ppan->bXHeight );
  1047. dprintf(" otmfsSelection = %-#8lx\n", p->otmfsSelection );
  1048. dprintf(" otmfsType = %-#8lx\n", p->otmfsType );
  1049. dprintf(" otmsCharSlopeRise = %d\n" , p->otmsCharSlopeRise );
  1050. dprintf(" otmsCharSlopeRun = %d\n" , p->otmsCharSlopeRun );
  1051. dprintf(" otmItalicAngle = %d\n" , p->otmItalicAngle );
  1052. dprintf(" otmEMSquare = %d\n" , p->otmEMSquare );
  1053. dprintf(" otmAscent = %d\n" , p->otmAscent );
  1054. dprintf(" otmDescent = %d\n" , p->otmDescent );
  1055. dprintf(" otmLineGap = %d\n" , p->otmLineGap );
  1056. dprintf(" otmsCapEmHeight = %d\n" , p->otmsCapEmHeight );
  1057. dprintf(" otmsXHeight = %d\n" , p->otmsXHeight );
  1058. dprintf(" otmrcFontBox = %d %d %d %d\n"
  1059. , p->otmrcFontBox.left
  1060. , p->otmrcFontBox.top
  1061. , p->otmrcFontBox.right
  1062. , p->otmrcFontBox.bottom );
  1063. dprintf(" otmMacAscent = %d\n" , p->otmMacAscent );
  1064. dprintf(" otmMacDescent = %d\n" , p->otmMacDescent );
  1065. dprintf(" otmMacLineGap = %d\n" , p->otmMacLineGap );
  1066. dprintf(" otmusMinimumPPEM = %d\n" , p->otmusMinimumPPEM );
  1067. dprintf(" otmptSubscriptSize = %d %d\n" , p->otmptSubscriptSize.x , p->otmptSubscriptSize.y );
  1068. dprintf(" otmptSubscriptOffset = %d %d\n" , p->otmptSubscriptOffset.x , p->otmptSubscriptOffset.y );
  1069. dprintf(" otmptSuperscriptSize = %d %d\n" , p->otmptSuperscriptSize.x , p->otmptSuperscriptSize.y );
  1070. dprintf(" otmptSuperscriptOffset = %d %d\n" , p->otmptSuperscriptOffset.x, p->otmptSuperscriptOffset.y );
  1071. dprintf(" otmsStrikeoutSize = %d\n" , p->otmsStrikeoutSize );
  1072. dprintf(" otmsStrikeoutPosition = %d\n" , p->otmsStrikeoutPosition );
  1073. dprintf(" otmsUnderscoreSize = %d\n" , p->otmsUnderscoreSize );
  1074. dprintf(" otmsUnderscorePosition = %d\n" , p->otmsUnderscorePosition );
  1075. if (p->otmpFamilyName)
  1076. {
  1077. dprintf(
  1078. " otmpFamilyName = \"%ws\"\n" ,
  1079. (WCHAR*) ((BYTE*)p + (ULONG)(ULONG_PTR) p->otmpFamilyName)
  1080. );
  1081. }
  1082. if (p->otmpFaceName)
  1083. {
  1084. dprintf(
  1085. " otmpFaceName = \"%ws\"\n" ,
  1086. (WCHAR*) ((BYTE*)p + (ULONG)(ULONG_PTR) p->otmpFaceName)
  1087. );
  1088. }
  1089. if (p->otmpStyleName)
  1090. {
  1091. dprintf(
  1092. " otmpStyleName = \"%ws\"\n" ,
  1093. (WCHAR*) ((BYTE*)p + (ULONG)(ULONG_PTR) p->otmpStyleName)
  1094. );
  1095. }
  1096. if (p->otmpFullName)
  1097. {
  1098. dprintf(
  1099. " otmpFullName = \"%ws\"\n" ,
  1100. (WCHAR*) ((BYTE*)p + (ULONG)(ULONG_PTR) p->otmpFullName)
  1101. );
  1102. }
  1103. }
  1104. /******************************Public*Routine******************************\
  1105. * vPrintPFE *
  1106. * *
  1107. * Dumps the contents of a PFE to a specified output routine. *
  1108. * *
  1109. * History: *
  1110. * Sat 06-Jun-1992 21:19:31 by Kirk Olynyk [kirko] *
  1111. * Wrote it. *
  1112. \**************************************************************************/
  1113. #ifdef FONTLINK
  1114. extern "C" VOID vPrintQUICKLOOKUP(QUICKLOOKUP *pql)
  1115. {
  1116. dprintf(" ql.wcLow = %-#x\n" , pql->wcLow);
  1117. dprintf(" ql.wcHigh = %-#x\n" , pql->wcHigh);
  1118. dprintf(" ql.puiBits = %-#x\n", pql->puiBits);
  1119. }
  1120. #endif
  1121. extern "C" VOID vPrintPFE(VOID *pv)
  1122. {
  1123. PFE *ppfe = (PFE*) pv;
  1124. ULONG *pul = (ULONG *)pv;
  1125. dprintf(" ppfe = %-#x\n",ppfe );
  1126. dprintf(" pPFF = %-#x\n",ppfe->pPFF );
  1127. dprintf(" iFont = %-#x\n",ppfe->iFont );
  1128. dprintf(" flPFE = %-#x\n", ppfe->flPFE );
  1129. if (ppfe->flPFE & PFE_DEVICEFONT)
  1130. dprintf(" PFE_DEVICE_FONT\n");
  1131. if (ppfe->flPFE & PFE_DEADSTATE)
  1132. dprintf(" PFE_DEADSTATE\n");
  1133. if (ppfe->flPFE & PFE_UFIMATCH)
  1134. dprintf(" PFE_UFIMATCH\n");
  1135. #ifdef FONTLINK
  1136. if (ppfe->flPFE & PFE_EUDC)
  1137. dprintf(" PFE_EUDC\n");
  1138. #endif
  1139. if (ppfe->flPFE & ~(PFE_DEVICEFONT | PFE_DEADSTATE
  1140. #ifdef FONTLINK
  1141. | PFE_EUDC
  1142. #endif
  1143. ))
  1144. dprintf(" UNKNOWN FLAGS\n");
  1145. dprintf(" pfdg = %-#x\n",ppfe->pfdg );
  1146. dprintf(" idfdg = %-#x\n",ppfe->idfdg );
  1147. dprintf(" pifi = %-#x\n",ppfe->pifi );
  1148. dprintf(" idifi = %-#x\n",ppfe->idifi );
  1149. dprintf(" pkp = %-#x\n",ppfe->pkp );
  1150. dprintf(" ckp = %-#x\n",ppfe->ckp );
  1151. dprintf(" iOrientation = %-#x\n",ppfe->iOrientation );
  1152. dprintf(" pgiset = %-#x\n",ppfe->pgiset );
  1153. dprintf(" ulTimeStamp = %-#x\n",ppfe->ulTimeStamp );
  1154. #ifdef FONTLINK
  1155. vPrintQUICKLOOKUP(&(ppfe->ql));
  1156. dprintf(" appfeFaceName = %-#x\n",ppfe->appfeFaceName);
  1157. dprintf(" bVerticalFace = %-#x\n",ppfe->bVerticalFace);
  1158. #endif
  1159. }
  1160. /******************************Public*Routine******************************\
  1161. * vPrintGLYPHPOS *
  1162. * *
  1163. * History: *
  1164. * Wed 23-Feb-1994 11:10:03 by Kirk Olynyk [kirko] *
  1165. * Wrote it. *
  1166. \**************************************************************************/
  1167. extern "C" VOID vPrintGLYPHPOS(
  1168. const GLYPHPOS *pgpos
  1169. , char *pszLeft
  1170. )
  1171. {
  1172. dprintf("%shg = %-#x\n", pszLeft, pgpos->hg);
  1173. dprintf("%spgdf = %-#x\n", pszLeft, pgpos->pgdf);
  1174. dprintf("%sptl = (%d,%d)\n",pszLeft, pgpos->ptl.x, pgpos->ptl.y);
  1175. }
  1176. /******************************Public*Routine******************************\
  1177. * vPrintESTROBJ *
  1178. * *
  1179. * History: *
  1180. * Wed 23-Feb-1994 11:09:38 by Kirk Olynyk [kirko] *
  1181. * Wrote it. *
  1182. \**************************************************************************/
  1183. extern "C" VOID vPrintESTROBJ(
  1184. ESTROBJ *pso // pointer to the engine string object
  1185. , PWSZ pwszCopy // pointer to a copy of the original string
  1186. // this is necessary for the extensions
  1187. )
  1188. {
  1189. unsigned i,j;
  1190. static char pszBorder[] = "-----------------------------\n\n";
  1191. dprintf("%s",pszBorder);
  1192. dprintf("ESTROBJ located at %-#x\n", pso);
  1193. dprintf("\tcGlyphs = %d\n", pso->cGlyphs);
  1194. dprintf("\tflAccel = %-#x\n", pso->flAccel);
  1195. if (SO_FLAG_DEFAULT_PLACEMENT & pso->flAccel)
  1196. dprintf("\t\tSO_FLAG_DEFAULT_PLACEMENT\n");
  1197. if (SO_HORIZONTAL & pso->flAccel)
  1198. dprintf("\t\tSO_HORIZONTAL\n");
  1199. if (SO_VERTICAL & pso->flAccel)
  1200. dprintf("\t\tSO_VERTICAL\n");
  1201. if (SO_REVERSED & pso->flAccel)
  1202. dprintf("\t\tSO_REVERSED\n");
  1203. if (SO_ZERO_BEARINGS & pso->flAccel)
  1204. dprintf("\t\tSO_ZERO_BEARINGS\n");
  1205. if (SO_CHAR_INC_EQUAL_BM_BASE & pso->flAccel)
  1206. dprintf("\t\tSO_CHAR_INC_EQUAL_BM_BASE\n");
  1207. if (SO_MAXEXT_EQUAL_BM_SIDE & pso->flAccel)
  1208. dprintf("\t\tSO_MAXEXT_EQUAL_BM_SIDE\n");
  1209. dprintf("\tulCharInc = %u\n", pso->ulCharInc);
  1210. dprintf(
  1211. "\trclBkGround = {(%d,%d),(%d,%d)}\n"
  1212. , pso->rclBkGround.left
  1213. , pso->rclBkGround.top
  1214. , pso->rclBkGround.right
  1215. , pso->rclBkGround.bottom
  1216. );
  1217. dprintf("\tpgp = %-#x\n", pso->pgp );
  1218. dprintf("\tpwszOrg = %-#x\n", pso->pwszOrg );
  1219. if (pwszCopy)
  1220. dprintf("\t \"%ws\"\n", pwszCopy );
  1221. dprintf("*** BEGIN GDI EXTENSION ***\n");
  1222. dprintf("\tcgposCopied = %u\n", pso->cgposCopied);
  1223. dprintf("\tprfo = %-#x\n", pso->prfo );
  1224. dprintf("\tflTO = %-#x\n", pso->flTO);
  1225. if (TO_MEM_ALLOCATED & pso->flTO)
  1226. dprintf("\t\tTO_MEM_ALLOCATED\n");
  1227. if (TO_ALL_PTRS_VALID & pso->flTO)
  1228. dprintf("\t\tTO_ALL_PTRS_VALID\n");
  1229. if (TO_VALID & pso->flTO)
  1230. dprintf("\t\tTO_VALID\n");
  1231. if (TO_ESC_NOT_ORIENT & pso->flTO)
  1232. dprintf("\t\tTO_ESC_NOT_ORIENT\n");
  1233. if (TO_PWSZ_ALLOCATED & pso->flTO)
  1234. dprintf("\t\tTO_PWSZ_ALLOCATED\n");
  1235. if (TO_HIGHRESTEXT & pso->flTO)
  1236. dprintf("\t\tTO_HIGHRESTEXT\n");
  1237. dprintf("\tpgpos = %-#x\n", pso->pgpos);
  1238. dprintf(
  1239. "\tptfxRef = (%-#x,%-#x)\n"
  1240. , pso->ptfxRef.x
  1241. , pso->ptfxRef.y
  1242. );
  1243. dprintf(
  1244. "\tptfxUpdate = (%-#x,%-#x)\n"
  1245. , pso->ptfxUpdate.x
  1246. , pso->ptfxUpdate.y
  1247. );
  1248. dprintf(
  1249. "\tptfxEscapement = (%-#x,%-#x)\n"
  1250. , pso->ptfxEscapement.x
  1251. , pso->ptfxEscapement.y
  1252. );
  1253. dprintf("\trcfx = {(%-#x,%-#x)\t(%-#x,%-#x)}\n"
  1254. , pso->rcfx.xLeft
  1255. , pso->rcfx.yTop
  1256. , pso->rcfx.xRight
  1257. , pso->rcfx.yBottom
  1258. );
  1259. dprintf("\tfxExtent = %-#x\n", pso->fxExtent);
  1260. dprintf("\tcExtraRects = %u\n", pso->cExtraRects);
  1261. if (pso->cExtraRects > 3)
  1262. {
  1263. dprintf("\n\n\t!!! Wow that is a LOT of rectangles !!!\n\n");
  1264. dprintf("\t I will just print 3, if you don't mind...\n\n\n");
  1265. pso->cExtraRects = 3;
  1266. }
  1267. if (pso->cExtraRects)
  1268. {
  1269. dprintf("\tarclExtra =\n");
  1270. for (i = 0; i < pso->cExtraRects; i++)
  1271. {
  1272. dprintf(" (%d,%d)\t(%d,%d)\n"
  1273. , pso->arclExtra[i].left
  1274. , pso->arclExtra[i].top
  1275. , pso->arclExtra[i].right
  1276. , pso->arclExtra[i].bottom
  1277. );
  1278. }
  1279. }
  1280. dprintf("%s",pszBorder);
  1281. }
  1282. /******************************Public*Routine******************************\
  1283. * vPrintGLYPHBITS *
  1284. * *
  1285. * History: *
  1286. * Wed 23-Feb-1994 10:58:33 by Kirk Olynyk [kirko] *
  1287. * Wrote it. *
  1288. \**************************************************************************/
  1289. extern "C" VOID vPrintGLYPHBITS(
  1290. GLYPHBITS *pgb,
  1291. char *pszLeft
  1292. )
  1293. {
  1294. BYTE *pj, *pjNext, *pjEnd;
  1295. ptrdiff_t cjScan;
  1296. static char *apszNibble[] =
  1297. {
  1298. " ", " *", " * ", " **"
  1299. , " * ", " * *", " ** ", " ***"
  1300. , "* ", "* *", "* * ", "* **"
  1301. , "** ", "** *", "*** ", "****"
  1302. };
  1303. dprintf("%sptlOrigin = (%d,%d)\n"
  1304. , pszLeft
  1305. , pgb->ptlOrigin.x
  1306. , pgb->ptlOrigin.y
  1307. );
  1308. dprintf("%ssizlBitmap = (%d,%d)\n"
  1309. , pszLeft
  1310. , pgb->sizlBitmap.cx
  1311. , pgb->sizlBitmap.cy
  1312. );
  1313. pj = pgb->aj;
  1314. cjScan = ((ptrdiff_t) pgb->sizlBitmap.cx + 7)/8;
  1315. pjNext = pj + cjScan;
  1316. pjEnd = pj + cjScan * (ptrdiff_t) pgb->sizlBitmap.cy;
  1317. dprintf("\n\n");
  1318. {
  1319. ptrdiff_t i = cjScan;
  1320. dprintf("%s+",pszLeft);
  1321. while (i--)
  1322. dprintf("--------");
  1323. dprintf("+\n");
  1324. }
  1325. while (pj < pjEnd)
  1326. {
  1327. dprintf("%s|",pszLeft);
  1328. while (pj < pjNext)
  1329. {
  1330. dprintf(
  1331. "%s%s"
  1332. , apszNibble[(*pj >> 4) & 0xf]
  1333. , apszNibble[*pj & 0xf]
  1334. );
  1335. pj += 1;
  1336. }
  1337. pj = pjNext;
  1338. pjNext += cjScan;
  1339. dprintf("|\n");
  1340. }
  1341. {
  1342. ptrdiff_t i = cjScan;
  1343. dprintf("%s+",pszLeft);
  1344. while (i--)
  1345. dprintf("--------");
  1346. dprintf("+\n");
  1347. }
  1348. dprintf("\n\n");
  1349. }
  1350. /******************************Public*Routine******************************\
  1351. * vPrintGLYPHDEF
  1352. *
  1353. * History:
  1354. * Thu 24-Feb-1994 11:17:10 by Kirk Olynyk [kirko]
  1355. * Wrote it.
  1356. \**************************************************************************/
  1357. extern "C" VOID vPrintGLYPHDEF(
  1358. GLYPHDEF *pgdf
  1359. , char *pszLeft
  1360. )
  1361. { dprintf("%s(pgb|ppo) = %-#x\n", pszLeft, pgdf->pgb);
  1362. }
  1363. /******************************Public*Routine******************************\
  1364. * vPrintGLYPHDATA
  1365. *
  1366. * History:
  1367. * Tue 17-May-1994 10:24:32 by Kirk Olynyk [kirko]
  1368. * Wrote it.
  1369. \**************************************************************************/
  1370. extern "C" VOID vPrintGLYPHDATA(
  1371. const GLYPHDATA *pgd
  1372. , char *pszLeft
  1373. )
  1374. {
  1375. dprintf("%sgdf = %-#x\n", pszLeft, pgd->gdf);
  1376. dprintf("%shg = %-#x\n", pszLeft, pgd->hg);
  1377. dprintf("%sptqD = (%-#x.%08x, %-#x.%08x)\n", pszLeft
  1378. , pgd->ptqD.x.HighPart, pgd->ptqD.x.LowPart
  1379. , pgd->ptqD.y.HighPart, pgd->ptqD.y.LowPart
  1380. );
  1381. dprintf("%sfxD = %-#x\n", pszLeft, pgd->fxD);
  1382. dprintf("%sfxA = %-#x\n", pszLeft, pgd->fxA);
  1383. dprintf("%sfxAB = %-#x\n", pszLeft, pgd->fxAB);
  1384. dprintf("%sfxInkTop = %-#x\n", pszLeft, pgd->fxInkTop);
  1385. dprintf("%sfxInkBottom = %-#x\n", pszLeft, pgd->fxInkBottom);
  1386. dprintf("%srclInk = (%-#x, %-#x) (%-#x, %-#x) = (%d, %d) (%d, %d)\n"
  1387. , pszLeft
  1388. , pgd->rclInk.left, pgd->rclInk.top
  1389. , pgd->rclInk.right, pgd->rclInk.bottom
  1390. , pgd->rclInk.left, pgd->rclInk.top
  1391. , pgd->rclInk.right, pgd->rclInk.bottom
  1392. );
  1393. }