tcc 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (283) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +35 -0
  3. data/README.md +196 -0
  4. data/ext/tcc/extconf.rb +25 -0
  5. data/ext/tcc/tcc-0.9.26.patch +30 -0
  6. data/ext/tcc/tcc-0.9.26/COPYING +504 -0
  7. data/ext/tcc/tcc-0.9.26/Changelog +396 -0
  8. data/ext/tcc/tcc-0.9.26/Makefile +349 -0
  9. data/ext/tcc/tcc-0.9.26/README +101 -0
  10. data/ext/tcc/tcc-0.9.26/TODO +93 -0
  11. data/ext/tcc/tcc-0.9.26/VERSION +1 -0
  12. data/ext/tcc/tcc-0.9.26/arm-gen.c +2005 -0
  13. data/ext/tcc/tcc-0.9.26/c67-gen.c +2560 -0
  14. data/ext/tcc/tcc-0.9.26/coff.h +446 -0
  15. data/ext/tcc/tcc-0.9.26/config.h +8 -0
  16. data/ext/tcc/tcc-0.9.26/config.mak +28 -0
  17. data/ext/tcc/tcc-0.9.26/config.texi +1 -0
  18. data/ext/tcc/tcc-0.9.26/configure +540 -0
  19. data/ext/tcc/tcc-0.9.26/conftest.c +71 -0
  20. data/ext/tcc/tcc-0.9.26/elf.h +1731 -0
  21. data/ext/tcc/tcc-0.9.26/examples/ex1.c +8 -0
  22. data/ext/tcc/tcc-0.9.26/examples/ex2.c +98 -0
  23. data/ext/tcc/tcc-0.9.26/examples/ex3.c +24 -0
  24. data/ext/tcc/tcc-0.9.26/examples/ex4.c +26 -0
  25. data/ext/tcc/tcc-0.9.26/examples/ex5.c +8 -0
  26. data/ext/tcc/tcc-0.9.26/i386-asm.c +1498 -0
  27. data/ext/tcc/tcc-0.9.26/i386-asm.h +473 -0
  28. data/ext/tcc/tcc-0.9.26/i386-gen.c +1096 -0
  29. data/ext/tcc/tcc-0.9.26/i386-tok.h +243 -0
  30. data/ext/tcc/tcc-0.9.26/il-gen.c +667 -0
  31. data/ext/tcc/tcc-0.9.26/il-opcodes.h +251 -0
  32. data/ext/tcc/tcc-0.9.26/include/float.h +57 -0
  33. data/ext/tcc/tcc-0.9.26/include/stdarg.h +41 -0
  34. data/ext/tcc/tcc-0.9.26/include/stdbool.h +10 -0
  35. data/ext/tcc/tcc-0.9.26/include/stddef.h +28 -0
  36. data/ext/tcc/tcc-0.9.26/include/tcclib.h +78 -0
  37. data/ext/tcc/tcc-0.9.26/include/varargs.h +12 -0
  38. data/ext/tcc/tcc-0.9.26/lib/Makefile +102 -0
  39. data/ext/tcc/tcc-0.9.26/lib/alloca86-bt.S +47 -0
  40. data/ext/tcc/tcc-0.9.26/lib/alloca86.S +35 -0
  41. data/ext/tcc/tcc-0.9.26/lib/alloca86_64.S +42 -0
  42. data/ext/tcc/tcc-0.9.26/lib/bcheck.c +875 -0
  43. data/ext/tcc/tcc-0.9.26/lib/libtcc1.c +691 -0
  44. data/ext/tcc/tcc-0.9.26/libtcc.c +1941 -0
  45. data/ext/tcc/tcc-0.9.26/libtcc.h +103 -0
  46. data/ext/tcc/tcc-0.9.26/stab.def +234 -0
  47. data/ext/tcc/tcc-0.9.26/stab.h +17 -0
  48. data/ext/tcc/tcc-0.9.26/tcc-doc.html +2332 -0
  49. data/ext/tcc/tcc-0.9.26/tcc-doc.info +1151 -0
  50. data/ext/tcc/tcc-0.9.26/tcc-doc.texi +1268 -0
  51. data/ext/tcc/tcc-0.9.26/tcc.1 +415 -0
  52. data/ext/tcc/tcc-0.9.26/tcc.c +352 -0
  53. data/ext/tcc/tcc-0.9.26/tcc.h +1379 -0
  54. data/ext/tcc/tcc-0.9.26/tccasm.c +1118 -0
  55. data/ext/tcc/tcc-0.9.26/tcccoff.c +948 -0
  56. data/ext/tcc/tcc-0.9.26/tccelf.c +3129 -0
  57. data/ext/tcc/tcc-0.9.26/tccgen.c +5841 -0
  58. data/ext/tcc/tcc-0.9.26/tccpe.c +1887 -0
  59. data/ext/tcc/tcc-0.9.26/tccpp.c +3128 -0
  60. data/ext/tcc/tcc-0.9.26/tccrun.c +737 -0
  61. data/ext/tcc/tcc-0.9.26/tcctok.h +278 -0
  62. data/ext/tcc/tcc-0.9.26/tests/Makefile +199 -0
  63. data/ext/tcc/tcc-0.9.26/tests/asmtest.S +609 -0
  64. data/ext/tcc/tcc-0.9.26/tests/boundtest.c +233 -0
  65. data/ext/tcc/tcc-0.9.26/tests/gcctestsuite.sh +33 -0
  66. data/ext/tcc/tcc-0.9.26/tests/libtcc_test.c +76 -0
  67. data/ext/tcc/tcc-0.9.26/tests/tcctest.c +2713 -0
  68. data/ext/tcc/tcc-0.9.26/tests/tests2/00_assignment.c +18 -0
  69. data/ext/tcc/tcc-0.9.26/tests/tests2/00_assignment.expect +3 -0
  70. data/ext/tcc/tcc-0.9.26/tests/tests2/01_comment.c +14 -0
  71. data/ext/tcc/tcc-0.9.26/tests/tests2/01_comment.expect +5 -0
  72. data/ext/tcc/tcc-0.9.26/tests/tests2/02_printf.c +18 -0
  73. data/ext/tcc/tcc-0.9.26/tests/tests2/02_printf.expect +15 -0
  74. data/ext/tcc/tcc-0.9.26/tests/tests2/03_struct.c +31 -0
  75. data/ext/tcc/tcc-0.9.26/tests/tests2/03_struct.expect +6 -0
  76. data/ext/tcc/tcc-0.9.26/tests/tests2/04_for.c +15 -0
  77. data/ext/tcc/tcc-0.9.26/tests/tests2/04_for.expect +10 -0
  78. data/ext/tcc/tcc-0.9.26/tests/tests2/05_array.c +21 -0
  79. data/ext/tcc/tcc-0.9.26/tests/tests2/05_array.expect +10 -0
  80. data/ext/tcc/tcc-0.9.26/tests/tests2/06_case.c +29 -0
  81. data/ext/tcc/tcc-0.9.26/tests/tests2/06_case.expect +8 -0
  82. data/ext/tcc/tcc-0.9.26/tests/tests2/07_function.c +30 -0
  83. data/ext/tcc/tcc-0.9.26/tests/tests2/07_function.expect +4 -0
  84. data/ext/tcc/tcc-0.9.26/tests/tests2/08_while.c +24 -0
  85. data/ext/tcc/tcc-0.9.26/tests/tests2/08_while.expect +11 -0
  86. data/ext/tcc/tcc-0.9.26/tests/tests2/09_do_while.c +24 -0
  87. data/ext/tcc/tcc-0.9.26/tests/tests2/09_do_while.expect +11 -0
  88. data/ext/tcc/tcc-0.9.26/tests/tests2/10_pointer.c +40 -0
  89. data/ext/tcc/tcc-0.9.26/tests/tests2/10_pointer.expect +8 -0
  90. data/ext/tcc/tcc-0.9.26/tests/tests2/11_precedence.c +40 -0
  91. data/ext/tcc/tcc-0.9.26/tests/tests2/11_precedence.expect +15 -0
  92. data/ext/tcc/tcc-0.9.26/tests/tests2/12_hashdefine.c +14 -0
  93. data/ext/tcc/tcc-0.9.26/tests/tests2/12_hashdefine.expect +2 -0
  94. data/ext/tcc/tcc-0.9.26/tests/tests2/13_integer_literals.c +20 -0
  95. data/ext/tcc/tcc-0.9.26/tests/tests2/13_integer_literals.expect +5 -0
  96. data/ext/tcc/tcc-0.9.26/tests/tests2/14_if.c +21 -0
  97. data/ext/tcc/tcc-0.9.26/tests/tests2/14_if.expect +2 -0
  98. data/ext/tcc/tcc-0.9.26/tests/tests2/15_recursion.c +21 -0
  99. data/ext/tcc/tcc-0.9.26/tests/tests2/15_recursion.expect +10 -0
  100. data/ext/tcc/tcc-0.9.26/tests/tests2/16_nesting.c +21 -0
  101. data/ext/tcc/tcc-0.9.26/tests/tests2/16_nesting.expect +18 -0
  102. data/ext/tcc/tcc-0.9.26/tests/tests2/17_enum.c +29 -0
  103. data/ext/tcc/tcc-0.9.26/tests/tests2/17_enum.expect +3 -0
  104. data/ext/tcc/tcc-0.9.26/tests/tests2/18_include.c +12 -0
  105. data/ext/tcc/tcc-0.9.26/tests/tests2/18_include.expect +3 -0
  106. data/ext/tcc/tcc-0.9.26/tests/tests2/18_include.h +1 -0
  107. data/ext/tcc/tcc-0.9.26/tests/tests2/19_pointer_arithmetic.c +28 -0
  108. data/ext/tcc/tcc-0.9.26/tests/tests2/19_pointer_arithmetic.expect +3 -0
  109. data/ext/tcc/tcc-0.9.26/tests/tests2/20_pointer_comparison.c +24 -0
  110. data/ext/tcc/tcc-0.9.26/tests/tests2/20_pointer_comparison.expect +6 -0
  111. data/ext/tcc/tcc-0.9.26/tests/tests2/21_char_array.c +33 -0
  112. data/ext/tcc/tcc-0.9.26/tests/tests2/21_char_array.expect +7 -0
  113. data/ext/tcc/tcc-0.9.26/tests/tests2/22_floating_point.c +50 -0
  114. data/ext/tcc/tcc-0.9.26/tests/tests2/22_floating_point.expect +16 -0
  115. data/ext/tcc/tcc-0.9.26/tests/tests2/23_type_coercion.c +54 -0
  116. data/ext/tcc/tcc-0.9.26/tests/tests2/23_type_coercion.expect +12 -0
  117. data/ext/tcc/tcc-0.9.26/tests/tests2/24_math_library.c +28 -0
  118. data/ext/tcc/tcc-0.9.26/tests/tests2/24_math_library.expect +18 -0
  119. data/ext/tcc/tcc-0.9.26/tests/tests2/25_quicksort.c +83 -0
  120. data/ext/tcc/tcc-0.9.26/tests/tests2/25_quicksort.expect +2 -0
  121. data/ext/tcc/tcc-0.9.26/tests/tests2/26_character_constants.c +17 -0
  122. data/ext/tcc/tcc-0.9.26/tests/tests2/26_character_constants.expect +8 -0
  123. data/ext/tcc/tcc-0.9.26/tests/tests2/27_sizeof.c +16 -0
  124. data/ext/tcc/tcc-0.9.26/tests/tests2/27_sizeof.expect +3 -0
  125. data/ext/tcc/tcc-0.9.26/tests/tests2/28_strings.c +46 -0
  126. data/ext/tcc/tcc-0.9.26/tests/tests2/28_strings.expect +19 -0
  127. data/ext/tcc/tcc-0.9.26/tests/tests2/29_array_address.c +13 -0
  128. data/ext/tcc/tcc-0.9.26/tests/tests2/29_array_address.expect +1 -0
  129. data/ext/tcc/tcc-0.9.26/tests/tests2/30_hanoi.c +122 -0
  130. data/ext/tcc/tcc-0.9.26/tests/tests2/30_hanoi.expect +71 -0
  131. data/ext/tcc/tcc-0.9.26/tests/tests2/31_args.c +14 -0
  132. data/ext/tcc/tcc-0.9.26/tests/tests2/31_args.expect +7 -0
  133. data/ext/tcc/tcc-0.9.26/tests/tests2/32_led.c +266 -0
  134. data/ext/tcc/tcc-0.9.26/tests/tests2/32_led.expect +4 -0
  135. data/ext/tcc/tcc-0.9.26/tests/tests2/33_ternary_op.c +15 -0
  136. data/ext/tcc/tcc-0.9.26/tests/tests2/33_ternary_op.expect +10 -0
  137. data/ext/tcc/tcc-0.9.26/tests/tests2/34_array_assignment.c +23 -0
  138. data/ext/tcc/tcc-0.9.26/tests/tests2/34_array_assignment.expect +2 -0
  139. data/ext/tcc/tcc-0.9.26/tests/tests2/35_sizeof.c +14 -0
  140. data/ext/tcc/tcc-0.9.26/tests/tests2/35_sizeof.expect +2 -0
  141. data/ext/tcc/tcc-0.9.26/tests/tests2/36_array_initialisers.c +21 -0
  142. data/ext/tcc/tcc-0.9.26/tests/tests2/36_array_initialisers.expect +20 -0
  143. data/ext/tcc/tcc-0.9.26/tests/tests2/37_sprintf.c +17 -0
  144. data/ext/tcc/tcc-0.9.26/tests/tests2/37_sprintf.expect +20 -0
  145. data/ext/tcc/tcc-0.9.26/tests/tests2/38_multiple_array_index.c +32 -0
  146. data/ext/tcc/tcc-0.9.26/tests/tests2/38_multiple_array_index.expect +4 -0
  147. data/ext/tcc/tcc-0.9.26/tests/tests2/39_typedef.c +31 -0
  148. data/ext/tcc/tcc-0.9.26/tests/tests2/39_typedef.expect +3 -0
  149. data/ext/tcc/tcc-0.9.26/tests/tests2/40_stdio.c +52 -0
  150. data/ext/tcc/tcc-0.9.26/tests/tests2/40_stdio.expect +27 -0
  151. data/ext/tcc/tcc-0.9.26/tests/tests2/41_hashif.c +85 -0
  152. data/ext/tcc/tcc-0.9.26/tests/tests2/41_hashif.expect +6 -0
  153. data/ext/tcc/tcc-0.9.26/tests/tests2/42_function_pointer.c +18 -0
  154. data/ext/tcc/tcc-0.9.26/tests/tests2/42_function_pointer.expect +2 -0
  155. data/ext/tcc/tcc-0.9.26/tests/tests2/43_void_param.c +15 -0
  156. data/ext/tcc/tcc-0.9.26/tests/tests2/43_void_param.expect +1 -0
  157. data/ext/tcc/tcc-0.9.26/tests/tests2/44_scoped_declarations.c +17 -0
  158. data/ext/tcc/tcc-0.9.26/tests/tests2/44_scoped_declarations.expect +1 -0
  159. data/ext/tcc/tcc-0.9.26/tests/tests2/45_empty_for.c +18 -0
  160. data/ext/tcc/tcc-0.9.26/tests/tests2/45_empty_for.expect +10 -0
  161. data/ext/tcc/tcc-0.9.26/tests/tests2/46_grep.c +564 -0
  162. data/ext/tcc/tcc-0.9.26/tests/tests2/47_switch_return.c +24 -0
  163. data/ext/tcc/tcc-0.9.26/tests/tests2/47_switch_return.expect +4 -0
  164. data/ext/tcc/tcc-0.9.26/tests/tests2/48_nested_break.c +26 -0
  165. data/ext/tcc/tcc-0.9.26/tests/tests2/48_nested_break.expect +1 -0
  166. data/ext/tcc/tcc-0.9.26/tests/tests2/49_bracket_evaluation.c +23 -0
  167. data/ext/tcc/tcc-0.9.26/tests/tests2/49_bracket_evaluation.expect +1 -0
  168. data/ext/tcc/tcc-0.9.26/tests/tests2/50_logical_second_arg.c +29 -0
  169. data/ext/tcc/tcc-0.9.26/tests/tests2/50_logical_second_arg.expect +20 -0
  170. data/ext/tcc/tcc-0.9.26/tests/tests2/51_static.c +30 -0
  171. data/ext/tcc/tcc-0.9.26/tests/tests2/51_static.expect +8 -0
  172. data/ext/tcc/tcc-0.9.26/tests/tests2/52_unnamed_enum.c +27 -0
  173. data/ext/tcc/tcc-0.9.26/tests/tests2/52_unnamed_enum.expect +9 -0
  174. data/ext/tcc/tcc-0.9.26/tests/tests2/54_goto.c +56 -0
  175. data/ext/tcc/tcc-0.9.26/tests/tests2/54_goto.expect +8 -0
  176. data/ext/tcc/tcc-0.9.26/tests/tests2/55_lshift_type.c +52 -0
  177. data/ext/tcc/tcc-0.9.26/tests/tests2/55_lshift_type.expect +1 -0
  178. data/ext/tcc/tcc-0.9.26/tests/tests2/LICENSE +37 -0
  179. data/ext/tcc/tcc-0.9.26/tests/tests2/Makefile +98 -0
  180. data/ext/tcc/tcc-0.9.26/texi2pod.pl +427 -0
  181. data/ext/tcc/tcc-0.9.26/win32/build-tcc.bat +60 -0
  182. data/ext/tcc/tcc-0.9.26/win32/examples/dll.c +12 -0
  183. data/ext/tcc/tcc-0.9.26/win32/examples/fib.c +23 -0
  184. data/ext/tcc/tcc-0.9.26/win32/examples/hello_dll.c +19 -0
  185. data/ext/tcc/tcc-0.9.26/win32/examples/hello_win.c +163 -0
  186. data/ext/tcc/tcc-0.9.26/win32/include/_mingw.h +139 -0
  187. data/ext/tcc/tcc-0.9.26/win32/include/assert.h +54 -0
  188. data/ext/tcc/tcc-0.9.26/win32/include/conio.h +409 -0
  189. data/ext/tcc/tcc-0.9.26/win32/include/ctype.h +281 -0
  190. data/ext/tcc/tcc-0.9.26/win32/include/dir.h +31 -0
  191. data/ext/tcc/tcc-0.9.26/win32/include/direct.h +68 -0
  192. data/ext/tcc/tcc-0.9.26/win32/include/dirent.h +135 -0
  193. data/ext/tcc/tcc-0.9.26/win32/include/dos.h +55 -0
  194. data/ext/tcc/tcc-0.9.26/win32/include/errno.h +75 -0
  195. data/ext/tcc/tcc-0.9.26/win32/include/excpt.h +123 -0
  196. data/ext/tcc/tcc-0.9.26/win32/include/fcntl.h +52 -0
  197. data/ext/tcc/tcc-0.9.26/win32/include/fenv.h +108 -0
  198. data/ext/tcc/tcc-0.9.26/win32/include/inttypes.h +297 -0
  199. data/ext/tcc/tcc-0.9.26/win32/include/io.h +418 -0
  200. data/ext/tcc/tcc-0.9.26/win32/include/limits.h +111 -0
  201. data/ext/tcc/tcc-0.9.26/win32/include/locale.h +91 -0
  202. data/ext/tcc/tcc-0.9.26/win32/include/malloc.h +175 -0
  203. data/ext/tcc/tcc-0.9.26/win32/include/math.h +777 -0
  204. data/ext/tcc/tcc-0.9.26/win32/include/mem.h +13 -0
  205. data/ext/tcc/tcc-0.9.26/win32/include/memory.h +40 -0
  206. data/ext/tcc/tcc-0.9.26/win32/include/process.h +176 -0
  207. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/conio_s.h +42 -0
  208. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/crtdbg_s.h +19 -0
  209. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/io_s.h +33 -0
  210. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/mbstring_s.h +52 -0
  211. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/search_s.h +25 -0
  212. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/stdio_s.h +145 -0
  213. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/stdlib_s.h +67 -0
  214. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/stralign_s.h +30 -0
  215. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/string_s.h +41 -0
  216. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/sys/timeb_s.h +34 -0
  217. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/tchar_s.h +266 -0
  218. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/time_s.h +61 -0
  219. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/wchar_s.h +128 -0
  220. data/ext/tcc/tcc-0.9.26/win32/include/setjmp.h +160 -0
  221. data/ext/tcc/tcc-0.9.26/win32/include/share.h +28 -0
  222. data/ext/tcc/tcc-0.9.26/win32/include/signal.h +63 -0
  223. data/ext/tcc/tcc-0.9.26/win32/include/stdint.h +209 -0
  224. data/ext/tcc/tcc-0.9.26/win32/include/stdio.h +429 -0
  225. data/ext/tcc/tcc-0.9.26/win32/include/stdlib.h +580 -0
  226. data/ext/tcc/tcc-0.9.26/win32/include/string.h +164 -0
  227. data/ext/tcc/tcc-0.9.26/win32/include/sys/fcntl.h +13 -0
  228. data/ext/tcc/tcc-0.9.26/win32/include/sys/file.h +14 -0
  229. data/ext/tcc/tcc-0.9.26/win32/include/sys/locking.h +30 -0
  230. data/ext/tcc/tcc-0.9.26/win32/include/sys/stat.h +290 -0
  231. data/ext/tcc/tcc-0.9.26/win32/include/sys/time.h +69 -0
  232. data/ext/tcc/tcc-0.9.26/win32/include/sys/timeb.h +133 -0
  233. data/ext/tcc/tcc-0.9.26/win32/include/sys/types.h +118 -0
  234. data/ext/tcc/tcc-0.9.26/win32/include/sys/unistd.h +14 -0
  235. data/ext/tcc/tcc-0.9.26/win32/include/sys/utime.h +146 -0
  236. data/ext/tcc/tcc-0.9.26/win32/include/tchar.h +1102 -0
  237. data/ext/tcc/tcc-0.9.26/win32/include/time.h +287 -0
  238. data/ext/tcc/tcc-0.9.26/win32/include/vadefs.h +11 -0
  239. data/ext/tcc/tcc-0.9.26/win32/include/values.h +4 -0
  240. data/ext/tcc/tcc-0.9.26/win32/include/wchar.h +871 -0
  241. data/ext/tcc/tcc-0.9.26/win32/include/wctype.h +172 -0
  242. data/ext/tcc/tcc-0.9.26/win32/include/winapi/basetsd.h +149 -0
  243. data/ext/tcc/tcc-0.9.26/win32/include/winapi/basetyps.h +85 -0
  244. data/ext/tcc/tcc-0.9.26/win32/include/winapi/guiddef.h +151 -0
  245. data/ext/tcc/tcc-0.9.26/win32/include/winapi/intrin.h +11 -0
  246. data/ext/tcc/tcc-0.9.26/win32/include/winapi/poppack.h +8 -0
  247. data/ext/tcc/tcc-0.9.26/win32/include/winapi/pshpack1.h +8 -0
  248. data/ext/tcc/tcc-0.9.26/win32/include/winapi/pshpack2.h +8 -0
  249. data/ext/tcc/tcc-0.9.26/win32/include/winapi/pshpack4.h +8 -0
  250. data/ext/tcc/tcc-0.9.26/win32/include/winapi/pshpack8.h +8 -0
  251. data/ext/tcc/tcc-0.9.26/win32/include/winapi/reason.h +80 -0
  252. data/ext/tcc/tcc-0.9.26/win32/include/winapi/specstrings.h +7 -0
  253. data/ext/tcc/tcc-0.9.26/win32/include/winapi/stralign.h +154 -0
  254. data/ext/tcc/tcc-0.9.26/win32/include/winapi/tvout.h +79 -0
  255. data/ext/tcc/tcc-0.9.26/win32/include/winapi/winbase.h +2951 -0
  256. data/ext/tcc/tcc-0.9.26/win32/include/winapi/wincon.h +301 -0
  257. data/ext/tcc/tcc-0.9.26/win32/include/winapi/windef.h +293 -0
  258. data/ext/tcc/tcc-0.9.26/win32/include/winapi/windows.h +123 -0
  259. data/ext/tcc/tcc-0.9.26/win32/include/winapi/winerror.h +3166 -0
  260. data/ext/tcc/tcc-0.9.26/win32/include/winapi/wingdi.h +4080 -0
  261. data/ext/tcc/tcc-0.9.26/win32/include/winapi/winnetwk.h +476 -0
  262. data/ext/tcc/tcc-0.9.26/win32/include/winapi/winnls.h +765 -0
  263. data/ext/tcc/tcc-0.9.26/win32/include/winapi/winnt.h +5770 -0
  264. data/ext/tcc/tcc-0.9.26/win32/include/winapi/winreg.h +272 -0
  265. data/ext/tcc/tcc-0.9.26/win32/include/winapi/winuser.h +5651 -0
  266. data/ext/tcc/tcc-0.9.26/win32/include/winapi/winver.h +160 -0
  267. data/ext/tcc/tcc-0.9.26/win32/lib/chkstk.S +191 -0
  268. data/ext/tcc/tcc-0.9.26/win32/lib/crt1.c +34 -0
  269. data/ext/tcc/tcc-0.9.26/win32/lib/dllcrt1.c +13 -0
  270. data/ext/tcc/tcc-0.9.26/win32/lib/dllmain.c +9 -0
  271. data/ext/tcc/tcc-0.9.26/win32/lib/gdi32.def +337 -0
  272. data/ext/tcc/tcc-0.9.26/win32/lib/kernel32.def +765 -0
  273. data/ext/tcc/tcc-0.9.26/win32/lib/msvcrt.def +1399 -0
  274. data/ext/tcc/tcc-0.9.26/win32/lib/user32.def +654 -0
  275. data/ext/tcc/tcc-0.9.26/win32/lib/wincrt1.c +64 -0
  276. data/ext/tcc/tcc-0.9.26/win32/tcc-win32.txt +156 -0
  277. data/ext/tcc/tcc-0.9.26/win32/tools/tiny_impdef.c +243 -0
  278. data/ext/tcc/tcc-0.9.26/win32/tools/tiny_libmaker.c +258 -0
  279. data/ext/tcc/tcc-0.9.26/x86_64-asm.h +448 -0
  280. data/ext/tcc/tcc-0.9.26/x86_64-gen.c +1701 -0
  281. data/lib/tcc.rb +291 -0
  282. data/tcc.gemspec +15 -0
  283. metadata +343 -0
@@ -0,0 +1,4080 @@
1
+ /**
2
+ * This file has no copyright assigned and is placed in the Public Domain.
3
+ * This file is part of the w64 mingw-runtime package.
4
+ * No warranty is given; refer to the file DISCLAIMER within this package.
5
+ */
6
+ #ifndef _WINGDI_
7
+ #define _WINGDI_
8
+
9
+ #define WINGDIAPI DECLSPEC_IMPORT
10
+ #define WINSPOOLAPI DECLSPEC_IMPORT
11
+
12
+ #ifdef __cplusplus
13
+ extern "C" {
14
+ #endif
15
+
16
+ #ifndef WINVER
17
+ #define WINVER 0x0502
18
+ #endif
19
+
20
+ #ifndef NOGDI
21
+ #ifndef NORASTEROPS
22
+ #define R2_BLACK 1
23
+ #define R2_NOTMERGEPEN 2
24
+ #define R2_MASKNOTPEN 3
25
+ #define R2_NOTCOPYPEN 4
26
+ #define R2_MASKPENNOT 5
27
+ #define R2_NOT 6
28
+ #define R2_XORPEN 7
29
+ #define R2_NOTMASKPEN 8
30
+ #define R2_MASKPEN 9
31
+ #define R2_NOTXORPEN 10
32
+ #define R2_NOP 11
33
+ #define R2_MERGENOTPEN 12
34
+ #define R2_COPYPEN 13
35
+ #define R2_MERGEPENNOT 14
36
+ #define R2_MERGEPEN 15
37
+ #define R2_WHITE 16
38
+ #define R2_LAST 16
39
+
40
+ #define SRCCOPY (DWORD)0x00CC0020
41
+ #define SRCPAINT (DWORD)0x00EE0086
42
+ #define SRCAND (DWORD)0x008800C6
43
+ #define SRCINVERT (DWORD)0x00660046
44
+ #define SRCERASE (DWORD)0x00440328
45
+ #define NOTSRCCOPY (DWORD)0x00330008
46
+ #define NOTSRCERASE (DWORD)0x001100A6
47
+ #define MERGECOPY (DWORD)0x00C000CA
48
+ #define MERGEPAINT (DWORD)0x00BB0226
49
+ #define PATCOPY (DWORD)0x00F00021
50
+ #define PATPAINT (DWORD)0x00FB0A09
51
+ #define PATINVERT (DWORD)0x005A0049
52
+ #define DSTINVERT (DWORD)0x00550009
53
+ #define BLACKNESS (DWORD)0x00000042
54
+ #define WHITENESS (DWORD)0x00FF0062
55
+ #define NOMIRRORBITMAP (DWORD)0x80000000
56
+ #define CAPTUREBLT (DWORD)0x40000000
57
+ #define MAKEROP4(fore,back) (DWORD)((((back) << 8) & 0xFF000000) | (fore))
58
+ #endif
59
+
60
+ #define GDI_ERROR (0xFFFFFFFFL)
61
+ #define HGDI_ERROR (LongToHandle(0xFFFFFFFFL))
62
+
63
+ #define ERROR 0
64
+ #define NULLREGION 1
65
+ #define SIMPLEREGION 2
66
+ #define COMPLEXREGION 3
67
+ #define RGN_ERROR ERROR
68
+
69
+ #define RGN_AND 1
70
+ #define RGN_OR 2
71
+ #define RGN_XOR 3
72
+ #define RGN_DIFF 4
73
+ #define RGN_COPY 5
74
+ #define RGN_MIN RGN_AND
75
+ #define RGN_MAX RGN_COPY
76
+
77
+ #define BLACKONWHITE 1
78
+ #define WHITEONBLACK 2
79
+ #define COLORONCOLOR 3
80
+ #define HALFTONE 4
81
+ #define MAXSTRETCHBLTMODE 4
82
+
83
+ #define STRETCH_ANDSCANS BLACKONWHITE
84
+ #define STRETCH_ORSCANS WHITEONBLACK
85
+ #define STRETCH_DELETESCANS COLORONCOLOR
86
+ #define STRETCH_HALFTONE HALFTONE
87
+
88
+ #define ALTERNATE 1
89
+ #define WINDING 2
90
+ #define POLYFILL_LAST 2
91
+
92
+ #define LAYOUT_RTL 0x00000001
93
+ #define LAYOUT_BTT 0x00000002
94
+ #define LAYOUT_VBH 0x00000004
95
+ #define LAYOUT_ORIENTATIONMASK (LAYOUT_RTL | LAYOUT_BTT | LAYOUT_VBH)
96
+ #define LAYOUT_BITMAPORIENTATIONPRESERVED 0x00000008
97
+
98
+ #define TA_NOUPDATECP 0
99
+ #define TA_UPDATECP 1
100
+
101
+ #define TA_LEFT 0
102
+ #define TA_RIGHT 2
103
+ #define TA_CENTER 6
104
+
105
+ #define TA_TOP 0
106
+ #define TA_BOTTOM 8
107
+ #define TA_BASELINE 24
108
+ #define TA_RTLREADING 256
109
+ #define TA_MASK (TA_BASELINE+TA_CENTER+TA_UPDATECP+TA_RTLREADING)
110
+
111
+ #define VTA_BASELINE TA_BASELINE
112
+ #define VTA_LEFT TA_BOTTOM
113
+ #define VTA_RIGHT TA_TOP
114
+ #define VTA_CENTER TA_CENTER
115
+ #define VTA_BOTTOM TA_RIGHT
116
+ #define VTA_TOP TA_LEFT
117
+
118
+ #define ETO_OPAQUE 0x0002
119
+ #define ETO_CLIPPED 0x0004
120
+ #define ETO_GLYPH_INDEX 0x0010
121
+ #define ETO_RTLREADING 0x0080
122
+ #define ETO_NUMERICSLOCAL 0x0400
123
+ #define ETO_NUMERICSLATIN 0x0800
124
+ #define ETO_IGNORELANGUAGE 0x1000
125
+ #define ETO_PDY 0x2000
126
+
127
+ #define ASPECT_FILTERING 0x0001
128
+
129
+ #define DCB_RESET 0x0001
130
+ #define DCB_ACCUMULATE 0x0002
131
+ #define DCB_DIRTY DCB_ACCUMULATE
132
+ #define DCB_SET (DCB_RESET | DCB_ACCUMULATE)
133
+ #define DCB_ENABLE 0x0004
134
+ #define DCB_DISABLE 0x0008
135
+
136
+ #ifndef NOMETAFILE
137
+
138
+ #define META_SETBKCOLOR 0x0201
139
+ #define META_SETBKMODE 0x0102
140
+ #define META_SETMAPMODE 0x0103
141
+ #define META_SETROP2 0x0104
142
+ #define META_SETRELABS 0x0105
143
+ #define META_SETPOLYFILLMODE 0x0106
144
+ #define META_SETSTRETCHBLTMODE 0x0107
145
+ #define META_SETTEXTCHAREXTRA 0x0108
146
+ #define META_SETTEXTCOLOR 0x0209
147
+ #define META_SETTEXTJUSTIFICATION 0x020A
148
+ #define META_SETWINDOWORG 0x020B
149
+ #define META_SETWINDOWEXT 0x020C
150
+ #define META_SETVIEWPORTORG 0x020D
151
+ #define META_SETVIEWPORTEXT 0x020E
152
+ #define META_OFFSETWINDOWORG 0x020F
153
+ #define META_SCALEWINDOWEXT 0x0410
154
+ #define META_OFFSETVIEWPORTORG 0x0211
155
+ #define META_SCALEVIEWPORTEXT 0x0412
156
+ #define META_LINETO 0x0213
157
+ #define META_MOVETO 0x0214
158
+ #define META_EXCLUDECLIPRECT 0x0415
159
+ #define META_INTERSECTCLIPRECT 0x0416
160
+ #define META_ARC 0x0817
161
+ #define META_ELLIPSE 0x0418
162
+ #define META_FLOODFILL 0x0419
163
+ #define META_PIE 0x081A
164
+ #define META_RECTANGLE 0x041B
165
+ #define META_ROUNDRECT 0x061C
166
+ #define META_PATBLT 0x061D
167
+ #define META_SAVEDC 0x001E
168
+ #define META_SETPIXEL 0x041F
169
+ #define META_OFFSETCLIPRGN 0x0220
170
+ #define META_TEXTOUT 0x0521
171
+ #define META_BITBLT 0x0922
172
+ #define META_STRETCHBLT 0x0B23
173
+ #define META_POLYGON 0x0324
174
+ #define META_POLYLINE 0x0325
175
+ #define META_ESCAPE 0x0626
176
+ #define META_RESTOREDC 0x0127
177
+ #define META_FILLREGION 0x0228
178
+ #define META_FRAMEREGION 0x0429
179
+ #define META_INVERTREGION 0x012A
180
+ #define META_PAINTREGION 0x012B
181
+ #define META_SELECTCLIPREGION 0x012C
182
+ #define META_SELECTOBJECT 0x012D
183
+ #define META_SETTEXTALIGN 0x012E
184
+ #define META_CHORD 0x0830
185
+ #define META_SETMAPPERFLAGS 0x0231
186
+ #define META_EXTTEXTOUT 0x0a32
187
+ #define META_SETDIBTODEV 0x0d33
188
+ #define META_SELECTPALETTE 0x0234
189
+ #define META_REALIZEPALETTE 0x0035
190
+ #define META_ANIMATEPALETTE 0x0436
191
+ #define META_SETPALENTRIES 0x0037
192
+ #define META_POLYPOLYGON 0x0538
193
+ #define META_RESIZEPALETTE 0x0139
194
+ #define META_DIBBITBLT 0x0940
195
+ #define META_DIBSTRETCHBLT 0x0b41
196
+ #define META_DIBCREATEPATTERNBRUSH 0x0142
197
+ #define META_STRETCHDIB 0x0f43
198
+ #define META_EXTFLOODFILL 0x0548
199
+ #define META_SETLAYOUT 0x0149
200
+ #define META_DELETEOBJECT 0x01f0
201
+ #define META_CREATEPALETTE 0x00f7
202
+ #define META_CREATEPATTERNBRUSH 0x01F9
203
+ #define META_CREATEPENINDIRECT 0x02FA
204
+ #define META_CREATEFONTINDIRECT 0x02FB
205
+ #define META_CREATEBRUSHINDIRECT 0x02FC
206
+ #define META_CREATEREGION 0x06FF
207
+
208
+ typedef struct _DRAWPATRECT {
209
+ POINT ptPosition;
210
+ POINT ptSize;
211
+ WORD wStyle;
212
+ WORD wPattern;
213
+ } DRAWPATRECT,*PDRAWPATRECT;
214
+ #endif
215
+
216
+ #define NEWFRAME 1
217
+ #define ABORTDOC 2
218
+ #define NEXTBAND 3
219
+ #define SETCOLORTABLE 4
220
+ #define GETCOLORTABLE 5
221
+ #define FLUSHOUTPUT 6
222
+ #define DRAFTMODE 7
223
+ #define QUERYESCSUPPORT 8
224
+ #define SETABORTPROC 9
225
+ #define STARTDOC 10
226
+ #define ENDDOC 11
227
+ #define GETPHYSPAGESIZE 12
228
+ #define GETPRINTINGOFFSET 13
229
+ #define GETSCALINGFACTOR 14
230
+ #define MFCOMMENT 15
231
+ #define GETPENWIDTH 16
232
+ #define SETCOPYCOUNT 17
233
+ #define SELECTPAPERSOURCE 18
234
+ #define DEVICEDATA 19
235
+ #define PASSTHROUGH 19
236
+ #define GETTECHNOLGY 20
237
+ #define GETTECHNOLOGY 20
238
+ #define SETLINECAP 21
239
+ #define SETLINEJOIN 22
240
+ #define SETMITERLIMIT 23
241
+ #define BANDINFO 24
242
+ #define DRAWPATTERNRECT 25
243
+ #define GETVECTORPENSIZE 26
244
+ #define GETVECTORBRUSHSIZE 27
245
+ #define ENABLEDUPLEX 28
246
+ #define GETSETPAPERBINS 29
247
+ #define GETSETPRINTORIENT 30
248
+ #define ENUMPAPERBINS 31
249
+ #define SETDIBSCALING 32
250
+ #define EPSPRINTING 33
251
+ #define ENUMPAPERMETRICS 34
252
+ #define GETSETPAPERMETRICS 35
253
+ #define POSTSCRIPT_DATA 37
254
+ #define POSTSCRIPT_IGNORE 38
255
+ #define MOUSETRAILS 39
256
+ #define GETDEVICEUNITS 42
257
+
258
+ #define GETEXTENDEDTEXTMETRICS 256
259
+ #define GETEXTENTTABLE 257
260
+ #define GETPAIRKERNTABLE 258
261
+ #define GETTRACKKERNTABLE 259
262
+ #define EXTTEXTOUT 512
263
+ #define GETFACENAME 513
264
+ #define DOWNLOADFACE 514
265
+ #define ENABLERELATIVEWIDTHS 768
266
+ #define ENABLEPAIRKERNING 769
267
+ #define SETKERNTRACK 770
268
+ #define SETALLJUSTVALUES 771
269
+ #define SETCHARSET 772
270
+
271
+ #define STRETCHBLT 2048
272
+ #define METAFILE_DRIVER 2049
273
+ #define GETSETSCREENPARAMS 3072
274
+ #define QUERYDIBSUPPORT 3073
275
+ #define BEGIN_PATH 4096
276
+ #define CLIP_TO_PATH 4097
277
+ #define END_PATH 4098
278
+ #define EXT_DEVICE_CAPS 4099
279
+ #define RESTORE_CTM 4100
280
+ #define SAVE_CTM 4101
281
+ #define SET_ARC_DIRECTION 4102
282
+ #define SET_BACKGROUND_COLOR 4103
283
+ #define SET_POLY_MODE 4104
284
+ #define SET_SCREEN_ANGLE 4105
285
+ #define SET_SPREAD 4106
286
+ #define TRANSFORM_CTM 4107
287
+ #define SET_CLIP_BOX 4108
288
+ #define SET_BOUNDS 4109
289
+ #define SET_MIRROR_MODE 4110
290
+ #define OPENCHANNEL 4110
291
+ #define DOWNLOADHEADER 4111
292
+ #define CLOSECHANNEL 4112
293
+ #define POSTSCRIPT_PASSTHROUGH 4115
294
+ #define ENCAPSULATED_POSTSCRIPT 4116
295
+
296
+ #define POSTSCRIPT_IDENTIFY 4117
297
+ #define POSTSCRIPT_INJECTION 4118
298
+
299
+ #define CHECKJPEGFORMAT 4119
300
+ #define CHECKPNGFORMAT 4120
301
+
302
+ #define GET_PS_FEATURESETTING 4121
303
+
304
+ #define SPCLPASSTHROUGH2 4568
305
+
306
+ #define PSIDENT_GDICENTRIC 0
307
+ #define PSIDENT_PSCENTRIC 1
308
+
309
+ typedef struct _PSINJECTDATA {
310
+ DWORD DataBytes;
311
+ WORD InjectionPoint;
312
+ WORD PageNumber;
313
+ } PSINJECTDATA,*PPSINJECTDATA;
314
+
315
+ #define PSINJECT_BEGINSTREAM 1
316
+ #define PSINJECT_PSADOBE 2
317
+ #define PSINJECT_PAGESATEND 3
318
+ #define PSINJECT_PAGES 4
319
+
320
+ #define PSINJECT_DOCNEEDEDRES 5
321
+ #define PSINJECT_DOCSUPPLIEDRES 6
322
+ #define PSINJECT_PAGEORDER 7
323
+ #define PSINJECT_ORIENTATION 8
324
+ #define PSINJECT_BOUNDINGBOX 9
325
+ #define PSINJECT_DOCUMENTPROCESSCOLORS 10
326
+
327
+ #define PSINJECT_COMMENTS 11
328
+ #define PSINJECT_BEGINDEFAULTS 12
329
+ #define PSINJECT_ENDDEFAULTS 13
330
+ #define PSINJECT_BEGINPROLOG 14
331
+ #define PSINJECT_ENDPROLOG 15
332
+ #define PSINJECT_BEGINSETUP 16
333
+ #define PSINJECT_ENDSETUP 17
334
+ #define PSINJECT_TRAILER 18
335
+ #define PSINJECT_EOF 19
336
+ #define PSINJECT_ENDSTREAM 20
337
+ #define PSINJECT_DOCUMENTPROCESSCOLORSATEND 21
338
+
339
+ #define PSINJECT_PAGENUMBER 100
340
+ #define PSINJECT_BEGINPAGESETUP 101
341
+ #define PSINJECT_ENDPAGESETUP 102
342
+ #define PSINJECT_PAGETRAILER 103
343
+ #define PSINJECT_PLATECOLOR 104
344
+
345
+ #define PSINJECT_SHOWPAGE 105
346
+ #define PSINJECT_PAGEBBOX 106
347
+ #define PSINJECT_ENDPAGECOMMENTS 107
348
+
349
+ #define PSINJECT_VMSAVE 200
350
+ #define PSINJECT_VMRESTORE 201
351
+
352
+ #define FEATURESETTING_NUP 0
353
+ #define FEATURESETTING_OUTPUT 1
354
+ #define FEATURESETTING_PSLEVEL 2
355
+ #define FEATURESETTING_CUSTPAPER 3
356
+ #define FEATURESETTING_MIRROR 4
357
+ #define FEATURESETTING_NEGATIVE 5
358
+ #define FEATURESETTING_PROTOCOL 6
359
+
360
+ #define FEATURESETTING_PRIVATE_BEGIN 0x1000
361
+ #define FEATURESETTING_PRIVATE_END 0x1FFF
362
+
363
+ typedef struct _PSFEATURE_OUTPUT {
364
+ WINBOOL bPageIndependent;
365
+ WINBOOL bSetPageDevice;
366
+ } PSFEATURE_OUTPUT,*PPSFEATURE_OUTPUT;
367
+
368
+ typedef struct _PSFEATURE_CUSTPAPER {
369
+ LONG lOrientation;
370
+ LONG lWidth;
371
+ LONG lHeight;
372
+ LONG lWidthOffset;
373
+ LONG lHeightOffset;
374
+ } PSFEATURE_CUSTPAPER,*PPSFEATURE_CUSTPAPER;
375
+
376
+ #define PSPROTOCOL_ASCII 0
377
+ #define PSPROTOCOL_BCP 1
378
+ #define PSPROTOCOL_TBCP 2
379
+ #define PSPROTOCOL_BINARY 3
380
+
381
+ #define QDI_SETDIBITS 1
382
+ #define QDI_GETDIBITS 2
383
+ #define QDI_DIBTOSCREEN 4
384
+ #define QDI_STRETCHDIB 8
385
+
386
+ #define SP_NOTREPORTED 0x4000
387
+ #define SP_ERROR (-1)
388
+ #define SP_APPABORT (-2)
389
+ #define SP_USERABORT (-3)
390
+ #define SP_OUTOFDISK (-4)
391
+ #define SP_OUTOFMEMORY (-5)
392
+
393
+ #define PR_JOBSTATUS 0x0000
394
+
395
+ #define OBJ_PEN 1
396
+ #define OBJ_BRUSH 2
397
+ #define OBJ_DC 3
398
+ #define OBJ_METADC 4
399
+ #define OBJ_PAL 5
400
+ #define OBJ_FONT 6
401
+ #define OBJ_BITMAP 7
402
+ #define OBJ_REGION 8
403
+ #define OBJ_METAFILE 9
404
+ #define OBJ_MEMDC 10
405
+ #define OBJ_EXTPEN 11
406
+ #define OBJ_ENHMETADC 12
407
+ #define OBJ_ENHMETAFILE 13
408
+ #define OBJ_COLORSPACE 14
409
+
410
+ #define MWT_IDENTITY 1
411
+ #define MWT_LEFTMULTIPLY 2
412
+ #define MWT_RIGHTMULTIPLY 3
413
+
414
+ #define MWT_MIN MWT_IDENTITY
415
+ #define MWT_MAX MWT_RIGHTMULTIPLY
416
+
417
+ #define _XFORM_
418
+ typedef struct tagXFORM {
419
+ FLOAT eM11;
420
+ FLOAT eM12;
421
+ FLOAT eM21;
422
+ FLOAT eM22;
423
+ FLOAT eDx;
424
+ FLOAT eDy;
425
+ } XFORM,*PXFORM,*LPXFORM;
426
+
427
+ typedef struct tagBITMAP {
428
+ LONG bmType;
429
+ LONG bmWidth;
430
+ LONG bmHeight;
431
+ LONG bmWidthBytes;
432
+ WORD bmPlanes;
433
+ WORD bmBitsPixel;
434
+ LPVOID bmBits;
435
+ } BITMAP,*PBITMAP,*NPBITMAP,*LPBITMAP;
436
+
437
+ #include <pshpack1.h>
438
+ typedef struct tagRGBTRIPLE {
439
+ BYTE rgbtBlue;
440
+ BYTE rgbtGreen;
441
+ BYTE rgbtRed;
442
+ } RGBTRIPLE;
443
+ #include <poppack.h>
444
+
445
+ typedef struct tagRGBQUAD {
446
+ BYTE rgbBlue;
447
+ BYTE rgbGreen;
448
+ BYTE rgbRed;
449
+ BYTE rgbReserved;
450
+ } RGBQUAD;
451
+ typedef RGBQUAD *LPRGBQUAD;
452
+
453
+ #define CS_ENABLE 0x00000001L
454
+ #define CS_DISABLE 0x00000002L
455
+ #define CS_DELETE_TRANSFORM 0x00000003L
456
+
457
+ //!__TINYC__: #define LCS_SIGNATURE 'PSOC'
458
+ //!__TINYC__: #define LCS_sRGB 'sRGB'
459
+ //!__TINYC__: #define LCS_WINDOWS_COLOR_SPACE 'Win '
460
+
461
+ typedef LONG LCSCSTYPE;
462
+ #define LCS_CALIBRATED_RGB 0x00000000L
463
+
464
+ typedef LONG LCSGAMUTMATCH;
465
+ #define LCS_GM_BUSINESS 0x00000001L
466
+ #define LCS_GM_GRAPHICS 0x00000002L
467
+ #define LCS_GM_IMAGES 0x00000004L
468
+ #define LCS_GM_ABS_COLORIMETRIC 0x00000008L
469
+
470
+ #define CM_OUT_OF_GAMUT 255
471
+ #define CM_IN_GAMUT 0
472
+
473
+ #define ICM_ADDPROFILE 1
474
+ #define ICM_DELETEPROFILE 2
475
+ #define ICM_QUERYPROFILE 3
476
+ #define ICM_SETDEFAULTPROFILE 4
477
+ #define ICM_REGISTERICMATCHER 5
478
+ #define ICM_UNREGISTERICMATCHER 6
479
+ #define ICM_QUERYMATCH 7
480
+
481
+ #define GetKValue(cmyk) ((BYTE)(cmyk))
482
+ #define GetYValue(cmyk) ((BYTE)((cmyk)>> 8))
483
+ #define GetMValue(cmyk) ((BYTE)((cmyk)>>16))
484
+ #define GetCValue(cmyk) ((BYTE)((cmyk)>>24))
485
+
486
+ #define CMYK(c,m,y,k) ((COLORREF)((((BYTE)(k)|((WORD)((BYTE)(y))<<8))|(((DWORD)(BYTE)(m))<<16))|(((DWORD)(BYTE)(c))<<24)))
487
+
488
+ typedef long FXPT16DOT16,*LPFXPT16DOT16;
489
+ typedef long FXPT2DOT30,*LPFXPT2DOT30;
490
+
491
+ typedef struct tagCIEXYZ {
492
+ FXPT2DOT30 ciexyzX;
493
+ FXPT2DOT30 ciexyzY;
494
+ FXPT2DOT30 ciexyzZ;
495
+ } CIEXYZ;
496
+ typedef CIEXYZ *LPCIEXYZ;
497
+
498
+ typedef struct tagICEXYZTRIPLE {
499
+ CIEXYZ ciexyzRed;
500
+ CIEXYZ ciexyzGreen;
501
+ CIEXYZ ciexyzBlue;
502
+ } CIEXYZTRIPLE;
503
+
504
+ typedef CIEXYZTRIPLE *LPCIEXYZTRIPLE;
505
+
506
+ typedef struct tagLOGCOLORSPACEA {
507
+ DWORD lcsSignature;
508
+ DWORD lcsVersion;
509
+ DWORD lcsSize;
510
+ LCSCSTYPE lcsCSType;
511
+ LCSGAMUTMATCH lcsIntent;
512
+ CIEXYZTRIPLE lcsEndpoints;
513
+ DWORD lcsGammaRed;
514
+ DWORD lcsGammaGreen;
515
+ DWORD lcsGammaBlue;
516
+ CHAR lcsFilename[MAX_PATH];
517
+ } LOGCOLORSPACEA,*LPLOGCOLORSPACEA;
518
+
519
+ typedef struct tagLOGCOLORSPACEW {
520
+ DWORD lcsSignature;
521
+ DWORD lcsVersion;
522
+ DWORD lcsSize;
523
+ LCSCSTYPE lcsCSType;
524
+ LCSGAMUTMATCH lcsIntent;
525
+ CIEXYZTRIPLE lcsEndpoints;
526
+ DWORD lcsGammaRed;
527
+ DWORD lcsGammaGreen;
528
+ DWORD lcsGammaBlue;
529
+ WCHAR lcsFilename[MAX_PATH];
530
+ } LOGCOLORSPACEW,*LPLOGCOLORSPACEW;
531
+
532
+ #ifdef UNICODE
533
+ typedef LOGCOLORSPACEW LOGCOLORSPACE;
534
+ typedef LPLOGCOLORSPACEW LPLOGCOLORSPACE;
535
+ #else
536
+ typedef LOGCOLORSPACEA LOGCOLORSPACE;
537
+ typedef LPLOGCOLORSPACEA LPLOGCOLORSPACE;
538
+ #endif
539
+
540
+ typedef struct tagBITMAPCOREHEADER {
541
+ DWORD bcSize;
542
+ WORD bcWidth;
543
+ WORD bcHeight;
544
+ WORD bcPlanes;
545
+ WORD bcBitCount;
546
+ } BITMAPCOREHEADER,*LPBITMAPCOREHEADER,*PBITMAPCOREHEADER;
547
+
548
+ typedef struct tagBITMAPINFOHEADER {
549
+ DWORD biSize;
550
+ LONG biWidth;
551
+ LONG biHeight;
552
+ WORD biPlanes;
553
+ WORD biBitCount;
554
+ DWORD biCompression;
555
+ DWORD biSizeImage;
556
+ LONG biXPelsPerMeter;
557
+ LONG biYPelsPerMeter;
558
+ DWORD biClrUsed;
559
+ DWORD biClrImportant;
560
+ } BITMAPINFOHEADER,*LPBITMAPINFOHEADER,*PBITMAPINFOHEADER;
561
+
562
+ typedef struct {
563
+ DWORD bV4Size;
564
+ LONG bV4Width;
565
+ LONG bV4Height;
566
+ WORD bV4Planes;
567
+ WORD bV4BitCount;
568
+ DWORD bV4V4Compression;
569
+ DWORD bV4SizeImage;
570
+ LONG bV4XPelsPerMeter;
571
+ LONG bV4YPelsPerMeter;
572
+ DWORD bV4ClrUsed;
573
+ DWORD bV4ClrImportant;
574
+ DWORD bV4RedMask;
575
+ DWORD bV4GreenMask;
576
+ DWORD bV4BlueMask;
577
+ DWORD bV4AlphaMask;
578
+ DWORD bV4CSType;
579
+ CIEXYZTRIPLE bV4Endpoints;
580
+ DWORD bV4GammaRed;
581
+ DWORD bV4GammaGreen;
582
+ DWORD bV4GammaBlue;
583
+ } BITMAPV4HEADER,*LPBITMAPV4HEADER,*PBITMAPV4HEADER;
584
+
585
+ typedef struct {
586
+ DWORD bV5Size;
587
+ LONG bV5Width;
588
+ LONG bV5Height;
589
+ WORD bV5Planes;
590
+ WORD bV5BitCount;
591
+ DWORD bV5Compression;
592
+ DWORD bV5SizeImage;
593
+ LONG bV5XPelsPerMeter;
594
+ LONG bV5YPelsPerMeter;
595
+ DWORD bV5ClrUsed;
596
+ DWORD bV5ClrImportant;
597
+ DWORD bV5RedMask;
598
+ DWORD bV5GreenMask;
599
+ DWORD bV5BlueMask;
600
+ DWORD bV5AlphaMask;
601
+ DWORD bV5CSType;
602
+ CIEXYZTRIPLE bV5Endpoints;
603
+ DWORD bV5GammaRed;
604
+ DWORD bV5GammaGreen;
605
+ DWORD bV5GammaBlue;
606
+ DWORD bV5Intent;
607
+ DWORD bV5ProfileData;
608
+ DWORD bV5ProfileSize;
609
+ DWORD bV5Reserved;
610
+ } BITMAPV5HEADER,*LPBITMAPV5HEADER,*PBITMAPV5HEADER;
611
+
612
+ //!__TINYC__: #define PROFILE_LINKED 'LINK'
613
+ //!__TINYC__: #define PROFILE_EMBEDDED 'MBED'
614
+
615
+ #define BI_RGB 0L
616
+ #define BI_RLE8 1L
617
+ #define BI_RLE4 2L
618
+ #define BI_BITFIELDS 3L
619
+ #define BI_JPEG 4L
620
+ #define BI_PNG 5L
621
+
622
+ typedef struct tagBITMAPINFO {
623
+ BITMAPINFOHEADER bmiHeader;
624
+ RGBQUAD bmiColors[1];
625
+ } BITMAPINFO,*LPBITMAPINFO,*PBITMAPINFO;
626
+
627
+ typedef struct tagBITMAPCOREINFO {
628
+ BITMAPCOREHEADER bmciHeader;
629
+ RGBTRIPLE bmciColors[1];
630
+ } BITMAPCOREINFO,*LPBITMAPCOREINFO,*PBITMAPCOREINFO;
631
+
632
+ #include <pshpack2.h>
633
+ typedef struct tagBITMAPFILEHEADER {
634
+ WORD bfType;
635
+ DWORD bfSize;
636
+ WORD bfReserved1;
637
+ WORD bfReserved2;
638
+ DWORD bfOffBits;
639
+ } BITMAPFILEHEADER,*LPBITMAPFILEHEADER,*PBITMAPFILEHEADER;
640
+ #include <poppack.h>
641
+
642
+ #define MAKEPOINTS(l) (*((POINTS *)&(l)))
643
+
644
+ #ifndef NOFONTSIG
645
+ typedef struct tagFONTSIGNATURE {
646
+ DWORD fsUsb[4];
647
+ DWORD fsCsb[2];
648
+ } FONTSIGNATURE,*PFONTSIGNATURE,*LPFONTSIGNATURE;
649
+
650
+ typedef struct tagCHARSETINFO {
651
+ UINT ciCharset;
652
+ UINT ciACP;
653
+ FONTSIGNATURE fs;
654
+ } CHARSETINFO,*PCHARSETINFO,*NPCHARSETINFO,*LPCHARSETINFO;
655
+
656
+ #define TCI_SRCCHARSET 1
657
+ #define TCI_SRCCODEPAGE 2
658
+ #define TCI_SRCFONTSIG 3
659
+ #define TCI_SRCLOCALE 0x1000
660
+
661
+ typedef struct tagLOCALESIGNATURE {
662
+ DWORD lsUsb[4];
663
+ DWORD lsCsbDefault[2];
664
+ DWORD lsCsbSupported[2];
665
+ } LOCALESIGNATURE,*PLOCALESIGNATURE,*LPLOCALESIGNATURE;
666
+ #endif
667
+
668
+
669
+ #ifndef NOMETAFILE
670
+ typedef struct tagHANDLETABLE {
671
+ HGDIOBJ objectHandle[1];
672
+ } HANDLETABLE,*PHANDLETABLE,*LPHANDLETABLE;
673
+
674
+ typedef struct tagMETARECORD {
675
+ DWORD rdSize;
676
+ WORD rdFunction;
677
+ WORD rdParm[1];
678
+ } METARECORD;
679
+ typedef struct tagMETARECORD UNALIGNED *PMETARECORD;
680
+ typedef struct tagMETARECORD UNALIGNED *LPMETARECORD;
681
+
682
+ typedef struct tagMETAFILEPICT {
683
+ LONG mm;
684
+ LONG xExt;
685
+ LONG yExt;
686
+ HMETAFILE hMF;
687
+ } METAFILEPICT,*LPMETAFILEPICT;
688
+
689
+ #include <pshpack2.h>
690
+ typedef struct tagMETAHEADER {
691
+ WORD mtType;
692
+ WORD mtHeaderSize;
693
+ WORD mtVersion;
694
+ DWORD mtSize;
695
+ WORD mtNoObjects;
696
+ DWORD mtMaxRecord;
697
+ WORD mtNoParameters;
698
+ } METAHEADER;
699
+ typedef struct tagMETAHEADER UNALIGNED *PMETAHEADER;
700
+ typedef struct tagMETAHEADER UNALIGNED *LPMETAHEADER;
701
+
702
+ #include <poppack.h>
703
+
704
+ typedef struct tagENHMETARECORD {
705
+ DWORD iType;
706
+ DWORD nSize;
707
+ DWORD dParm[1];
708
+ } ENHMETARECORD,*PENHMETARECORD,*LPENHMETARECORD;
709
+
710
+ typedef struct tagENHMETAHEADER {
711
+ DWORD iType;
712
+ DWORD nSize;
713
+ RECTL rclBounds;
714
+ RECTL rclFrame;
715
+ DWORD dSignature;
716
+ DWORD nVersion;
717
+ DWORD nBytes;
718
+ DWORD nRecords;
719
+ WORD nHandles;
720
+ WORD sReserved;
721
+ DWORD nDescription;
722
+ DWORD offDescription;
723
+ DWORD nPalEntries;
724
+ SIZEL szlDevice;
725
+ SIZEL szlMillimeters;
726
+ DWORD cbPixelFormat;
727
+ DWORD offPixelFormat;
728
+ DWORD bOpenGL;
729
+ SIZEL szlMicrometers;
730
+ } ENHMETAHEADER,*PENHMETAHEADER,*LPENHMETAHEADER;
731
+ #endif
732
+
733
+ #ifndef NOTEXTMETRIC
734
+ #define TMPF_FIXED_PITCH 0x01
735
+ #define TMPF_VECTOR 0x02
736
+ #define TMPF_DEVICE 0x08
737
+ #define TMPF_TRUETYPE 0x04
738
+
739
+ #ifdef UNICODE
740
+ typedef WCHAR BCHAR;
741
+ #else
742
+ typedef BYTE BCHAR;
743
+ #endif
744
+
745
+ #ifndef _TEXTMETRIC_DEFINED
746
+ #define _TEXTMETRIC_DEFINED
747
+ typedef struct tagTEXTMETRICA {
748
+ LONG tmHeight;
749
+ LONG tmAscent;
750
+ LONG tmDescent;
751
+ LONG tmInternalLeading;
752
+ LONG tmExternalLeading;
753
+ LONG tmAveCharWidth;
754
+ LONG tmMaxCharWidth;
755
+ LONG tmWeight;
756
+ LONG tmOverhang;
757
+ LONG tmDigitizedAspectX;
758
+ LONG tmDigitizedAspectY;
759
+ BYTE tmFirstChar;
760
+ BYTE tmLastChar;
761
+ BYTE tmDefaultChar;
762
+ BYTE tmBreakChar;
763
+ BYTE tmItalic;
764
+ BYTE tmUnderlined;
765
+ BYTE tmStruckOut;
766
+ BYTE tmPitchAndFamily;
767
+ BYTE tmCharSet;
768
+ } TEXTMETRICA,*PTEXTMETRICA,*NPTEXTMETRICA,*LPTEXTMETRICA;
769
+
770
+ typedef struct tagTEXTMETRICW {
771
+ LONG tmHeight;
772
+ LONG tmAscent;
773
+ LONG tmDescent;
774
+ LONG tmInternalLeading;
775
+ LONG tmExternalLeading;
776
+ LONG tmAveCharWidth;
777
+ LONG tmMaxCharWidth;
778
+ LONG tmWeight;
779
+ LONG tmOverhang;
780
+ LONG tmDigitizedAspectX;
781
+ LONG tmDigitizedAspectY;
782
+ WCHAR tmFirstChar;
783
+ WCHAR tmLastChar;
784
+ WCHAR tmDefaultChar;
785
+ WCHAR tmBreakChar;
786
+ BYTE tmItalic;
787
+ BYTE tmUnderlined;
788
+ BYTE tmStruckOut;
789
+ BYTE tmPitchAndFamily;
790
+ BYTE tmCharSet;
791
+ } TEXTMETRICW,*PTEXTMETRICW,*NPTEXTMETRICW,*LPTEXTMETRICW;
792
+ #ifdef UNICODE
793
+ typedef TEXTMETRICW TEXTMETRIC;
794
+ typedef PTEXTMETRICW PTEXTMETRIC;
795
+ typedef NPTEXTMETRICW NPTEXTMETRIC;
796
+ typedef LPTEXTMETRICW LPTEXTMETRIC;
797
+ #else
798
+ typedef TEXTMETRICA TEXTMETRIC;
799
+ typedef PTEXTMETRICA PTEXTMETRIC;
800
+ typedef NPTEXTMETRICA NPTEXTMETRIC;
801
+ typedef LPTEXTMETRICA LPTEXTMETRIC;
802
+ #endif
803
+ #endif
804
+
805
+ #define NTM_REGULAR 0x00000040L
806
+ #define NTM_BOLD 0x00000020L
807
+ #define NTM_ITALIC 0x00000001L
808
+
809
+ #define NTM_NONNEGATIVE_AC 0x00010000
810
+ #define NTM_PS_OPENTYPE 0x00020000
811
+ #define NTM_TT_OPENTYPE 0x00040000
812
+ #define NTM_MULTIPLEMASTER 0x00080000
813
+ #define NTM_TYPE1 0x00100000
814
+ #define NTM_DSIG 0x00200000
815
+
816
+ #include <pshpack4.h>
817
+ typedef struct tagNEWTEXTMETRICA {
818
+ LONG tmHeight;
819
+ LONG tmAscent;
820
+ LONG tmDescent;
821
+ LONG tmInternalLeading;
822
+ LONG tmExternalLeading;
823
+ LONG tmAveCharWidth;
824
+ LONG tmMaxCharWidth;
825
+ LONG tmWeight;
826
+ LONG tmOverhang;
827
+ LONG tmDigitizedAspectX;
828
+ LONG tmDigitizedAspectY;
829
+ BYTE tmFirstChar;
830
+ BYTE tmLastChar;
831
+ BYTE tmDefaultChar;
832
+ BYTE tmBreakChar;
833
+ BYTE tmItalic;
834
+ BYTE tmUnderlined;
835
+ BYTE tmStruckOut;
836
+ BYTE tmPitchAndFamily;
837
+ BYTE tmCharSet;
838
+ DWORD ntmFlags;
839
+ UINT ntmSizeEM;
840
+ UINT ntmCellHeight;
841
+ UINT ntmAvgWidth;
842
+ } NEWTEXTMETRICA,*PNEWTEXTMETRICA,*NPNEWTEXTMETRICA,*LPNEWTEXTMETRICA;
843
+
844
+ typedef struct tagNEWTEXTMETRICW {
845
+ LONG tmHeight;
846
+ LONG tmAscent;
847
+ LONG tmDescent;
848
+ LONG tmInternalLeading;
849
+ LONG tmExternalLeading;
850
+ LONG tmAveCharWidth;
851
+ LONG tmMaxCharWidth;
852
+ LONG tmWeight;
853
+ LONG tmOverhang;
854
+ LONG tmDigitizedAspectX;
855
+ LONG tmDigitizedAspectY;
856
+ WCHAR tmFirstChar;
857
+ WCHAR tmLastChar;
858
+ WCHAR tmDefaultChar;
859
+ WCHAR tmBreakChar;
860
+ BYTE tmItalic;
861
+ BYTE tmUnderlined;
862
+ BYTE tmStruckOut;
863
+ BYTE tmPitchAndFamily;
864
+ BYTE tmCharSet;
865
+ DWORD ntmFlags;
866
+ UINT ntmSizeEM;
867
+ UINT ntmCellHeight;
868
+ UINT ntmAvgWidth;
869
+ } NEWTEXTMETRICW,*PNEWTEXTMETRICW,*NPNEWTEXTMETRICW,*LPNEWTEXTMETRICW;
870
+ #ifdef UNICODE
871
+ typedef NEWTEXTMETRICW NEWTEXTMETRIC;
872
+ typedef PNEWTEXTMETRICW PNEWTEXTMETRIC;
873
+ typedef NPNEWTEXTMETRICW NPNEWTEXTMETRIC;
874
+ typedef LPNEWTEXTMETRICW LPNEWTEXTMETRIC;
875
+ #else
876
+ typedef NEWTEXTMETRICA NEWTEXTMETRIC;
877
+ typedef PNEWTEXTMETRICA PNEWTEXTMETRIC;
878
+ typedef NPNEWTEXTMETRICA NPNEWTEXTMETRIC;
879
+ typedef LPNEWTEXTMETRICA LPNEWTEXTMETRIC;
880
+ #endif
881
+ #include <poppack.h>
882
+
883
+ typedef struct tagNEWTEXTMETRICEXA {
884
+ NEWTEXTMETRICA ntmTm;
885
+ FONTSIGNATURE ntmFontSig;
886
+ } NEWTEXTMETRICEXA;
887
+
888
+ typedef struct tagNEWTEXTMETRICEXW {
889
+ NEWTEXTMETRICW ntmTm;
890
+ FONTSIGNATURE ntmFontSig;
891
+ } NEWTEXTMETRICEXW;
892
+ #ifdef UNICODE
893
+ typedef NEWTEXTMETRICEXW NEWTEXTMETRICEX;
894
+ #else
895
+ typedef NEWTEXTMETRICEXA NEWTEXTMETRICEX;
896
+ #endif
897
+ #endif
898
+
899
+ typedef struct tagPELARRAY {
900
+ LONG paXCount;
901
+ LONG paYCount;
902
+ LONG paXExt;
903
+ LONG paYExt;
904
+ BYTE paRGBs;
905
+ } PELARRAY,*PPELARRAY,*NPPELARRAY,*LPPELARRAY;
906
+
907
+ typedef struct tagLOGBRUSH {
908
+ UINT lbStyle;
909
+ COLORREF lbColor;
910
+ ULONG_PTR lbHatch;
911
+ } LOGBRUSH,*PLOGBRUSH,*NPLOGBRUSH,*LPLOGBRUSH;
912
+
913
+ typedef struct tagLOGBRUSH32 {
914
+ UINT lbStyle;
915
+ COLORREF lbColor;
916
+ ULONG lbHatch;
917
+ } LOGBRUSH32,*PLOGBRUSH32,*NPLOGBRUSH32,*LPLOGBRUSH32;
918
+
919
+ typedef LOGBRUSH PATTERN;
920
+ typedef PATTERN *PPATTERN;
921
+ typedef PATTERN *NPPATTERN;
922
+ typedef PATTERN *LPPATTERN;
923
+
924
+ typedef struct tagLOGPEN {
925
+ UINT lopnStyle;
926
+ POINT lopnWidth;
927
+ COLORREF lopnColor;
928
+ } LOGPEN,*PLOGPEN,*NPLOGPEN,*LPLOGPEN;
929
+
930
+ typedef struct tagEXTLOGPEN {
931
+ DWORD elpPenStyle;
932
+ DWORD elpWidth;
933
+ UINT elpBrushStyle;
934
+ COLORREF elpColor;
935
+ ULONG_PTR elpHatch;
936
+ DWORD elpNumEntries;
937
+ DWORD elpStyleEntry[1];
938
+ } EXTLOGPEN,*PEXTLOGPEN,*NPEXTLOGPEN,*LPEXTLOGPEN;
939
+
940
+ #ifndef _PALETTEENTRY_DEFINED
941
+ #define _PALETTEENTRY_DEFINED
942
+ typedef struct tagPALETTEENTRY {
943
+ BYTE peRed;
944
+ BYTE peGreen;
945
+ BYTE peBlue;
946
+ BYTE peFlags;
947
+ } PALETTEENTRY,*PPALETTEENTRY,*LPPALETTEENTRY;
948
+ #endif
949
+
950
+ #ifndef _LOGPALETTE_DEFINED
951
+ #define _LOGPALETTE_DEFINED
952
+
953
+ typedef struct tagLOGPALETTE {
954
+ WORD palVersion;
955
+ WORD palNumEntries;
956
+ PALETTEENTRY palPalEntry[1];
957
+ } LOGPALETTE,*PLOGPALETTE,*NPLOGPALETTE,*LPLOGPALETTE;
958
+ #endif
959
+
960
+ #define LF_FACESIZE 32
961
+
962
+ typedef struct tagLOGFONTA {
963
+ LONG lfHeight;
964
+ LONG lfWidth;
965
+ LONG lfEscapement;
966
+ LONG lfOrientation;
967
+ LONG lfWeight;
968
+ BYTE lfItalic;
969
+ BYTE lfUnderline;
970
+ BYTE lfStrikeOut;
971
+ BYTE lfCharSet;
972
+ BYTE lfOutPrecision;
973
+ BYTE lfClipPrecision;
974
+ BYTE lfQuality;
975
+ BYTE lfPitchAndFamily;
976
+ CHAR lfFaceName[LF_FACESIZE];
977
+ } LOGFONTA,*PLOGFONTA,*NPLOGFONTA,*LPLOGFONTA;
978
+
979
+ typedef struct tagLOGFONTW {
980
+ LONG lfHeight;
981
+ LONG lfWidth;
982
+ LONG lfEscapement;
983
+ LONG lfOrientation;
984
+ LONG lfWeight;
985
+ BYTE lfItalic;
986
+ BYTE lfUnderline;
987
+ BYTE lfStrikeOut;
988
+ BYTE lfCharSet;
989
+ BYTE lfOutPrecision;
990
+ BYTE lfClipPrecision;
991
+ BYTE lfQuality;
992
+ BYTE lfPitchAndFamily;
993
+ WCHAR lfFaceName[LF_FACESIZE];
994
+ } LOGFONTW,*PLOGFONTW,*NPLOGFONTW,*LPLOGFONTW;
995
+ #ifdef UNICODE
996
+ typedef LOGFONTW LOGFONT;
997
+ typedef PLOGFONTW PLOGFONT;
998
+ typedef NPLOGFONTW NPLOGFONT;
999
+ typedef LPLOGFONTW LPLOGFONT;
1000
+ #else
1001
+ typedef LOGFONTA LOGFONT;
1002
+ typedef PLOGFONTA PLOGFONT;
1003
+ typedef NPLOGFONTA NPLOGFONT;
1004
+ typedef LPLOGFONTA LPLOGFONT;
1005
+ #endif
1006
+
1007
+ #define LF_FULLFACESIZE 64
1008
+
1009
+ typedef struct tagENUMLOGFONTA {
1010
+ LOGFONTA elfLogFont;
1011
+ BYTE elfFullName[LF_FULLFACESIZE];
1012
+ BYTE elfStyle[LF_FACESIZE];
1013
+ } ENUMLOGFONTA,*LPENUMLOGFONTA;
1014
+
1015
+ typedef struct tagENUMLOGFONTW {
1016
+ LOGFONTW elfLogFont;
1017
+ WCHAR elfFullName[LF_FULLFACESIZE];
1018
+ WCHAR elfStyle[LF_FACESIZE];
1019
+ } ENUMLOGFONTW,*LPENUMLOGFONTW;
1020
+ #ifdef UNICODE
1021
+ typedef ENUMLOGFONTW ENUMLOGFONT;
1022
+ typedef LPENUMLOGFONTW LPENUMLOGFONT;
1023
+ #else
1024
+ typedef ENUMLOGFONTA ENUMLOGFONT;
1025
+ typedef LPENUMLOGFONTA LPENUMLOGFONT;
1026
+ #endif
1027
+
1028
+ typedef struct tagENUMLOGFONTEXA {
1029
+ LOGFONTA elfLogFont;
1030
+ BYTE elfFullName[LF_FULLFACESIZE];
1031
+ BYTE elfStyle[LF_FACESIZE];
1032
+ BYTE elfScript[LF_FACESIZE];
1033
+ } ENUMLOGFONTEXA,*LPENUMLOGFONTEXA;
1034
+
1035
+ typedef struct tagENUMLOGFONTEXW {
1036
+ LOGFONTW elfLogFont;
1037
+ WCHAR elfFullName[LF_FULLFACESIZE];
1038
+ WCHAR elfStyle[LF_FACESIZE];
1039
+ WCHAR elfScript[LF_FACESIZE];
1040
+ } ENUMLOGFONTEXW,*LPENUMLOGFONTEXW;
1041
+ #ifdef UNICODE
1042
+ typedef ENUMLOGFONTEXW ENUMLOGFONTEX;
1043
+ typedef LPENUMLOGFONTEXW LPENUMLOGFONTEX;
1044
+ #else
1045
+ typedef ENUMLOGFONTEXA ENUMLOGFONTEX;
1046
+ typedef LPENUMLOGFONTEXA LPENUMLOGFONTEX;
1047
+ #endif
1048
+
1049
+ #define OUT_DEFAULT_PRECIS 0
1050
+ #define OUT_STRING_PRECIS 1
1051
+ #define OUT_CHARACTER_PRECIS 2
1052
+ #define OUT_STROKE_PRECIS 3
1053
+ #define OUT_TT_PRECIS 4
1054
+ #define OUT_DEVICE_PRECIS 5
1055
+ #define OUT_RASTER_PRECIS 6
1056
+ #define OUT_TT_ONLY_PRECIS 7
1057
+ #define OUT_OUTLINE_PRECIS 8
1058
+ #define OUT_SCREEN_OUTLINE_PRECIS 9
1059
+ #define OUT_PS_ONLY_PRECIS 10
1060
+
1061
+ #define CLIP_DEFAULT_PRECIS 0
1062
+ #define CLIP_CHARACTER_PRECIS 1
1063
+ #define CLIP_STROKE_PRECIS 2
1064
+ #define CLIP_MASK 0xf
1065
+ #define CLIP_LH_ANGLES (1<<4)
1066
+ #define CLIP_TT_ALWAYS (2<<4)
1067
+ #define CLIP_DFA_DISABLE (4<<4)
1068
+ #define CLIP_EMBEDDED (8<<4)
1069
+
1070
+ #define DEFAULT_QUALITY 0
1071
+ #define DRAFT_QUALITY 1
1072
+ #define PROOF_QUALITY 2
1073
+ #define NONANTIALIASED_QUALITY 3
1074
+ #define ANTIALIASED_QUALITY 4
1075
+
1076
+ #define CLEARTYPE_QUALITY 5
1077
+ #define CLEARTYPE_NATURAL_QUALITY 6
1078
+
1079
+ #define DEFAULT_PITCH 0
1080
+ #define FIXED_PITCH 1
1081
+ #define VARIABLE_PITCH 2
1082
+ #define MONO_FONT 8
1083
+
1084
+ #define ANSI_CHARSET 0
1085
+ #define DEFAULT_CHARSET 1
1086
+ #define SYMBOL_CHARSET 2
1087
+ #define SHIFTJIS_CHARSET 128
1088
+ #define HANGEUL_CHARSET 129
1089
+ #define HANGUL_CHARSET 129
1090
+ #define GB2312_CHARSET 134
1091
+ #define CHINESEBIG5_CHARSET 136
1092
+ #define OEM_CHARSET 255
1093
+ #define JOHAB_CHARSET 130
1094
+ #define HEBREW_CHARSET 177
1095
+ #define ARABIC_CHARSET 178
1096
+ #define GREEK_CHARSET 161
1097
+ #define TURKISH_CHARSET 162
1098
+ #define VIETNAMESE_CHARSET 163
1099
+ #define THAI_CHARSET 222
1100
+ #define EASTEUROPE_CHARSET 238
1101
+ #define RUSSIAN_CHARSET 204
1102
+
1103
+ #define MAC_CHARSET 77
1104
+ #define BALTIC_CHARSET 186
1105
+
1106
+ #define FS_LATIN1 0x00000001L
1107
+ #define FS_LATIN2 0x00000002L
1108
+ #define FS_CYRILLIC 0x00000004L
1109
+ #define FS_GREEK 0x00000008L
1110
+ #define FS_TURKISH 0x00000010L
1111
+ #define FS_HEBREW 0x00000020L
1112
+ #define FS_ARABIC 0x00000040L
1113
+ #define FS_BALTIC 0x00000080L
1114
+ #define FS_VIETNAMESE 0x00000100L
1115
+ #define FS_THAI 0x00010000L
1116
+ #define FS_JISJAPAN 0x00020000L
1117
+ #define FS_CHINESESIMP 0x00040000L
1118
+ #define FS_WANSUNG 0x00080000L
1119
+ #define FS_CHINESETRAD 0x00100000L
1120
+ #define FS_JOHAB 0x00200000L
1121
+ #define FS_SYMBOL 0x80000000L
1122
+
1123
+ #define FF_DONTCARE (0<<4)
1124
+ #define FF_ROMAN (1<<4)
1125
+
1126
+ #define FF_SWISS (2<<4)
1127
+
1128
+ #define FF_MODERN (3<<4)
1129
+
1130
+ #define FF_SCRIPT (4<<4)
1131
+ #define FF_DECORATIVE (5<<4)
1132
+
1133
+ #define FW_DONTCARE 0
1134
+ #define FW_THIN 100
1135
+ #define FW_EXTRALIGHT 200
1136
+ #define FW_LIGHT 300
1137
+ #define FW_NORMAL 400
1138
+ #define FW_MEDIUM 500
1139
+ #define FW_SEMIBOLD 600
1140
+ #define FW_BOLD 700
1141
+ #define FW_EXTRABOLD 800
1142
+ #define FW_HEAVY 900
1143
+
1144
+ #define FW_ULTRALIGHT FW_EXTRALIGHT
1145
+ #define FW_REGULAR FW_NORMAL
1146
+ #define FW_DEMIBOLD FW_SEMIBOLD
1147
+ #define FW_ULTRABOLD FW_EXTRABOLD
1148
+ #define FW_BLACK FW_HEAVY
1149
+
1150
+ #define PANOSE_COUNT 10
1151
+ #define PAN_FAMILYTYPE_INDEX 0
1152
+ #define PAN_SERIFSTYLE_INDEX 1
1153
+ #define PAN_WEIGHT_INDEX 2
1154
+ #define PAN_PROPORTION_INDEX 3
1155
+ #define PAN_CONTRAST_INDEX 4
1156
+ #define PAN_STROKEVARIATION_INDEX 5
1157
+ #define PAN_ARMSTYLE_INDEX 6
1158
+ #define PAN_LETTERFORM_INDEX 7
1159
+ #define PAN_MIDLINE_INDEX 8
1160
+ #define PAN_XHEIGHT_INDEX 9
1161
+
1162
+ #define PAN_CULTURE_LATIN 0
1163
+
1164
+ typedef struct tagPANOSE {
1165
+ BYTE bFamilyType;
1166
+ BYTE bSerifStyle;
1167
+ BYTE bWeight;
1168
+ BYTE bProportion;
1169
+ BYTE bContrast;
1170
+ BYTE bStrokeVariation;
1171
+ BYTE bArmStyle;
1172
+ BYTE bLetterform;
1173
+ BYTE bMidline;
1174
+ BYTE bXHeight;
1175
+ } PANOSE,*LPPANOSE;
1176
+
1177
+ #define PAN_ANY 0
1178
+ #define PAN_NO_FIT 1
1179
+
1180
+ #define PAN_FAMILY_TEXT_DISPLAY 2
1181
+ #define PAN_FAMILY_SCRIPT 3
1182
+ #define PAN_FAMILY_DECORATIVE 4
1183
+ #define PAN_FAMILY_PICTORIAL 5
1184
+
1185
+ #define PAN_SERIF_COVE 2
1186
+ #define PAN_SERIF_OBTUSE_COVE 3
1187
+ #define PAN_SERIF_SQUARE_COVE 4
1188
+ #define PAN_SERIF_OBTUSE_SQUARE_COVE 5
1189
+ #define PAN_SERIF_SQUARE 6
1190
+ #define PAN_SERIF_THIN 7
1191
+ #define PAN_SERIF_BONE 8
1192
+ #define PAN_SERIF_EXAGGERATED 9
1193
+ #define PAN_SERIF_TRIANGLE 10
1194
+ #define PAN_SERIF_NORMAL_SANS 11
1195
+ #define PAN_SERIF_OBTUSE_SANS 12
1196
+ #define PAN_SERIF_PERP_SANS 13
1197
+ #define PAN_SERIF_FLARED 14
1198
+ #define PAN_SERIF_ROUNDED 15
1199
+
1200
+ #define PAN_WEIGHT_VERY_LIGHT 2
1201
+ #define PAN_WEIGHT_LIGHT 3
1202
+ #define PAN_WEIGHT_THIN 4
1203
+ #define PAN_WEIGHT_BOOK 5
1204
+ #define PAN_WEIGHT_MEDIUM 6
1205
+ #define PAN_WEIGHT_DEMI 7
1206
+ #define PAN_WEIGHT_BOLD 8
1207
+ #define PAN_WEIGHT_HEAVY 9
1208
+ #define PAN_WEIGHT_BLACK 10
1209
+ #define PAN_WEIGHT_NORD 11
1210
+
1211
+ #define PAN_PROP_OLD_STYLE 2
1212
+ #define PAN_PROP_MODERN 3
1213
+ #define PAN_PROP_EVEN_WIDTH 4
1214
+ #define PAN_PROP_EXPANDED 5
1215
+ #define PAN_PROP_CONDENSED 6
1216
+ #define PAN_PROP_VERY_EXPANDED 7
1217
+ #define PAN_PROP_VERY_CONDENSED 8
1218
+ #define PAN_PROP_MONOSPACED 9
1219
+
1220
+ #define PAN_CONTRAST_NONE 2
1221
+ #define PAN_CONTRAST_VERY_LOW 3
1222
+ #define PAN_CONTRAST_LOW 4
1223
+ #define PAN_CONTRAST_MEDIUM_LOW 5
1224
+ #define PAN_CONTRAST_MEDIUM 6
1225
+ #define PAN_CONTRAST_MEDIUM_HIGH 7
1226
+ #define PAN_CONTRAST_HIGH 8
1227
+ #define PAN_CONTRAST_VERY_HIGH 9
1228
+
1229
+ #define PAN_STROKE_GRADUAL_DIAG 2
1230
+ #define PAN_STROKE_GRADUAL_TRAN 3
1231
+ #define PAN_STROKE_GRADUAL_VERT 4
1232
+ #define PAN_STROKE_GRADUAL_HORZ 5
1233
+ #define PAN_STROKE_RAPID_VERT 6
1234
+ #define PAN_STROKE_RAPID_HORZ 7
1235
+ #define PAN_STROKE_INSTANT_VERT 8
1236
+
1237
+ #define PAN_STRAIGHT_ARMS_HORZ 2
1238
+ #define PAN_STRAIGHT_ARMS_WEDGE 3
1239
+ #define PAN_STRAIGHT_ARMS_VERT 4
1240
+ #define PAN_STRAIGHT_ARMS_SINGLE_SERIF 5
1241
+ #define PAN_STRAIGHT_ARMS_DOUBLE_SERIF 6
1242
+ #define PAN_BENT_ARMS_HORZ 7
1243
+ #define PAN_BENT_ARMS_WEDGE 8
1244
+ #define PAN_BENT_ARMS_VERT 9
1245
+ #define PAN_BENT_ARMS_SINGLE_SERIF 10
1246
+ #define PAN_BENT_ARMS_DOUBLE_SERIF 11
1247
+
1248
+ #define PAN_LETT_NORMAL_CONTACT 2
1249
+ #define PAN_LETT_NORMAL_WEIGHTED 3
1250
+ #define PAN_LETT_NORMAL_BOXED 4
1251
+ #define PAN_LETT_NORMAL_FLATTENED 5
1252
+ #define PAN_LETT_NORMAL_ROUNDED 6
1253
+ #define PAN_LETT_NORMAL_OFF_CENTER 7
1254
+ #define PAN_LETT_NORMAL_SQUARE 8
1255
+ #define PAN_LETT_OBLIQUE_CONTACT 9
1256
+ #define PAN_LETT_OBLIQUE_WEIGHTED 10
1257
+ #define PAN_LETT_OBLIQUE_BOXED 11
1258
+ #define PAN_LETT_OBLIQUE_FLATTENED 12
1259
+ #define PAN_LETT_OBLIQUE_ROUNDED 13
1260
+ #define PAN_LETT_OBLIQUE_OFF_CENTER 14
1261
+ #define PAN_LETT_OBLIQUE_SQUARE 15
1262
+
1263
+ #define PAN_MIDLINE_STANDARD_TRIMMED 2
1264
+ #define PAN_MIDLINE_STANDARD_POINTED 3
1265
+ #define PAN_MIDLINE_STANDARD_SERIFED 4
1266
+ #define PAN_MIDLINE_HIGH_TRIMMED 5
1267
+ #define PAN_MIDLINE_HIGH_POINTED 6
1268
+ #define PAN_MIDLINE_HIGH_SERIFED 7
1269
+ #define PAN_MIDLINE_CONSTANT_TRIMMED 8
1270
+ #define PAN_MIDLINE_CONSTANT_POINTED 9
1271
+ #define PAN_MIDLINE_CONSTANT_SERIFED 10
1272
+ #define PAN_MIDLINE_LOW_TRIMMED 11
1273
+ #define PAN_MIDLINE_LOW_POINTED 12
1274
+ #define PAN_MIDLINE_LOW_SERIFED 13
1275
+
1276
+ #define PAN_XHEIGHT_CONSTANT_SMALL 2
1277
+ #define PAN_XHEIGHT_CONSTANT_STD 3
1278
+ #define PAN_XHEIGHT_CONSTANT_LARGE 4
1279
+ #define PAN_XHEIGHT_DUCKING_SMALL 5
1280
+ #define PAN_XHEIGHT_DUCKING_STD 6
1281
+ #define PAN_XHEIGHT_DUCKING_LARGE 7
1282
+
1283
+ #define ELF_VENDOR_SIZE 4
1284
+
1285
+ typedef struct tagEXTLOGFONTA {
1286
+ LOGFONTA elfLogFont;
1287
+ BYTE elfFullName[LF_FULLFACESIZE];
1288
+ BYTE elfStyle[LF_FACESIZE];
1289
+ DWORD elfVersion;
1290
+ DWORD elfStyleSize;
1291
+ DWORD elfMatch;
1292
+ DWORD elfReserved;
1293
+ BYTE elfVendorId[ELF_VENDOR_SIZE];
1294
+ DWORD elfCulture;
1295
+ PANOSE elfPanose;
1296
+ } EXTLOGFONTA,*PEXTLOGFONTA,*NPEXTLOGFONTA,*LPEXTLOGFONTA;
1297
+
1298
+ typedef struct tagEXTLOGFONTW {
1299
+ LOGFONTW elfLogFont;
1300
+ WCHAR elfFullName[LF_FULLFACESIZE];
1301
+ WCHAR elfStyle[LF_FACESIZE];
1302
+ DWORD elfVersion;
1303
+ DWORD elfStyleSize;
1304
+ DWORD elfMatch;
1305
+ DWORD elfReserved;
1306
+ BYTE elfVendorId[ELF_VENDOR_SIZE];
1307
+ DWORD elfCulture;
1308
+ PANOSE elfPanose;
1309
+ } EXTLOGFONTW,*PEXTLOGFONTW,*NPEXTLOGFONTW,*LPEXTLOGFONTW;
1310
+ #ifdef UNICODE
1311
+ typedef EXTLOGFONTW EXTLOGFONT;
1312
+ typedef PEXTLOGFONTW PEXTLOGFONT;
1313
+ typedef NPEXTLOGFONTW NPEXTLOGFONT;
1314
+ typedef LPEXTLOGFONTW LPEXTLOGFONT;
1315
+ #else
1316
+ typedef EXTLOGFONTA EXTLOGFONT;
1317
+ typedef PEXTLOGFONTA PEXTLOGFONT;
1318
+ typedef NPEXTLOGFONTA NPEXTLOGFONT;
1319
+ typedef LPEXTLOGFONTA LPEXTLOGFONT;
1320
+ #endif
1321
+
1322
+ #define ELF_VERSION 0
1323
+ #define ELF_CULTURE_LATIN 0
1324
+
1325
+ #define RASTER_FONTTYPE 0x0001
1326
+ #define DEVICE_FONTTYPE 0x002
1327
+ #define TRUETYPE_FONTTYPE 0x004
1328
+
1329
+ #define RGB(r,g,b) ((COLORREF)(((BYTE)(r)|((WORD)((BYTE)(g))<<8))|(((DWORD)(BYTE)(b))<<16)))
1330
+ #define PALETTERGB(r,g,b) (0x02000000 | RGB(r,g,b))
1331
+ #define PALETTEINDEX(i) ((COLORREF)(0x01000000 | (DWORD)(WORD)(i)))
1332
+
1333
+ #define PC_RESERVED 0x01
1334
+ #define PC_EXPLICIT 0x02
1335
+ #define PC_NOCOLLAPSE 0x04
1336
+
1337
+ #define GetRValue(rgb) (LOBYTE(rgb))
1338
+ #define GetGValue(rgb) (LOBYTE(((WORD)(rgb)) >> 8))
1339
+ #define GetBValue(rgb) (LOBYTE((rgb)>>16))
1340
+
1341
+ #define TRANSPARENT 1
1342
+ #define OPAQUE 2
1343
+ #define BKMODE_LAST 2
1344
+
1345
+ #define GM_COMPATIBLE 1
1346
+ #define GM_ADVANCED 2
1347
+ #define GM_LAST 2
1348
+
1349
+ #define PT_CLOSEFIGURE 0x01
1350
+ #define PT_LINETO 0x02
1351
+ #define PT_BEZIERTO 0x04
1352
+ #define PT_MOVETO 0x06
1353
+
1354
+ #define MM_TEXT 1
1355
+ #define MM_LOMETRIC 2
1356
+ #define MM_HIMETRIC 3
1357
+ #define MM_LOENGLISH 4
1358
+ #define MM_HIENGLISH 5
1359
+ #define MM_TWIPS 6
1360
+ #define MM_ISOTROPIC 7
1361
+ #define MM_ANISOTROPIC 8
1362
+
1363
+ #define MM_MIN MM_TEXT
1364
+ #define MM_MAX MM_ANISOTROPIC
1365
+ #define MM_MAX_FIXEDSCALE MM_TWIPS
1366
+
1367
+ #define ABSOLUTE 1
1368
+ #define RELATIVE 2
1369
+
1370
+ #define WHITE_BRUSH 0
1371
+ #define LTGRAY_BRUSH 1
1372
+ #define GRAY_BRUSH 2
1373
+ #define DKGRAY_BRUSH 3
1374
+ #define BLACK_BRUSH 4
1375
+ #define NULL_BRUSH 5
1376
+ #define HOLLOW_BRUSH NULL_BRUSH
1377
+ #define WHITE_PEN 6
1378
+ #define BLACK_PEN 7
1379
+ #define NULL_PEN 8
1380
+ #define OEM_FIXED_FONT 10
1381
+ #define ANSI_FIXED_FONT 11
1382
+ #define ANSI_VAR_FONT 12
1383
+ #define SYSTEM_FONT 13
1384
+ #define DEVICE_DEFAULT_FONT 14
1385
+ #define DEFAULT_PALETTE 15
1386
+ #define SYSTEM_FIXED_FONT 16
1387
+
1388
+ #define DEFAULT_GUI_FONT 17
1389
+
1390
+ #define DC_BRUSH 18
1391
+ #define DC_PEN 19
1392
+
1393
+ #define STOCK_LAST 19
1394
+
1395
+ #define CLR_INVALID 0xFFFFFFFF
1396
+
1397
+ #define BS_SOLID 0
1398
+ #define BS_NULL 1
1399
+ #define BS_HOLLOW BS_NULL
1400
+ #define BS_HATCHED 2
1401
+ #define BS_PATTERN 3
1402
+ #define BS_INDEXED 4
1403
+ #define BS_DIBPATTERN 5
1404
+ #define BS_DIBPATTERNPT 6
1405
+ #define BS_PATTERN8X8 7
1406
+ #define BS_DIBPATTERN8X8 8
1407
+ #define BS_MONOPATTERN 9
1408
+
1409
+ #define HS_HORIZONTAL 0
1410
+ #define HS_VERTICAL 1
1411
+ #define HS_FDIAGONAL 2
1412
+ #define HS_BDIAGONAL 3
1413
+ #define HS_CROSS 4
1414
+ #define HS_DIAGCROSS 5
1415
+
1416
+ #define PS_SOLID 0
1417
+ #define PS_DASH 1
1418
+ #define PS_DOT 2
1419
+ #define PS_DASHDOT 3
1420
+ #define PS_DASHDOTDOT 4
1421
+ #define PS_NULL 5
1422
+ #define PS_INSIDEFRAME 6
1423
+ #define PS_USERSTYLE 7
1424
+ #define PS_ALTERNATE 8
1425
+ #define PS_STYLE_MASK 0x0000000F
1426
+
1427
+ #define PS_ENDCAP_ROUND 0x00000000
1428
+ #define PS_ENDCAP_SQUARE 0x00000100
1429
+ #define PS_ENDCAP_FLAT 0x00000200
1430
+ #define PS_ENDCAP_MASK 0x00000F00
1431
+
1432
+ #define PS_JOIN_ROUND 0x00000000
1433
+ #define PS_JOIN_BEVEL 0x00001000
1434
+ #define PS_JOIN_MITER 0x00002000
1435
+ #define PS_JOIN_MASK 0x0000F000
1436
+
1437
+ #define PS_COSMETIC 0x00000000
1438
+ #define PS_GEOMETRIC 0x00010000
1439
+ #define PS_TYPE_MASK 0x000F0000
1440
+
1441
+ #define AD_COUNTERCLOCKWISE 1
1442
+ #define AD_CLOCKWISE 2
1443
+
1444
+ #define DRIVERVERSION 0
1445
+ #define TECHNOLOGY 2
1446
+ #define HORZSIZE 4
1447
+ #define VERTSIZE 6
1448
+ #define HORZRES 8
1449
+ #define VERTRES 10
1450
+ #define BITSPIXEL 12
1451
+ #define PLANES 14
1452
+ #define NUMBRUSHES 16
1453
+ #define NUMPENS 18
1454
+ #define NUMMARKERS 20
1455
+ #define NUMFONTS 22
1456
+ #define NUMCOLORS 24
1457
+ #define PDEVICESIZE 26
1458
+ #define CURVECAPS 28
1459
+ #define LINECAPS 30
1460
+ #define POLYGONALCAPS 32
1461
+ #define TEXTCAPS 34
1462
+ #define CLIPCAPS 36
1463
+ #define RASTERCAPS 38
1464
+ #define ASPECTX 40
1465
+ #define ASPECTY 42
1466
+ #define ASPECTXY 44
1467
+
1468
+ #define LOGPIXELSX 88
1469
+ #define LOGPIXELSY 90
1470
+
1471
+ #define SIZEPALETTE 104
1472
+ #define NUMRESERVED 106
1473
+ #define COLORRES 108
1474
+
1475
+ #define PHYSICALWIDTH 110
1476
+ #define PHYSICALHEIGHT 111
1477
+ #define PHYSICALOFFSETX 112
1478
+ #define PHYSICALOFFSETY 113
1479
+ #define SCALINGFACTORX 114
1480
+ #define SCALINGFACTORY 115
1481
+
1482
+ #define VREFRESH 116
1483
+
1484
+ #define DESKTOPVERTRES 117
1485
+
1486
+ #define DESKTOPHORZRES 118
1487
+
1488
+ #define BLTALIGNMENT 119
1489
+
1490
+ #define SHADEBLENDCAPS 120
1491
+ #define COLORMGMTCAPS 121
1492
+
1493
+ #ifndef NOGDICAPMASKS
1494
+ #define DT_PLOTTER 0
1495
+ #define DT_RASDISPLAY 1
1496
+ #define DT_RASPRINTER 2
1497
+ #define DT_RASCAMERA 3
1498
+ #define DT_CHARSTREAM 4
1499
+ #define DT_METAFILE 5
1500
+ #define DT_DISPFILE 6
1501
+
1502
+ #define CC_NONE 0
1503
+ #define CC_CIRCLES 1
1504
+ #define CC_PIE 2
1505
+ #define CC_CHORD 4
1506
+ #define CC_ELLIPSES 8
1507
+ #define CC_WIDE 16
1508
+ #define CC_STYLED 32
1509
+ #define CC_WIDESTYLED 64
1510
+ #define CC_INTERIORS 128
1511
+ #define CC_ROUNDRECT 256
1512
+
1513
+ #define LC_NONE 0
1514
+ #define LC_POLYLINE 2
1515
+ #define LC_MARKER 4
1516
+ #define LC_POLYMARKER 8
1517
+ #define LC_WIDE 16
1518
+ #define LC_STYLED 32
1519
+ #define LC_WIDESTYLED 64
1520
+ #define LC_INTERIORS 128
1521
+
1522
+ #define PC_NONE 0
1523
+ #define PC_POLYGON 1
1524
+ #define PC_RECTANGLE 2
1525
+ #define PC_WINDPOLYGON 4
1526
+ #define PC_TRAPEZOID 4
1527
+ #define PC_SCANLINE 8
1528
+ #define PC_WIDE 16
1529
+ #define PC_STYLED 32
1530
+ #define PC_WIDESTYLED 64
1531
+ #define PC_INTERIORS 128
1532
+ #define PC_POLYPOLYGON 256
1533
+ #define PC_PATHS 512
1534
+
1535
+ #define CP_NONE 0
1536
+ #define CP_RECTANGLE 1
1537
+ #define CP_REGION 2
1538
+
1539
+ #define TC_OP_CHARACTER 0x00000001
1540
+ #define TC_OP_STROKE 0x00000002
1541
+ #define TC_CP_STROKE 0x00000004
1542
+ #define TC_CR_90 0x00000008
1543
+ #define TC_CR_ANY 0x00000010
1544
+ #define TC_SF_X_YINDEP 0x00000020
1545
+ #define TC_SA_DOUBLE 0x00000040
1546
+ #define TC_SA_INTEGER 0x00000080
1547
+ #define TC_SA_CONTIN 0x00000100
1548
+ #define TC_EA_DOUBLE 0x00000200
1549
+ #define TC_IA_ABLE 0x00000400
1550
+ #define TC_UA_ABLE 0x00000800
1551
+ #define TC_SO_ABLE 0x00001000
1552
+ #define TC_RA_ABLE 0x00002000
1553
+ #define TC_VA_ABLE 0x00004000
1554
+ #define TC_RESERVED 0x00008000
1555
+ #define TC_SCROLLBLT 0x00010000
1556
+ #endif
1557
+
1558
+ #define RC_NONE
1559
+ #define RC_BITBLT 1
1560
+ #define RC_BANDING 2
1561
+ #define RC_SCALING 4
1562
+ #define RC_BITMAP64 8
1563
+ #define RC_GDI20_OUTPUT 0x0010
1564
+ #define RC_GDI20_STATE 0x0020
1565
+ #define RC_SAVEBITMAP 0x0040
1566
+ #define RC_DI_BITMAP 0x0080
1567
+ #define RC_PALETTE 0x0100
1568
+ #define RC_DIBTODEV 0x0200
1569
+ #define RC_BIGFONT 0x0400
1570
+ #define RC_STRETCHBLT 0x0800
1571
+ #define RC_FLOODFILL 0x1000
1572
+ #define RC_STRETCHDIB 0x2000
1573
+ #define RC_OP_DX_OUTPUT 0x4000
1574
+ #define RC_DEVBITS 0x8000
1575
+
1576
+ #define SB_NONE 0x00000000
1577
+ #define SB_CONST_ALPHA 0x00000001
1578
+ #define SB_PIXEL_ALPHA 0x00000002
1579
+ #define SB_PREMULT_ALPHA 0x00000004
1580
+
1581
+ #define SB_GRAD_RECT 0x00000010
1582
+ #define SB_GRAD_TRI 0x00000020
1583
+
1584
+ #define CM_NONE 0x00000000
1585
+ #define CM_DEVICE_ICM 0x00000001
1586
+ #define CM_GAMMA_RAMP 0x00000002
1587
+ #define CM_CMYK_COLOR 0x00000004
1588
+
1589
+ #define DIB_RGB_COLORS 0
1590
+ #define DIB_PAL_COLORS 1
1591
+
1592
+ #define SYSPAL_ERROR 0
1593
+ #define SYSPAL_STATIC 1
1594
+ #define SYSPAL_NOSTATIC 2
1595
+ #define SYSPAL_NOSTATIC256 3
1596
+
1597
+ #define CBM_INIT 0x04L
1598
+
1599
+ #define FLOODFILLBORDER 0
1600
+ #define FLOODFILLSURFACE 1
1601
+
1602
+ #define CCHDEVICENAME 32
1603
+
1604
+ #define CCHFORMNAME 32
1605
+
1606
+ typedef struct _devicemodeA {
1607
+ BYTE dmDeviceName[CCHDEVICENAME];
1608
+ WORD dmSpecVersion;
1609
+ WORD dmDriverVersion;
1610
+ WORD dmSize;
1611
+ WORD dmDriverExtra;
1612
+ DWORD dmFields;
1613
+ union {
1614
+ struct {
1615
+ short dmOrientation;
1616
+ short dmPaperSize;
1617
+ short dmPaperLength;
1618
+ short dmPaperWidth;
1619
+ short dmScale;
1620
+ short dmCopies;
1621
+ short dmDefaultSource;
1622
+ short dmPrintQuality;
1623
+ };
1624
+ struct {
1625
+ POINTL dmPosition;
1626
+ DWORD dmDisplayOrientation;
1627
+ DWORD dmDisplayFixedOutput;
1628
+ };
1629
+ };
1630
+ short dmColor;
1631
+ short dmDuplex;
1632
+ short dmYResolution;
1633
+ short dmTTOption;
1634
+ short dmCollate;
1635
+ BYTE dmFormName[CCHFORMNAME];
1636
+ WORD dmLogPixels;
1637
+ DWORD dmBitsPerPel;
1638
+ DWORD dmPelsWidth;
1639
+ DWORD dmPelsHeight;
1640
+ union {
1641
+ DWORD dmDisplayFlags;
1642
+ DWORD dmNup;
1643
+ };
1644
+ DWORD dmDisplayFrequency;
1645
+ DWORD dmICMMethod;
1646
+ DWORD dmICMIntent;
1647
+ DWORD dmMediaType;
1648
+ DWORD dmDitherType;
1649
+ DWORD dmReserved1;
1650
+ DWORD dmReserved2;
1651
+ DWORD dmPanningWidth;
1652
+ DWORD dmPanningHeight;
1653
+ } DEVMODEA,*PDEVMODEA,*NPDEVMODEA,*LPDEVMODEA;
1654
+
1655
+ typedef struct _devicemodeW {
1656
+ WCHAR dmDeviceName[CCHDEVICENAME];
1657
+ WORD dmSpecVersion;
1658
+ WORD dmDriverVersion;
1659
+ WORD dmSize;
1660
+ WORD dmDriverExtra;
1661
+ DWORD dmFields;
1662
+ union {
1663
+ struct {
1664
+ short dmOrientation;
1665
+ short dmPaperSize;
1666
+ short dmPaperLength;
1667
+ short dmPaperWidth;
1668
+ short dmScale;
1669
+ short dmCopies;
1670
+ short dmDefaultSource;
1671
+ short dmPrintQuality;
1672
+ };
1673
+ struct {
1674
+ POINTL dmPosition;
1675
+ DWORD dmDisplayOrientation;
1676
+ DWORD dmDisplayFixedOutput;
1677
+ };
1678
+ };
1679
+ short dmColor;
1680
+ short dmDuplex;
1681
+ short dmYResolution;
1682
+ short dmTTOption;
1683
+ short dmCollate;
1684
+ WCHAR dmFormName[CCHFORMNAME];
1685
+ WORD dmLogPixels;
1686
+ DWORD dmBitsPerPel;
1687
+ DWORD dmPelsWidth;
1688
+ DWORD dmPelsHeight;
1689
+ union {
1690
+ DWORD dmDisplayFlags;
1691
+ DWORD dmNup;
1692
+ };
1693
+ DWORD dmDisplayFrequency;
1694
+ DWORD dmICMMethod;
1695
+ DWORD dmICMIntent;
1696
+ DWORD dmMediaType;
1697
+ DWORD dmDitherType;
1698
+ DWORD dmReserved1;
1699
+ DWORD dmReserved2;
1700
+ DWORD dmPanningWidth;
1701
+ DWORD dmPanningHeight;
1702
+ } DEVMODEW,*PDEVMODEW,*NPDEVMODEW,*LPDEVMODEW;
1703
+ #ifdef UNICODE
1704
+ typedef DEVMODEW DEVMODE;
1705
+ typedef PDEVMODEW PDEVMODE;
1706
+ typedef NPDEVMODEW NPDEVMODE;
1707
+ typedef LPDEVMODEW LPDEVMODE;
1708
+ #else
1709
+ typedef DEVMODEA DEVMODE;
1710
+ typedef PDEVMODEA PDEVMODE;
1711
+ typedef NPDEVMODEA NPDEVMODE;
1712
+ typedef LPDEVMODEA LPDEVMODE;
1713
+ #endif
1714
+
1715
+ #define DM_SPECVERSION 0x0401
1716
+
1717
+ #define DM_ORIENTATION 0x00000001L
1718
+ #define DM_PAPERSIZE 0x00000002L
1719
+ #define DM_PAPERLENGTH 0x00000004L
1720
+ #define DM_PAPERWIDTH 0x00000008L
1721
+ #define DM_SCALE 0x00000010L
1722
+ #define DM_POSITION 0x00000020L
1723
+ #define DM_NUP 0x00000040L
1724
+ #define DM_DISPLAYORIENTATION 0x00000080L
1725
+ #define DM_COPIES 0x00000100L
1726
+ #define DM_DEFAULTSOURCE 0x00000200L
1727
+ #define DM_PRINTQUALITY 0x00000400L
1728
+ #define DM_COLOR 0x00000800L
1729
+ #define DM_DUPLEX 0x00001000L
1730
+ #define DM_YRESOLUTION 0x00002000L
1731
+ #define DM_TTOPTION 0x00004000L
1732
+ #define DM_COLLATE 0x00008000L
1733
+ #define DM_FORMNAME 0x00010000L
1734
+ #define DM_LOGPIXELS 0x00020000L
1735
+ #define DM_BITSPERPEL 0x00040000L
1736
+ #define DM_PELSWIDTH 0x00080000L
1737
+ #define DM_PELSHEIGHT 0x00100000L
1738
+ #define DM_DISPLAYFLAGS 0x00200000L
1739
+ #define DM_DISPLAYFREQUENCY 0x00400000L
1740
+ #define DM_ICMMETHOD 0x00800000L
1741
+ #define DM_ICMINTENT 0x01000000L
1742
+ #define DM_MEDIATYPE 0x02000000L
1743
+ #define DM_DITHERTYPE 0x04000000L
1744
+ #define DM_PANNINGWIDTH 0x08000000L
1745
+ #define DM_PANNINGHEIGHT 0x10000000L
1746
+ #define DM_DISPLAYFIXEDOUTPUT 0x20000000L
1747
+
1748
+ #define DMORIENT_PORTRAIT 1
1749
+ #define DMORIENT_LANDSCAPE 2
1750
+
1751
+ #define DMPAPER_FIRST DMPAPER_LETTER
1752
+ #define DMPAPER_LETTER 1
1753
+ #define DMPAPER_LETTERSMALL 2
1754
+ #define DMPAPER_TABLOID 3
1755
+ #define DMPAPER_LEDGER 4
1756
+ #define DMPAPER_LEGAL 5
1757
+ #define DMPAPER_STATEMENT 6
1758
+ #define DMPAPER_EXECUTIVE 7
1759
+ #define DMPAPER_A3 8
1760
+ #define DMPAPER_A4 9
1761
+ #define DMPAPER_A4SMALL 10
1762
+ #define DMPAPER_A5 11
1763
+ #define DMPAPER_B4 12
1764
+ #define DMPAPER_B5 13
1765
+ #define DMPAPER_FOLIO 14
1766
+ #define DMPAPER_QUARTO 15
1767
+ #define DMPAPER_10X14 16
1768
+ #define DMPAPER_11X17 17
1769
+ #define DMPAPER_NOTE 18
1770
+ #define DMPAPER_ENV_9 19
1771
+ #define DMPAPER_ENV_10 20
1772
+ #define DMPAPER_ENV_11 21
1773
+ #define DMPAPER_ENV_12 22
1774
+ #define DMPAPER_ENV_14 23
1775
+ #define DMPAPER_CSHEET 24
1776
+ #define DMPAPER_DSHEET 25
1777
+ #define DMPAPER_ESHEET 26
1778
+ #define DMPAPER_ENV_DL 27
1779
+ #define DMPAPER_ENV_C5 28
1780
+ #define DMPAPER_ENV_C3 29
1781
+ #define DMPAPER_ENV_C4 30
1782
+ #define DMPAPER_ENV_C6 31
1783
+ #define DMPAPER_ENV_C65 32
1784
+ #define DMPAPER_ENV_B4 33
1785
+ #define DMPAPER_ENV_B5 34
1786
+ #define DMPAPER_ENV_B6 35
1787
+ #define DMPAPER_ENV_ITALY 36
1788
+ #define DMPAPER_ENV_MONARCH 37
1789
+ #define DMPAPER_ENV_PERSONAL 38
1790
+ #define DMPAPER_FANFOLD_US 39
1791
+ #define DMPAPER_FANFOLD_STD_GERMAN 40
1792
+ #define DMPAPER_FANFOLD_LGL_GERMAN 41
1793
+ #define DMPAPER_ISO_B4 42
1794
+ #define DMPAPER_JAPANESE_POSTCARD 43
1795
+ #define DMPAPER_9X11 44
1796
+ #define DMPAPER_10X11 45
1797
+ #define DMPAPER_15X11 46
1798
+ #define DMPAPER_ENV_INVITE 47
1799
+ #define DMPAPER_RESERVED_48 48
1800
+ #define DMPAPER_RESERVED_49 49
1801
+ #define DMPAPER_LETTER_EXTRA 50
1802
+ #define DMPAPER_LEGAL_EXTRA 51
1803
+ #define DMPAPER_TABLOID_EXTRA 52
1804
+ #define DMPAPER_A4_EXTRA 53
1805
+ #define DMPAPER_LETTER_TRANSVERSE 54
1806
+ #define DMPAPER_A4_TRANSVERSE 55
1807
+ #define DMPAPER_LETTER_EXTRA_TRANSVERSE 56
1808
+ #define DMPAPER_A_PLUS 57
1809
+ #define DMPAPER_B_PLUS 58
1810
+ #define DMPAPER_LETTER_PLUS 59
1811
+ #define DMPAPER_A4_PLUS 60
1812
+ #define DMPAPER_A5_TRANSVERSE 61
1813
+ #define DMPAPER_B5_TRANSVERSE 62
1814
+ #define DMPAPER_A3_EXTRA 63
1815
+ #define DMPAPER_A5_EXTRA 64
1816
+ #define DMPAPER_B5_EXTRA 65
1817
+ #define DMPAPER_A2 66
1818
+ #define DMPAPER_A3_TRANSVERSE 67
1819
+ #define DMPAPER_A3_EXTRA_TRANSVERSE 68
1820
+ #define DMPAPER_DBL_JAPANESE_POSTCARD 69
1821
+ #define DMPAPER_A6 70
1822
+ #define DMPAPER_JENV_KAKU2 71
1823
+ #define DMPAPER_JENV_KAKU3 72
1824
+ #define DMPAPER_JENV_CHOU3 73
1825
+ #define DMPAPER_JENV_CHOU4 74
1826
+ #define DMPAPER_LETTER_ROTATED 75
1827
+ #define DMPAPER_A3_ROTATED 76
1828
+ #define DMPAPER_A4_ROTATED 77
1829
+ #define DMPAPER_A5_ROTATED 78
1830
+ #define DMPAPER_B4_JIS_ROTATED 79
1831
+ #define DMPAPER_B5_JIS_ROTATED 80
1832
+ #define DMPAPER_JAPANESE_POSTCARD_ROTATED 81
1833
+ #define DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED 82
1834
+ #define DMPAPER_A6_ROTATED 83
1835
+ #define DMPAPER_JENV_KAKU2_ROTATED 84
1836
+ #define DMPAPER_JENV_KAKU3_ROTATED 85
1837
+ #define DMPAPER_JENV_CHOU3_ROTATED 86
1838
+ #define DMPAPER_JENV_CHOU4_ROTATED 87
1839
+ #define DMPAPER_B6_JIS 88
1840
+ #define DMPAPER_B6_JIS_ROTATED 89
1841
+ #define DMPAPER_12X11 90
1842
+ #define DMPAPER_JENV_YOU4 91
1843
+ #define DMPAPER_JENV_YOU4_ROTATED 92
1844
+ #define DMPAPER_P16K 93
1845
+ #define DMPAPER_P32K 94
1846
+ #define DMPAPER_P32KBIG 95
1847
+ #define DMPAPER_PENV_1 96
1848
+ #define DMPAPER_PENV_2 97
1849
+ #define DMPAPER_PENV_3 98
1850
+ #define DMPAPER_PENV_4 99
1851
+ #define DMPAPER_PENV_5 100
1852
+ #define DMPAPER_PENV_6 101
1853
+ #define DMPAPER_PENV_7 102
1854
+ #define DMPAPER_PENV_8 103
1855
+ #define DMPAPER_PENV_9 104
1856
+ #define DMPAPER_PENV_10 105
1857
+ #define DMPAPER_P16K_ROTATED 106
1858
+ #define DMPAPER_P32K_ROTATED 107
1859
+ #define DMPAPER_P32KBIG_ROTATED 108
1860
+ #define DMPAPER_PENV_1_ROTATED 109
1861
+ #define DMPAPER_PENV_2_ROTATED 110
1862
+ #define DMPAPER_PENV_3_ROTATED 111
1863
+ #define DMPAPER_PENV_4_ROTATED 112
1864
+ #define DMPAPER_PENV_5_ROTATED 113
1865
+ #define DMPAPER_PENV_6_ROTATED 114
1866
+ #define DMPAPER_PENV_7_ROTATED 115
1867
+ #define DMPAPER_PENV_8_ROTATED 116
1868
+ #define DMPAPER_PENV_9_ROTATED 117
1869
+ #define DMPAPER_PENV_10_ROTATED 118
1870
+
1871
+ #define DMPAPER_LAST DMPAPER_PENV_10_ROTATED
1872
+
1873
+ #define DMPAPER_USER 256
1874
+
1875
+ #define DMBIN_FIRST DMBIN_UPPER
1876
+ #define DMBIN_UPPER 1
1877
+ #define DMBIN_ONLYONE 1
1878
+ #define DMBIN_LOWER 2
1879
+ #define DMBIN_MIDDLE 3
1880
+ #define DMBIN_MANUAL 4
1881
+ #define DMBIN_ENVELOPE 5
1882
+ #define DMBIN_ENVMANUAL 6
1883
+ #define DMBIN_AUTO 7
1884
+ #define DMBIN_TRACTOR 8
1885
+ #define DMBIN_SMALLFMT 9
1886
+ #define DMBIN_LARGEFMT 10
1887
+ #define DMBIN_LARGECAPACITY 11
1888
+ #define DMBIN_CASSETTE 14
1889
+ #define DMBIN_FORMSOURCE 15
1890
+ #define DMBIN_LAST DMBIN_FORMSOURCE
1891
+
1892
+ #define DMBIN_USER 256
1893
+
1894
+ #define DMRES_DRAFT (-1)
1895
+ #define DMRES_LOW (-2)
1896
+ #define DMRES_MEDIUM (-3)
1897
+ #define DMRES_HIGH (-4)
1898
+
1899
+ #define DMCOLOR_MONOCHROME 1
1900
+ #define DMCOLOR_COLOR 2
1901
+
1902
+ #define DMDUP_SIMPLEX 1
1903
+ #define DMDUP_VERTICAL 2
1904
+ #define DMDUP_HORIZONTAL 3
1905
+
1906
+ #define DMTT_BITMAP 1
1907
+ #define DMTT_DOWNLOAD 2
1908
+ #define DMTT_SUBDEV 3
1909
+ #define DMTT_DOWNLOAD_OUTLINE 4
1910
+
1911
+ #define DMCOLLATE_FALSE 0
1912
+ #define DMCOLLATE_TRUE 1
1913
+
1914
+ #define DMDO_DEFAULT 0
1915
+ #define DMDO_90 1
1916
+ #define DMDO_180 2
1917
+ #define DMDO_270 3
1918
+
1919
+ #define DMDFO_DEFAULT 0
1920
+ #define DMDFO_STRETCH 1
1921
+ #define DMDFO_CENTER 2
1922
+
1923
+ #define DMDISPLAYFLAGS_TEXTMODE 0x00000004
1924
+
1925
+ #define DMNUP_SYSTEM 1
1926
+ #define DMNUP_ONEUP 2
1927
+
1928
+ #define DMICMMETHOD_NONE 1
1929
+ #define DMICMMETHOD_SYSTEM 2
1930
+ #define DMICMMETHOD_DRIVER 3
1931
+ #define DMICMMETHOD_DEVICE 4
1932
+
1933
+ #define DMICMMETHOD_USER 256
1934
+
1935
+ #define DMICM_SATURATE 1
1936
+ #define DMICM_CONTRAST 2
1937
+ #define DMICM_COLORIMETRIC 3
1938
+ #define DMICM_ABS_COLORIMETRIC 4
1939
+
1940
+ #define DMICM_USER 256
1941
+
1942
+ #define DMMEDIA_STANDARD 1
1943
+ #define DMMEDIA_TRANSPARENCY 2
1944
+ #define DMMEDIA_GLOSSY 3
1945
+
1946
+ #define DMMEDIA_USER 256
1947
+
1948
+ #define DMDITHER_NONE 1
1949
+ #define DMDITHER_COARSE 2
1950
+ #define DMDITHER_FINE 3
1951
+ #define DMDITHER_LINEART 4
1952
+ #define DMDITHER_ERRORDIFFUSION 5
1953
+ #define DMDITHER_RESERVED6 6
1954
+ #define DMDITHER_RESERVED7 7
1955
+ #define DMDITHER_RESERVED8 8
1956
+ #define DMDITHER_RESERVED9 9
1957
+ #define DMDITHER_GRAYSCALE 10
1958
+
1959
+ #define DMDITHER_USER 256
1960
+
1961
+ typedef struct _DISPLAY_DEVICEA {
1962
+ DWORD cb;
1963
+ CHAR DeviceName[32];
1964
+ CHAR DeviceString[128];
1965
+ DWORD StateFlags;
1966
+ CHAR DeviceID[128];
1967
+ CHAR DeviceKey[128];
1968
+ } DISPLAY_DEVICEA,*PDISPLAY_DEVICEA,*LPDISPLAY_DEVICEA;
1969
+ typedef struct _DISPLAY_DEVICEW {
1970
+ DWORD cb;
1971
+ WCHAR DeviceName[32];
1972
+ WCHAR DeviceString[128];
1973
+ DWORD StateFlags;
1974
+ WCHAR DeviceID[128];
1975
+ WCHAR DeviceKey[128];
1976
+ } DISPLAY_DEVICEW,*PDISPLAY_DEVICEW,*LPDISPLAY_DEVICEW;
1977
+ #ifdef UNICODE
1978
+ typedef DISPLAY_DEVICEW DISPLAY_DEVICE;
1979
+ typedef PDISPLAY_DEVICEW PDISPLAY_DEVICE;
1980
+ typedef LPDISPLAY_DEVICEW LPDISPLAY_DEVICE;
1981
+ #else
1982
+ typedef DISPLAY_DEVICEA DISPLAY_DEVICE;
1983
+ typedef PDISPLAY_DEVICEA PDISPLAY_DEVICE;
1984
+ typedef LPDISPLAY_DEVICEA LPDISPLAY_DEVICE;
1985
+ #endif
1986
+
1987
+ #define DISPLAY_DEVICE_ATTACHED_TO_DESKTOP 0x00000001
1988
+ #define DISPLAY_DEVICE_MULTI_DRIVER 0x00000002
1989
+ #define DISPLAY_DEVICE_PRIMARY_DEVICE 0x00000004
1990
+ #define DISPLAY_DEVICE_MIRRORING_DRIVER 0x00000008
1991
+ #define DISPLAY_DEVICE_VGA_COMPATIBLE 0x00000010
1992
+ #define DISPLAY_DEVICE_REMOVABLE 0x00000020
1993
+ #define DISPLAY_DEVICE_MODESPRUNED 0x08000000
1994
+ #define DISPLAY_DEVICE_REMOTE 0x04000000
1995
+ #define DISPLAY_DEVICE_DISCONNECT 0x02000000
1996
+
1997
+ #define DISPLAY_DEVICE_ACTIVE 0x00000001
1998
+ #define DISPLAY_DEVICE_ATTACHED 0x00000002
1999
+
2000
+ #define RDH_RECTANGLES 1
2001
+
2002
+ typedef struct _RGNDATAHEADER {
2003
+ DWORD dwSize;
2004
+ DWORD iType;
2005
+ DWORD nCount;
2006
+ DWORD nRgnSize;
2007
+ RECT rcBound;
2008
+ } RGNDATAHEADER,*PRGNDATAHEADER;
2009
+
2010
+ typedef struct _RGNDATA {
2011
+ RGNDATAHEADER rdh;
2012
+ char Buffer[1];
2013
+ } RGNDATA,*PRGNDATA,*NPRGNDATA,*LPRGNDATA;
2014
+
2015
+ #define SYSRGN 4
2016
+
2017
+ typedef struct _ABC {
2018
+ int abcA;
2019
+ UINT abcB;
2020
+ int abcC;
2021
+ } ABC,*PABC,*NPABC,*LPABC;
2022
+
2023
+ typedef struct _ABCFLOAT {
2024
+ FLOAT abcfA;
2025
+ FLOAT abcfB;
2026
+ FLOAT abcfC;
2027
+ } ABCFLOAT,*PABCFLOAT,*NPABCFLOAT,*LPABCFLOAT;
2028
+
2029
+ #ifndef NOTEXTMETRIC
2030
+
2031
+ typedef struct _OUTLINETEXTMETRICA {
2032
+ UINT otmSize;
2033
+ TEXTMETRICA otmTextMetrics;
2034
+ BYTE otmFiller;
2035
+ PANOSE otmPanoseNumber;
2036
+ UINT otmfsSelection;
2037
+ UINT otmfsType;
2038
+ int otmsCharSlopeRise;
2039
+ int otmsCharSlopeRun;
2040
+ int otmItalicAngle;
2041
+ UINT otmEMSquare;
2042
+ int otmAscent;
2043
+ int otmDescent;
2044
+ UINT otmLineGap;
2045
+ UINT otmsCapEmHeight;
2046
+ UINT otmsXHeight;
2047
+ RECT otmrcFontBox;
2048
+ int otmMacAscent;
2049
+ int otmMacDescent;
2050
+ UINT otmMacLineGap;
2051
+ UINT otmusMinimumPPEM;
2052
+ POINT otmptSubscriptSize;
2053
+ POINT otmptSubscriptOffset;
2054
+ POINT otmptSuperscriptSize;
2055
+ POINT otmptSuperscriptOffset;
2056
+ UINT otmsStrikeoutSize;
2057
+ int otmsStrikeoutPosition;
2058
+ int otmsUnderscoreSize;
2059
+ int otmsUnderscorePosition;
2060
+ PSTR otmpFamilyName;
2061
+ PSTR otmpFaceName;
2062
+ PSTR otmpStyleName;
2063
+ PSTR otmpFullName;
2064
+ } OUTLINETEXTMETRICA,*POUTLINETEXTMETRICA,*NPOUTLINETEXTMETRICA,*LPOUTLINETEXTMETRICA;
2065
+
2066
+ typedef struct _OUTLINETEXTMETRICW {
2067
+ UINT otmSize;
2068
+ TEXTMETRICW otmTextMetrics;
2069
+ BYTE otmFiller;
2070
+ PANOSE otmPanoseNumber;
2071
+ UINT otmfsSelection;
2072
+ UINT otmfsType;
2073
+ int otmsCharSlopeRise;
2074
+ int otmsCharSlopeRun;
2075
+ int otmItalicAngle;
2076
+ UINT otmEMSquare;
2077
+ int otmAscent;
2078
+ int otmDescent;
2079
+ UINT otmLineGap;
2080
+ UINT otmsCapEmHeight;
2081
+ UINT otmsXHeight;
2082
+ RECT otmrcFontBox;
2083
+ int otmMacAscent;
2084
+ int otmMacDescent;
2085
+ UINT otmMacLineGap;
2086
+ UINT otmusMinimumPPEM;
2087
+ POINT otmptSubscriptSize;
2088
+ POINT otmptSubscriptOffset;
2089
+ POINT otmptSuperscriptSize;
2090
+ POINT otmptSuperscriptOffset;
2091
+ UINT otmsStrikeoutSize;
2092
+ int otmsStrikeoutPosition;
2093
+ int otmsUnderscoreSize;
2094
+ int otmsUnderscorePosition;
2095
+ PSTR otmpFamilyName;
2096
+ PSTR otmpFaceName;
2097
+ PSTR otmpStyleName;
2098
+ PSTR otmpFullName;
2099
+ } OUTLINETEXTMETRICW,*POUTLINETEXTMETRICW,*NPOUTLINETEXTMETRICW,*LPOUTLINETEXTMETRICW;
2100
+ #ifdef UNICODE
2101
+ typedef OUTLINETEXTMETRICW OUTLINETEXTMETRIC;
2102
+ typedef POUTLINETEXTMETRICW POUTLINETEXTMETRIC;
2103
+ typedef NPOUTLINETEXTMETRICW NPOUTLINETEXTMETRIC;
2104
+ typedef LPOUTLINETEXTMETRICW LPOUTLINETEXTMETRIC;
2105
+ #else
2106
+ typedef OUTLINETEXTMETRICA OUTLINETEXTMETRIC;
2107
+ typedef POUTLINETEXTMETRICA POUTLINETEXTMETRIC;
2108
+ typedef NPOUTLINETEXTMETRICA NPOUTLINETEXTMETRIC;
2109
+ typedef LPOUTLINETEXTMETRICA LPOUTLINETEXTMETRIC;
2110
+ #endif
2111
+ #endif
2112
+
2113
+ typedef struct tagPOLYTEXTA {
2114
+ int x;
2115
+ int y;
2116
+ UINT n;
2117
+ LPCSTR lpstr;
2118
+ UINT uiFlags;
2119
+ RECT rcl;
2120
+ int *pdx;
2121
+ } POLYTEXTA,*PPOLYTEXTA,*NPPOLYTEXTA,*LPPOLYTEXTA;
2122
+
2123
+ typedef struct tagPOLYTEXTW {
2124
+ int x;
2125
+ int y;
2126
+ UINT n;
2127
+ LPCWSTR lpstr;
2128
+ UINT uiFlags;
2129
+ RECT rcl;
2130
+ int *pdx;
2131
+ } POLYTEXTW,*PPOLYTEXTW,*NPPOLYTEXTW,*LPPOLYTEXTW;
2132
+ #ifdef UNICODE
2133
+ typedef POLYTEXTW POLYTEXT;
2134
+ typedef PPOLYTEXTW PPOLYTEXT;
2135
+ typedef NPPOLYTEXTW NPPOLYTEXT;
2136
+ typedef LPPOLYTEXTW LPPOLYTEXT;
2137
+ #else
2138
+ typedef POLYTEXTA POLYTEXT;
2139
+ typedef PPOLYTEXTA PPOLYTEXT;
2140
+ typedef NPPOLYTEXTA NPPOLYTEXT;
2141
+ typedef LPPOLYTEXTA LPPOLYTEXT;
2142
+ #endif
2143
+
2144
+ typedef struct _FIXED {
2145
+ WORD fract;
2146
+ short value;
2147
+ } FIXED;
2148
+
2149
+ typedef struct _MAT2 {
2150
+ FIXED eM11;
2151
+ FIXED eM12;
2152
+ FIXED eM21;
2153
+ FIXED eM22;
2154
+ } MAT2,*LPMAT2;
2155
+
2156
+ typedef struct _GLYPHMETRICS {
2157
+ UINT gmBlackBoxX;
2158
+ UINT gmBlackBoxY;
2159
+ POINT gmptGlyphOrigin;
2160
+ short gmCellIncX;
2161
+ short gmCellIncY;
2162
+ } GLYPHMETRICS,*LPGLYPHMETRICS;
2163
+
2164
+ #define GGO_METRICS 0
2165
+ #define GGO_BITMAP 1
2166
+ #define GGO_NATIVE 2
2167
+ #define GGO_BEZIER 3
2168
+
2169
+ #define GGO_GRAY2_BITMAP 4
2170
+ #define GGO_GRAY4_BITMAP 5
2171
+ #define GGO_GRAY8_BITMAP 6
2172
+ #define GGO_GLYPH_INDEX 0x0080
2173
+ #define GGO_UNHINTED 0x0100
2174
+
2175
+ #define TT_POLYGON_TYPE 24
2176
+
2177
+ #define TT_PRIM_LINE 1
2178
+ #define TT_PRIM_QSPLINE 2
2179
+ #define TT_PRIM_CSPLINE 3
2180
+
2181
+ typedef struct tagPOINTFX {
2182
+ FIXED x;
2183
+ FIXED y;
2184
+ } POINTFX,*LPPOINTFX;
2185
+
2186
+ typedef struct tagTTPOLYCURVE {
2187
+ WORD wType;
2188
+ WORD cpfx;
2189
+ POINTFX apfx[1];
2190
+ } TTPOLYCURVE,*LPTTPOLYCURVE;
2191
+
2192
+ typedef struct tagTTPOLYGONHEADER {
2193
+ DWORD cb;
2194
+ DWORD dwType;
2195
+ POINTFX pfxStart;
2196
+ } TTPOLYGONHEADER,*LPTTPOLYGONHEADER;
2197
+
2198
+ #define GCP_DBCS 0x0001
2199
+ #define GCP_REORDER 0x0002
2200
+ #define GCP_USEKERNING 0x0008
2201
+ #define GCP_GLYPHSHAPE 0x0010
2202
+ #define GCP_LIGATE 0x0020
2203
+
2204
+ #define GCP_DIACRITIC 0x0100
2205
+ #define GCP_KASHIDA 0x0400
2206
+ #define GCP_ERROR 0x8000
2207
+ #define FLI_MASK 0x103B
2208
+
2209
+ #define GCP_JUSTIFY 0x00010000L
2210
+
2211
+ #define FLI_GLYPHS 0x00040000L
2212
+ #define GCP_CLASSIN 0x00080000L
2213
+ #define GCP_MAXEXTENT 0x00100000L
2214
+ #define GCP_JUSTIFYIN 0x00200000L
2215
+ #define GCP_DISPLAYZWG 0x00400000L
2216
+ #define GCP_SYMSWAPOFF 0x00800000L
2217
+ #define GCP_NUMERICOVERRIDE 0x01000000L
2218
+ #define GCP_NEUTRALOVERRIDE 0x02000000L
2219
+ #define GCP_NUMERICSLATIN 0x04000000L
2220
+ #define GCP_NUMERICSLOCAL 0x08000000L
2221
+
2222
+ #define GCPCLASS_LATIN 1
2223
+ #define GCPCLASS_HEBREW 2
2224
+ #define GCPCLASS_ARABIC 2
2225
+ #define GCPCLASS_NEUTRAL 3
2226
+ #define GCPCLASS_LOCALNUMBER 4
2227
+ #define GCPCLASS_LATINNUMBER 5
2228
+ #define GCPCLASS_LATINNUMERICTERMINATOR 6
2229
+ #define GCPCLASS_LATINNUMERICSEPARATOR 7
2230
+ #define GCPCLASS_NUMERICSEPARATOR 8
2231
+ #define GCPCLASS_PREBOUNDLTR 0x80
2232
+ #define GCPCLASS_PREBOUNDRTL 0x40
2233
+ #define GCPCLASS_POSTBOUNDLTR 0x20
2234
+ #define GCPCLASS_POSTBOUNDRTL 0x10
2235
+
2236
+ #define GCPGLYPH_LINKBEFORE 0x8000
2237
+ #define GCPGLYPH_LINKAFTER 0x4000
2238
+
2239
+ typedef struct tagGCP_RESULTSA {
2240
+ DWORD lStructSize;
2241
+ LPSTR lpOutString;
2242
+ UINT *lpOrder;
2243
+ int *lpDx;
2244
+ int *lpCaretPos;
2245
+ LPSTR lpClass;
2246
+ LPWSTR lpGlyphs;
2247
+ UINT nGlyphs;
2248
+ int nMaxFit;
2249
+ } GCP_RESULTSA,*LPGCP_RESULTSA;
2250
+ typedef struct tagGCP_RESULTSW {
2251
+ DWORD lStructSize;
2252
+ LPWSTR lpOutString;
2253
+ UINT *lpOrder;
2254
+ int *lpDx;
2255
+ int *lpCaretPos;
2256
+ LPSTR lpClass;
2257
+ LPWSTR lpGlyphs;
2258
+ UINT nGlyphs;
2259
+ int nMaxFit;
2260
+ } GCP_RESULTSW,*LPGCP_RESULTSW;
2261
+ #ifdef UNICODE
2262
+ typedef GCP_RESULTSW GCP_RESULTS;
2263
+ typedef LPGCP_RESULTSW LPGCP_RESULTS;
2264
+ #else
2265
+ typedef GCP_RESULTSA GCP_RESULTS;
2266
+ typedef LPGCP_RESULTSA LPGCP_RESULTS;
2267
+ #endif
2268
+
2269
+ typedef struct _RASTERIZER_STATUS {
2270
+ short nSize;
2271
+ short wFlags;
2272
+ short nLanguageID;
2273
+ } RASTERIZER_STATUS,*LPRASTERIZER_STATUS;
2274
+
2275
+ #define TT_AVAILABLE 0x0001
2276
+ #define TT_ENABLED 0x0002
2277
+
2278
+ typedef struct tagPIXELFORMATDESCRIPTOR {
2279
+ WORD nSize;
2280
+ WORD nVersion;
2281
+ DWORD dwFlags;
2282
+ BYTE iPixelType;
2283
+ BYTE cColorBits;
2284
+ BYTE cRedBits;
2285
+ BYTE cRedShift;
2286
+ BYTE cGreenBits;
2287
+ BYTE cGreenShift;
2288
+ BYTE cBlueBits;
2289
+ BYTE cBlueShift;
2290
+ BYTE cAlphaBits;
2291
+ BYTE cAlphaShift;
2292
+ BYTE cAccumBits;
2293
+ BYTE cAccumRedBits;
2294
+ BYTE cAccumGreenBits;
2295
+ BYTE cAccumBlueBits;
2296
+ BYTE cAccumAlphaBits;
2297
+ BYTE cDepthBits;
2298
+ BYTE cStencilBits;
2299
+ BYTE cAuxBuffers;
2300
+ BYTE iLayerType;
2301
+ BYTE bReserved;
2302
+ DWORD dwLayerMask;
2303
+ DWORD dwVisibleMask;
2304
+ DWORD dwDamageMask;
2305
+ } PIXELFORMATDESCRIPTOR,*PPIXELFORMATDESCRIPTOR,*LPPIXELFORMATDESCRIPTOR;
2306
+
2307
+ #define PFD_TYPE_RGBA 0
2308
+ #define PFD_TYPE_COLORINDEX 1
2309
+
2310
+ #define PFD_MAIN_PLANE 0
2311
+ #define PFD_OVERLAY_PLANE 1
2312
+ #define PFD_UNDERLAY_PLANE (-1)
2313
+
2314
+ #define PFD_DOUBLEBUFFER 0x00000001
2315
+ #define PFD_STEREO 0x00000002
2316
+ #define PFD_DRAW_TO_WINDOW 0x00000004
2317
+ #define PFD_DRAW_TO_BITMAP 0x00000008
2318
+ #define PFD_SUPPORT_GDI 0x00000010
2319
+ #define PFD_SUPPORT_OPENGL 0x00000020
2320
+ #define PFD_GENERIC_FORMAT 0x00000040
2321
+ #define PFD_NEED_PALETTE 0x00000080
2322
+ #define PFD_NEED_SYSTEM_PALETTE 0x00000100
2323
+ #define PFD_SWAP_EXCHANGE 0x00000200
2324
+ #define PFD_SWAP_COPY 0x00000400
2325
+ #define PFD_SWAP_LAYER_BUFFERS 0x00000800
2326
+ #define PFD_GENERIC_ACCELERATED 0x00001000
2327
+ #define PFD_SUPPORT_DIRECTDRAW 0x00002000
2328
+
2329
+ #define PFD_DEPTH_DONTCARE 0x20000000
2330
+ #define PFD_DOUBLEBUFFER_DONTCARE 0x40000000
2331
+ #define PFD_STEREO_DONTCARE 0x80000000
2332
+
2333
+ #ifndef NOTEXTMETRIC
2334
+ typedef int (CALLBACK *OLDFONTENUMPROCA)(CONST LOGFONTA *,CONST TEXTMETRICA *,DWORD,LPARAM);
2335
+ typedef int (CALLBACK *OLDFONTENUMPROCW)(CONST LOGFONTW *,CONST TEXTMETRICW *,DWORD,LPARAM);
2336
+ #ifdef UNICODE
2337
+ #define OLDFONTENUMPROC OLDFONTENUMPROCW
2338
+ #else
2339
+ #define OLDFONTENUMPROC OLDFONTENUMPROCA
2340
+ #endif
2341
+ #else
2342
+ typedef int (CALLBACK *OLDFONTENUMPROCA)(CONST LOGFONTA *,CONST VOID *,DWORD,LPARAM);
2343
+ typedef int (CALLBACK *OLDFONTENUMPROCW)(CONST LOGFONTW *,CONST VOID *,DWORD,LPARAM);
2344
+ #ifdef UNICODE
2345
+ #define OLDFONTENUMPROC OLDFONTENUMPROCW
2346
+ #else
2347
+ #define OLDFONTENUMPROC OLDFONTENUMPROCA
2348
+ #endif
2349
+ #endif
2350
+
2351
+ typedef OLDFONTENUMPROCA FONTENUMPROCA;
2352
+ typedef OLDFONTENUMPROCW FONTENUMPROCW;
2353
+ #ifdef UNICODE
2354
+ typedef FONTENUMPROCW FONTENUMPROC;
2355
+ #else
2356
+ typedef FONTENUMPROCA FONTENUMPROC;
2357
+ #endif
2358
+
2359
+ typedef int (CALLBACK *GOBJENUMPROC)(LPVOID,LPARAM);
2360
+ typedef VOID (CALLBACK *LINEDDAPROC)(int,int,LPARAM);
2361
+
2362
+ #ifdef UNICODE
2363
+ #define AddFontResource AddFontResourceW
2364
+ #define CopyMetaFile CopyMetaFileW
2365
+ #define CreateDC CreateDCW
2366
+ #define CreateFontIndirect CreateFontIndirectW
2367
+ #define CreateFont CreateFontW
2368
+ #define CreateIC CreateICW
2369
+ #define CreateMetaFile CreateMetaFileW
2370
+ #define CreateScalableFontResource CreateScalableFontResourceW
2371
+ #else
2372
+ #define AddFontResource AddFontResourceA
2373
+ #define CopyMetaFile CopyMetaFileA
2374
+ #define CreateDC CreateDCA
2375
+ #define CreateFontIndirect CreateFontIndirectA
2376
+ #define CreateFont CreateFontA
2377
+ #define CreateIC CreateICA
2378
+ #define CreateMetaFile CreateMetaFileA
2379
+ #define CreateScalableFontResource CreateScalableFontResourceA
2380
+ #endif
2381
+
2382
+ WINGDIAPI int WINAPI AddFontResourceA(LPCSTR);
2383
+ WINGDIAPI int WINAPI AddFontResourceW(LPCWSTR);
2384
+ WINGDIAPI WINBOOL WINAPI AnimatePalette(HPALETTE hPal,UINT iStartIndex,UINT cEntries,CONST PALETTEENTRY *ppe);
2385
+ WINGDIAPI WINBOOL WINAPI Arc(HDC hdc,int x1,int y1,int x2,int y2,int x3,int y3,int x4,int y4);
2386
+ WINGDIAPI WINBOOL WINAPI BitBlt(HDC hdc,int x,int y,int cx,int cy,HDC hdcSrc,int x1,int y1,DWORD rop);
2387
+ WINGDIAPI WINBOOL WINAPI CancelDC(HDC hdc);
2388
+ WINGDIAPI WINBOOL WINAPI Chord(HDC hdc,int x1,int y1,int x2,int y2,int x3,int y3,int x4,int y4);
2389
+ WINGDIAPI int WINAPI ChoosePixelFormat(HDC hdc,CONST PIXELFORMATDESCRIPTOR *ppfd);
2390
+ WINGDIAPI HMETAFILE WINAPI CloseMetaFile(HDC hdc);
2391
+ WINGDIAPI int WINAPI CombineRgn(HRGN hrgnDst,HRGN hrgnSrc1,HRGN hrgnSrc2,int iMode);
2392
+ WINGDIAPI HMETAFILE WINAPI CopyMetaFileA(HMETAFILE,LPCSTR);
2393
+ WINGDIAPI HMETAFILE WINAPI CopyMetaFileW(HMETAFILE,LPCWSTR);
2394
+ WINGDIAPI HBITMAP WINAPI CreateBitmap(int nWidth,int nHeight,UINT nPlanes,UINT nBitCount,CONST VOID *lpBits);
2395
+ WINGDIAPI HBITMAP WINAPI CreateBitmapIndirect(CONST BITMAP *pbm);
2396
+ WINGDIAPI HBRUSH WINAPI CreateBrushIndirect(CONST LOGBRUSH *plbrush);
2397
+ WINGDIAPI HBITMAP WINAPI CreateCompatibleBitmap(HDC hdc,int cx,int cy);
2398
+ WINGDIAPI HBITMAP WINAPI CreateDiscardableBitmap(HDC hdc,int cx,int cy);
2399
+ WINGDIAPI HDC WINAPI CreateCompatibleDC(HDC hdc);
2400
+ WINGDIAPI HDC WINAPI CreateDCA(LPCSTR pwszDriver,LPCSTR pwszDevice,LPCSTR pszPort,CONST DEVMODEA *pdm);
2401
+ WINGDIAPI HDC WINAPI CreateDCW(LPCWSTR pwszDriver,LPCWSTR pwszDevice,LPCWSTR pszPort,CONST DEVMODEW *pdm);
2402
+ WINGDIAPI HBITMAP WINAPI CreateDIBitmap(HDC hdc,CONST BITMAPINFOHEADER *pbmih,DWORD flInit,CONST VOID *pjBits,CONST BITMAPINFO *pbmi,UINT iUsage);
2403
+ WINGDIAPI HBRUSH WINAPI CreateDIBPatternBrush(HGLOBAL h,UINT iUsage);
2404
+ WINGDIAPI HBRUSH WINAPI CreateDIBPatternBrushPt(CONST VOID *lpPackedDIB,UINT iUsage);
2405
+ WINGDIAPI HRGN WINAPI CreateEllipticRgn(int x1,int y1,int x2,int y2);
2406
+ WINGDIAPI HRGN WINAPI CreateEllipticRgnIndirect(CONST RECT *lprect);
2407
+ WINGDIAPI HFONT WINAPI CreateFontIndirectA(CONST LOGFONTA *lplf);
2408
+ WINGDIAPI HFONT WINAPI CreateFontIndirectW(CONST LOGFONTW *lplf);
2409
+ WINGDIAPI HFONT WINAPI CreateFontA(int cHeight,int cWidth,int cEscapement,int cOrientation,int cWeight,DWORD bItalic,DWORD bUnderline,DWORD bStrikeOut,DWORD iCharSet,DWORD iOutPrecision,DWORD iClipPrecision,DWORD iQuality,DWORD iPitchAndFamily,LPCSTR pszFaceName);
2410
+ WINGDIAPI HFONT WINAPI CreateFontW(int cHeight,int cWidth,int cEscapement,int cOrientation,int cWeight,DWORD bItalic,DWORD bUnderline,DWORD bStrikeOut,DWORD iCharSet,DWORD iOutPrecision,DWORD iClipPrecision,DWORD iQuality,DWORD iPitchAndFamily,LPCWSTR pszFaceName);
2411
+ WINGDIAPI HBRUSH WINAPI CreateHatchBrush(int iHatch,COLORREF color);
2412
+ WINGDIAPI HDC WINAPI CreateICA(LPCSTR pszDriver,LPCSTR pszDevice,LPCSTR pszPort,CONST DEVMODEA *pdm);
2413
+ WINGDIAPI HDC WINAPI CreateICW(LPCWSTR pszDriver,LPCWSTR pszDevice,LPCWSTR pszPort,CONST DEVMODEW *pdm);
2414
+ WINGDIAPI HDC WINAPI CreateMetaFileA(LPCSTR pszFile);
2415
+ WINGDIAPI HDC WINAPI CreateMetaFileW(LPCWSTR pszFile);
2416
+ WINGDIAPI HPALETTE WINAPI CreatePalette(CONST LOGPALETTE *plpal);
2417
+ WINGDIAPI HPEN WINAPI CreatePen(int iStyle,int cWidth,COLORREF color);
2418
+ WINGDIAPI HPEN WINAPI CreatePenIndirect(CONST LOGPEN *plpen);
2419
+ WINGDIAPI HRGN WINAPI CreatePolyPolygonRgn(CONST POINT *pptl,CONST INT *pc,int cPoly,int iMode);
2420
+ WINGDIAPI HBRUSH WINAPI CreatePatternBrush(HBITMAP hbm);
2421
+ WINGDIAPI HRGN WINAPI CreateRectRgn(int x1,int y1,int x2,int y2);
2422
+ WINGDIAPI HRGN WINAPI CreateRectRgnIndirect(CONST RECT *lprect);
2423
+ WINGDIAPI HRGN WINAPI CreateRoundRectRgn(int x1,int y1,int x2,int y2,int w,int h);
2424
+ WINGDIAPI WINBOOL WINAPI CreateScalableFontResourceA(DWORD fdwHidden,LPCSTR lpszFont,LPCSTR lpszFile,LPCSTR lpszPath);
2425
+ WINGDIAPI WINBOOL WINAPI CreateScalableFontResourceW(DWORD fdwHidden,LPCWSTR lpszFont,LPCWSTR lpszFile,LPCWSTR lpszPath);
2426
+ WINGDIAPI HBRUSH WINAPI CreateSolidBrush(COLORREF color);
2427
+ WINGDIAPI WINBOOL WINAPI DeleteDC(HDC hdc);
2428
+ WINGDIAPI WINBOOL WINAPI DeleteMetaFile(HMETAFILE hmf);
2429
+ WINGDIAPI WINBOOL WINAPI DeleteObject(HGDIOBJ ho);
2430
+ WINGDIAPI int WINAPI DescribePixelFormat(HDC hdc,int iPixelFormat,UINT nBytes,LPPIXELFORMATDESCRIPTOR ppfd);
2431
+
2432
+ typedef UINT (CALLBACK *LPFNDEVMODE)(HWND,HMODULE,LPDEVMODE,LPSTR,LPSTR,LPDEVMODE,LPSTR,UINT);
2433
+ typedef DWORD (CALLBACK *LPFNDEVCAPS)(LPSTR,LPSTR,UINT,LPSTR,LPDEVMODE);
2434
+
2435
+ #define DM_UPDATE 1
2436
+ #define DM_COPY 2
2437
+ #define DM_PROMPT 4
2438
+ #define DM_MODIFY 8
2439
+
2440
+ #define DM_IN_BUFFER DM_MODIFY
2441
+ #define DM_IN_PROMPT DM_PROMPT
2442
+ #define DM_OUT_BUFFER DM_COPY
2443
+ #define DM_OUT_DEFAULT DM_UPDATE
2444
+
2445
+ #define DC_FIELDS 1
2446
+ #define DC_PAPERS 2
2447
+ #define DC_PAPERSIZE 3
2448
+ #define DC_MINEXTENT 4
2449
+ #define DC_MAXEXTENT 5
2450
+ #define DC_BINS 6
2451
+ #define DC_DUPLEX 7
2452
+ #define DC_SIZE 8
2453
+ #define DC_EXTRA 9
2454
+ #define DC_VERSION 10
2455
+ #define DC_DRIVER 11
2456
+ #define DC_BINNAMES 12
2457
+ #define DC_ENUMRESOLUTIONS 13
2458
+ #define DC_FILEDEPENDENCIES 14
2459
+ #define DC_TRUETYPE 15
2460
+ #define DC_PAPERNAMES 16
2461
+ #define DC_ORIENTATION 17
2462
+ #define DC_COPIES 18
2463
+ #define DC_BINADJUST 19
2464
+ #define DC_EMF_COMPLIANT 20
2465
+ #define DC_DATATYPE_PRODUCED 21
2466
+ #define DC_COLLATE 22
2467
+ #define DC_MANUFACTURER 23
2468
+ #define DC_MODEL 24
2469
+ #define DC_PERSONALITY 25
2470
+ #define DC_PRINTRATE 26
2471
+ #define DC_PRINTRATEUNIT 27
2472
+ #define PRINTRATEUNIT_PPM 1
2473
+ #define PRINTRATEUNIT_CPS 2
2474
+ #define PRINTRATEUNIT_LPM 3
2475
+ #define PRINTRATEUNIT_IPM 4
2476
+ #define DC_PRINTERMEM 28
2477
+ #define DC_MEDIAREADY 29
2478
+ #define DC_STAPLE 30
2479
+ #define DC_PRINTRATEPPM 31
2480
+ #define DC_COLORDEVICE 32
2481
+ #define DC_NUP 33
2482
+ #define DC_MEDIATYPENAMES 34
2483
+ #define DC_MEDIATYPES 35
2484
+
2485
+ #define DCTT_BITMAP 0x0000001L
2486
+ #define DCTT_DOWNLOAD 0x0000002L
2487
+ #define DCTT_SUBDEV 0x0000004L
2488
+ #define DCTT_DOWNLOAD_OUTLINE 0x0000008L
2489
+
2490
+ #define DCBA_FACEUPNONE 0x0000
2491
+ #define DCBA_FACEUPCENTER 0x0001
2492
+ #define DCBA_FACEUPLEFT 0x0002
2493
+ #define DCBA_FACEUPRIGHT 0x0003
2494
+ #define DCBA_FACEDOWNNONE 0x0100
2495
+ #define DCBA_FACEDOWNCENTER 0x0101
2496
+ #define DCBA_FACEDOWNLEFT 0x0102
2497
+ #define DCBA_FACEDOWNRIGHT 0x0103
2498
+
2499
+ #ifdef UNICODE
2500
+ #define DeviceCapabilities DeviceCapabilitiesW
2501
+ #define EnumFontFamiliesEx EnumFontFamiliesExW
2502
+ #define EnumFontFamilies EnumFontFamiliesW
2503
+ #define EnumFonts EnumFontsW
2504
+ #define GetCharWidth GetCharWidthW
2505
+ #define GetCharWidth32 GetCharWidth32W
2506
+ #define GetCharWidthFloat GetCharWidthFloatW
2507
+ #define GetCharABCWidths GetCharABCWidthsW
2508
+ #define GetCharABCWidthsFloat GetCharABCWidthsFloatW
2509
+ #define GetGlyphOutline GetGlyphOutlineW
2510
+ #define GetMetaFile GetMetaFileW
2511
+ #else
2512
+ #define DeviceCapabilities DeviceCapabilitiesA
2513
+ #define EnumFontFamiliesEx EnumFontFamiliesExA
2514
+ #define EnumFontFamilies EnumFontFamiliesA
2515
+ #define EnumFonts EnumFontsA
2516
+ #define GetCharWidth GetCharWidthA
2517
+ #define GetCharWidth32 GetCharWidth32A
2518
+ #define GetCharWidthFloat GetCharWidthFloatA
2519
+ #define GetCharABCWidths GetCharABCWidthsA
2520
+ #define GetCharABCWidthsFloat GetCharABCWidthsFloatA
2521
+ #define GetGlyphOutline GetGlyphOutlineA
2522
+ #define GetMetaFile GetMetaFileA
2523
+ #endif
2524
+
2525
+ WINSPOOLAPI int WINAPI DeviceCapabilitiesA(LPCSTR pDevice,LPCSTR pPort,WORD fwCapability,LPSTR pOutput,CONST DEVMODEA *pDevMode);
2526
+ WINSPOOLAPI int WINAPI DeviceCapabilitiesW(LPCWSTR pDevice,LPCWSTR pPort,WORD fwCapability,LPWSTR pOutput,CONST DEVMODEW *pDevMode);
2527
+ WINGDIAPI int WINAPI DrawEscape(HDC hdc,int iEscape,int cjIn,LPCSTR lpIn);
2528
+ WINGDIAPI WINBOOL WINAPI Ellipse(HDC hdc,int left,int top,int right,int bottom);
2529
+ WINGDIAPI int WINAPI EnumFontFamiliesExA(HDC hdc,LPLOGFONTA lpLogfont,FONTENUMPROCA lpProc,LPARAM lParam,DWORD dwFlags);
2530
+ WINGDIAPI int WINAPI EnumFontFamiliesExW(HDC hdc,LPLOGFONTW lpLogfont,FONTENUMPROCW lpProc,LPARAM lParam,DWORD dwFlags);
2531
+ WINGDIAPI int WINAPI EnumFontFamiliesA(HDC hdc,LPCSTR lpLogfont,FONTENUMPROCA lpProc,LPARAM lParam);
2532
+ WINGDIAPI int WINAPI EnumFontFamiliesW(HDC hdc,LPCWSTR lpLogfont,FONTENUMPROCW lpProc,LPARAM lParam);
2533
+ WINGDIAPI int WINAPI EnumFontsA(HDC hdc,LPCSTR lpLogfont,FONTENUMPROCA lpProc,LPARAM lParam);
2534
+ WINGDIAPI int WINAPI EnumFontsW(HDC hdc,LPCWSTR lpLogfont,FONTENUMPROCW lpProc,LPARAM lParam);
2535
+ WINGDIAPI int WINAPI EnumObjects(HDC hdc,int nType,GOBJENUMPROC lpFunc,LPARAM lParam);
2536
+ WINGDIAPI WINBOOL WINAPI EqualRgn(HRGN hrgn1,HRGN hrgn2);
2537
+ WINGDIAPI int WINAPI Escape(HDC hdc,int iEscape,int cjIn,LPCSTR pvIn,LPVOID pvOut);
2538
+ WINGDIAPI int WINAPI ExtEscape(HDC hdc,int iEscape,int cjInput,LPCSTR lpInData,int cjOutput,LPSTR lpOutData);
2539
+ WINGDIAPI int WINAPI ExcludeClipRect(HDC hdc,int left,int top,int right,int bottom);
2540
+ WINGDIAPI HRGN WINAPI ExtCreateRegion(CONST XFORM *lpx,DWORD nCount,CONST RGNDATA *lpData);
2541
+ WINGDIAPI WINBOOL WINAPI ExtFloodFill(HDC hdc,int x,int y,COLORREF color,UINT type);
2542
+ WINGDIAPI WINBOOL WINAPI FillRgn(HDC hdc,HRGN hrgn,HBRUSH hbr);
2543
+ WINGDIAPI WINBOOL WINAPI FloodFill(HDC hdc,int x,int y,COLORREF color);
2544
+ WINGDIAPI WINBOOL WINAPI FrameRgn(HDC hdc,HRGN hrgn,HBRUSH hbr,int w,int h);
2545
+ WINGDIAPI int WINAPI GetROP2(HDC hdc);
2546
+ WINGDIAPI WINBOOL WINAPI GetAspectRatioFilterEx(HDC hdc,LPSIZE lpsize);
2547
+ WINGDIAPI COLORREF WINAPI GetBkColor(HDC hdc);
2548
+ WINGDIAPI COLORREF WINAPI GetDCBrushColor(HDC hdc);
2549
+ WINGDIAPI COLORREF WINAPI GetDCPenColor(HDC hdc);
2550
+ WINGDIAPI int WINAPI GetBkMode(HDC hdc);
2551
+ WINGDIAPI LONG WINAPI GetBitmapBits(HBITMAP hbit,LONG cb,LPVOID lpvBits);
2552
+ WINGDIAPI WINBOOL WINAPI GetBitmapDimensionEx(HBITMAP hbit,LPSIZE lpsize);
2553
+ WINGDIAPI UINT WINAPI GetBoundsRect(HDC hdc,LPRECT lprect,UINT flags);
2554
+ WINGDIAPI WINBOOL WINAPI GetBrushOrgEx(HDC hdc,LPPOINT lppt);
2555
+ WINGDIAPI WINBOOL WINAPI GetCharWidthA(HDC hdc,UINT iFirst,UINT iLast,LPINT lpBuffer);
2556
+ WINGDIAPI WINBOOL WINAPI GetCharWidthW(HDC hdc,UINT iFirst,UINT iLast,LPINT lpBuffer);
2557
+ WINGDIAPI WINBOOL WINAPI GetCharWidth32A(HDC hdc,UINT iFirst,UINT iLast,LPINT lpBuffer);
2558
+ WINGDIAPI WINBOOL WINAPI GetCharWidth32W(HDC hdc,UINT iFirst,UINT iLast,LPINT lpBuffer);
2559
+ WINGDIAPI WINBOOL WINAPI GetCharWidthFloatA(HDC hdc,UINT iFirst,UINT iLast,PFLOAT lpBuffer);
2560
+ WINGDIAPI WINBOOL WINAPI GetCharWidthFloatW(HDC hdc,UINT iFirst,UINT iLast,PFLOAT lpBuffer);
2561
+ WINGDIAPI WINBOOL WINAPI GetCharABCWidthsA(HDC hdc,UINT wFirst,UINT wLast,LPABC lpABC);
2562
+ WINGDIAPI WINBOOL WINAPI GetCharABCWidthsW(HDC hdc,UINT wFirst,UINT wLast,LPABC lpABC);
2563
+ WINGDIAPI WINBOOL WINAPI GetCharABCWidthsFloatA(HDC hdc,UINT iFirst,UINT iLast,LPABCFLOAT lpABC);
2564
+ WINGDIAPI WINBOOL WINAPI GetCharABCWidthsFloatW(HDC hdc,UINT iFirst,UINT iLast,LPABCFLOAT lpABC);
2565
+ WINGDIAPI int WINAPI GetClipBox(HDC hdc,LPRECT lprect);
2566
+ WINGDIAPI int WINAPI GetClipRgn(HDC hdc,HRGN hrgn);
2567
+ WINGDIAPI int WINAPI GetMetaRgn(HDC hdc,HRGN hrgn);
2568
+ WINGDIAPI HGDIOBJ WINAPI GetCurrentObject(HDC hdc,UINT type);
2569
+ WINGDIAPI WINBOOL WINAPI GetCurrentPositionEx(HDC hdc,LPPOINT lppt);
2570
+ WINGDIAPI int WINAPI GetDeviceCaps(HDC hdc,int index);
2571
+ WINGDIAPI int WINAPI GetDIBits(HDC hdc,HBITMAP hbm,UINT start,UINT cLines,LPVOID lpvBits,LPBITMAPINFO lpbmi,UINT usage);
2572
+ WINGDIAPI DWORD WINAPI GetFontData (HDC hdc,DWORD dwTable,DWORD dwOffset,PVOID pvBuffer,DWORD cjBuffer);
2573
+ WINGDIAPI DWORD WINAPI GetGlyphOutlineA(HDC hdc,UINT uChar,UINT fuFormat,LPGLYPHMETRICS lpgm,DWORD cjBuffer,LPVOID pvBuffer,CONST MAT2 *lpmat2);
2574
+ WINGDIAPI DWORD WINAPI GetGlyphOutlineW(HDC hdc,UINT uChar,UINT fuFormat,LPGLYPHMETRICS lpgm,DWORD cjBuffer,LPVOID pvBuffer,CONST MAT2 *lpmat2);
2575
+ WINGDIAPI int WINAPI GetGraphicsMode(HDC hdc);
2576
+ WINGDIAPI int WINAPI GetMapMode(HDC hdc);
2577
+ WINGDIAPI UINT WINAPI GetMetaFileBitsEx(HMETAFILE hMF,UINT cbBuffer,LPVOID lpData);
2578
+ WINGDIAPI HMETAFILE WINAPI GetMetaFileA(LPCSTR lpName);
2579
+ WINGDIAPI HMETAFILE WINAPI GetMetaFileW(LPCWSTR lpName);
2580
+ WINGDIAPI COLORREF WINAPI GetNearestColor(HDC hdc,COLORREF color);
2581
+ WINGDIAPI UINT WINAPI GetNearestPaletteIndex(HPALETTE h,COLORREF color);
2582
+ WINGDIAPI DWORD WINAPI GetObjectType(HGDIOBJ h);
2583
+
2584
+ #ifndef NOTEXTMETRIC
2585
+ #ifdef UNICODE
2586
+ #define GetOutlineTextMetrics GetOutlineTextMetricsW
2587
+ #else
2588
+ #define GetOutlineTextMetrics GetOutlineTextMetricsA
2589
+ #endif
2590
+
2591
+ WINGDIAPI UINT WINAPI GetOutlineTextMetricsA(HDC hdc,UINT cjCopy,LPOUTLINETEXTMETRICA potm);
2592
+ WINGDIAPI UINT WINAPI GetOutlineTextMetricsW(HDC hdc,UINT cjCopy,LPOUTLINETEXTMETRICW potm);
2593
+ #endif
2594
+
2595
+ #ifdef UNICODE
2596
+ #define GetTextExtentPoint GetTextExtentPointW
2597
+ #define GetTextExtentPoint32 GetTextExtentPoint32W
2598
+ #define GetTextExtentExPoint GetTextExtentExPointW
2599
+ #define GetCharacterPlacement GetCharacterPlacementW
2600
+ #else
2601
+ #define GetTextExtentPoint GetTextExtentPointA
2602
+ #define GetTextExtentPoint32 GetTextExtentPoint32A
2603
+ #define GetTextExtentExPoint GetTextExtentExPointA
2604
+ #define GetCharacterPlacement GetCharacterPlacementA
2605
+ #endif
2606
+
2607
+ WINGDIAPI UINT WINAPI GetPaletteEntries(HPALETTE hpal,UINT iStart,UINT cEntries,LPPALETTEENTRY pPalEntries);
2608
+ WINGDIAPI COLORREF WINAPI GetPixel(HDC hdc,int x,int y);
2609
+ WINGDIAPI int WINAPI GetPixelFormat(HDC hdc);
2610
+ WINGDIAPI int WINAPI GetPolyFillMode(HDC hdc);
2611
+ WINGDIAPI WINBOOL WINAPI GetRasterizerCaps(LPRASTERIZER_STATUS lpraststat,UINT cjBytes);
2612
+ WINGDIAPI int WINAPI GetRandomRgn (HDC hdc,HRGN hrgn,INT i);
2613
+ WINGDIAPI DWORD WINAPI GetRegionData(HRGN hrgn,DWORD nCount,LPRGNDATA lpRgnData);
2614
+ WINGDIAPI int WINAPI GetRgnBox(HRGN hrgn,LPRECT lprc);
2615
+ WINGDIAPI HGDIOBJ WINAPI GetStockObject(int i);
2616
+ WINGDIAPI int WINAPI GetStretchBltMode(HDC hdc);
2617
+ WINGDIAPI UINT WINAPI GetSystemPaletteEntries(HDC hdc,UINT iStart,UINT cEntries,LPPALETTEENTRY pPalEntries);
2618
+ WINGDIAPI UINT WINAPI GetSystemPaletteUse(HDC hdc);
2619
+ WINGDIAPI int WINAPI GetTextCharacterExtra(HDC hdc);
2620
+ WINGDIAPI UINT WINAPI GetTextAlign(HDC hdc);
2621
+ WINGDIAPI COLORREF WINAPI GetTextColor(HDC hdc);
2622
+ WINGDIAPI WINBOOL WINAPI GetTextExtentPointA(HDC hdc,LPCSTR lpString,int c,LPSIZE lpsz);
2623
+ WINGDIAPI WINBOOL WINAPI GetTextExtentPointW(HDC hdc,LPCWSTR lpString,int c,LPSIZE lpsz);
2624
+ WINGDIAPI WINBOOL WINAPI GetTextExtentPoint32A(HDC hdc,LPCSTR lpString,int c,LPSIZE psizl);
2625
+ WINGDIAPI WINBOOL WINAPI GetTextExtentPoint32W(HDC hdc,LPCWSTR lpString,int c,LPSIZE psizl);
2626
+ WINGDIAPI WINBOOL WINAPI GetTextExtentExPointA(HDC hdc,LPCSTR lpszString,int cchString,int nMaxExtent,LPINT lpnFit,LPINT lpnDx,LPSIZE lpSize);
2627
+ WINGDIAPI WINBOOL WINAPI GetTextExtentExPointW(HDC hdc,LPCWSTR lpszString,int cchString,int nMaxExtent,LPINT lpnFit,LPINT lpnDx,LPSIZE lpSize);
2628
+ WINGDIAPI int WINAPI GetTextCharset(HDC hdc);
2629
+ WINGDIAPI int WINAPI GetTextCharsetInfo(HDC hdc,LPFONTSIGNATURE lpSig,DWORD dwFlags);
2630
+ WINGDIAPI WINBOOL WINAPI TranslateCharsetInfo(DWORD *lpSrc,LPCHARSETINFO lpCs,DWORD dwFlags);
2631
+ WINGDIAPI DWORD WINAPI GetFontLanguageInfo(HDC hdc);
2632
+ WINGDIAPI DWORD WINAPI GetCharacterPlacementA(HDC hdc,LPCSTR lpString,int nCount,int nMexExtent,LPGCP_RESULTSA lpResults,DWORD dwFlags);
2633
+ WINGDIAPI DWORD WINAPI GetCharacterPlacementW(HDC hdc,LPCWSTR lpString,int nCount,int nMexExtent,LPGCP_RESULTSW lpResults,DWORD dwFlags);
2634
+
2635
+ typedef struct tagWCRANGE {
2636
+ WCHAR wcLow;
2637
+ USHORT cGlyphs;
2638
+ } WCRANGE,*PWCRANGE,*LPWCRANGE;
2639
+
2640
+ typedef struct tagGLYPHSET {
2641
+ DWORD cbThis;
2642
+ DWORD flAccel;
2643
+ DWORD cGlyphsSupported;
2644
+ DWORD cRanges;
2645
+ WCRANGE ranges[1];
2646
+ } GLYPHSET,*PGLYPHSET,*LPGLYPHSET;
2647
+
2648
+ #define GS_8BIT_INDICES 0x00000001
2649
+
2650
+ #define GGI_MARK_NONEXISTING_GLYPHS 0X0001
2651
+
2652
+ #ifdef UNICODE
2653
+ #define GetGlyphIndices GetGlyphIndicesW
2654
+ #else
2655
+ #define GetGlyphIndices GetGlyphIndicesA
2656
+ #endif
2657
+
2658
+ WINGDIAPI DWORD WINAPI GetFontUnicodeRanges(HDC hdc,LPGLYPHSET lpgs);
2659
+ WINGDIAPI DWORD WINAPI GetGlyphIndicesA(HDC hdc,LPCSTR lpstr,int c,LPWORD pgi,DWORD fl);
2660
+ WINGDIAPI DWORD WINAPI GetGlyphIndicesW(HDC hdc,LPCWSTR lpstr,int c,LPWORD pgi,DWORD fl);
2661
+ WINGDIAPI WINBOOL WINAPI GetTextExtentPointI(HDC hdc,LPWORD pgiIn,int cgi,LPSIZE psize);
2662
+ WINGDIAPI WINBOOL WINAPI GetTextExtentExPointI (HDC hdc,LPWORD lpwszString,int cwchString,int nMaxExtent,LPINT lpnFit,LPINT lpnDx,LPSIZE lpSize);
2663
+ WINGDIAPI WINBOOL WINAPI GetCharWidthI(HDC hdc,UINT giFirst,UINT cgi,LPWORD pgi,LPINT piWidths);
2664
+ WINGDIAPI WINBOOL WINAPI GetCharABCWidthsI(HDC hdc,UINT giFirst,UINT cgi,LPWORD pgi,LPABC pabc);
2665
+
2666
+ #define STAMP_DESIGNVECTOR (0x8000000 + 'd' + ('v' << 8))
2667
+ #define STAMP_AXESLIST (0x8000000 + 'a' + ('l' << 8))
2668
+ #define MM_MAX_NUMAXES 16
2669
+
2670
+ typedef struct tagDESIGNVECTOR {
2671
+ DWORD dvReserved;
2672
+ DWORD dvNumAxes;
2673
+ LONG dvValues[MM_MAX_NUMAXES];
2674
+ } DESIGNVECTOR,*PDESIGNVECTOR,*LPDESIGNVECTOR;
2675
+
2676
+ #ifdef UNICODE
2677
+ #define AddFontResourceEx AddFontResourceExW
2678
+ #define RemoveFontResourceEx RemoveFontResourceExW
2679
+ #else
2680
+ #define AddFontResourceEx AddFontResourceExA
2681
+ #define RemoveFontResourceEx RemoveFontResourceExA
2682
+ #endif
2683
+
2684
+ WINGDIAPI int WINAPI AddFontResourceExA(LPCSTR name,DWORD fl,PVOID res);
2685
+ WINGDIAPI int WINAPI AddFontResourceExW(LPCWSTR name,DWORD fl,PVOID res);
2686
+ WINGDIAPI WINBOOL WINAPI RemoveFontResourceExA(LPCSTR name,DWORD fl,PVOID pdv);
2687
+ WINGDIAPI WINBOOL WINAPI RemoveFontResourceExW(LPCWSTR name,DWORD fl,PVOID pdv);
2688
+ WINGDIAPI HANDLE WINAPI AddFontMemResourceEx(PVOID pFileView,DWORD cjSize,PVOID pvResrved,DWORD *pNumFonts);
2689
+ WINGDIAPI WINBOOL WINAPI RemoveFontMemResourceEx(HANDLE h);
2690
+
2691
+ #define FR_PRIVATE 0x10
2692
+ #define FR_NOT_ENUM 0x20
2693
+
2694
+ #define MM_MAX_AXES_NAMELEN 16
2695
+
2696
+ typedef struct tagAXISINFOA {
2697
+ LONG axMinValue;
2698
+ LONG axMaxValue;
2699
+ BYTE axAxisName[MM_MAX_AXES_NAMELEN];
2700
+ } AXISINFOA,*PAXISINFOA,*LPAXISINFOA;
2701
+
2702
+ typedef struct tagAXISINFOW {
2703
+ LONG axMinValue;
2704
+ LONG axMaxValue;
2705
+ WCHAR axAxisName[MM_MAX_AXES_NAMELEN];
2706
+ } AXISINFOW,*PAXISINFOW,*LPAXISINFOW;
2707
+ #ifdef UNICODE
2708
+ typedef AXISINFOW AXISINFO;
2709
+ typedef PAXISINFOW PAXISINFO;
2710
+ typedef LPAXISINFOW LPAXISINFO;
2711
+ #else
2712
+ typedef AXISINFOA AXISINFO;
2713
+ typedef PAXISINFOA PAXISINFO;
2714
+ typedef LPAXISINFOA LPAXISINFO;
2715
+ #endif
2716
+
2717
+ typedef struct tagAXESLISTA {
2718
+ DWORD axlReserved;
2719
+ DWORD axlNumAxes;
2720
+ AXISINFOA axlAxisInfo[MM_MAX_NUMAXES];
2721
+ } AXESLISTA,*PAXESLISTA,*LPAXESLISTA;
2722
+
2723
+ typedef struct tagAXESLISTW {
2724
+ DWORD axlReserved;
2725
+ DWORD axlNumAxes;
2726
+ AXISINFOW axlAxisInfo[MM_MAX_NUMAXES];
2727
+ } AXESLISTW,*PAXESLISTW,*LPAXESLISTW;
2728
+ #ifdef UNICODE
2729
+ typedef AXESLISTW AXESLIST;
2730
+ typedef PAXESLISTW PAXESLIST;
2731
+ typedef LPAXESLISTW LPAXESLIST;
2732
+ #else
2733
+ typedef AXESLISTA AXESLIST;
2734
+ typedef PAXESLISTA PAXESLIST;
2735
+ typedef LPAXESLISTA LPAXESLIST;
2736
+ #endif
2737
+
2738
+ typedef struct tagENUMLOGFONTEXDVA {
2739
+ ENUMLOGFONTEXA elfEnumLogfontEx;
2740
+ DESIGNVECTOR elfDesignVector;
2741
+ } ENUMLOGFONTEXDVA,*PENUMLOGFONTEXDVA,*LPENUMLOGFONTEXDVA;
2742
+
2743
+ typedef struct tagENUMLOGFONTEXDVW {
2744
+ ENUMLOGFONTEXW elfEnumLogfontEx;
2745
+ DESIGNVECTOR elfDesignVector;
2746
+ } ENUMLOGFONTEXDVW,*PENUMLOGFONTEXDVW,*LPENUMLOGFONTEXDVW;
2747
+ #ifdef UNICODE
2748
+ typedef ENUMLOGFONTEXDVW ENUMLOGFONTEXDV;
2749
+ typedef PENUMLOGFONTEXDVW PENUMLOGFONTEXDV;
2750
+ typedef LPENUMLOGFONTEXDVW LPENUMLOGFONTEXDV;
2751
+ #else
2752
+ typedef ENUMLOGFONTEXDVA ENUMLOGFONTEXDV;
2753
+ typedef PENUMLOGFONTEXDVA PENUMLOGFONTEXDV;
2754
+ typedef LPENUMLOGFONTEXDVA LPENUMLOGFONTEXDV;
2755
+ #endif
2756
+
2757
+ #ifdef UNICODE
2758
+ #define CreateFontIndirectEx CreateFontIndirectExW
2759
+ #else
2760
+ #define CreateFontIndirectEx CreateFontIndirectExA
2761
+ #endif
2762
+
2763
+ WINGDIAPI HFONT WINAPI CreateFontIndirectExA(CONST ENUMLOGFONTEXDVA *);
2764
+ WINGDIAPI HFONT WINAPI CreateFontIndirectExW(CONST ENUMLOGFONTEXDVW *);
2765
+
2766
+ #ifndef NOTEXTMETRIC
2767
+ typedef struct tagENUMTEXTMETRICA {
2768
+ NEWTEXTMETRICEXA etmNewTextMetricEx;
2769
+ AXESLISTA etmAxesList;
2770
+ } ENUMTEXTMETRICA,*PENUMTEXTMETRICA,*LPENUMTEXTMETRICA;
2771
+ typedef struct tagENUMTEXTMETRICW
2772
+ {
2773
+ NEWTEXTMETRICEXW etmNewTextMetricEx;
2774
+ AXESLISTW etmAxesList;
2775
+ } ENUMTEXTMETRICW,*PENUMTEXTMETRICW,*LPENUMTEXTMETRICW;
2776
+ #ifdef UNICODE
2777
+ typedef ENUMTEXTMETRICW ENUMTEXTMETRIC;
2778
+ typedef PENUMTEXTMETRICW PENUMTEXTMETRIC;
2779
+ typedef LPENUMTEXTMETRICW LPENUMTEXTMETRIC;
2780
+ #else
2781
+ typedef ENUMTEXTMETRICA ENUMTEXTMETRIC;
2782
+ typedef PENUMTEXTMETRICA PENUMTEXTMETRIC;
2783
+ typedef LPENUMTEXTMETRICA LPENUMTEXTMETRIC;
2784
+ #endif
2785
+ #endif
2786
+
2787
+ #ifdef UNICODE
2788
+ #define ResetDC ResetDCW
2789
+ #define RemoveFontResource RemoveFontResourceW
2790
+ #else
2791
+ #define ResetDC ResetDCA
2792
+ #define RemoveFontResource RemoveFontResourceA
2793
+ #endif
2794
+
2795
+ WINGDIAPI WINBOOL WINAPI GetViewportExtEx(HDC hdc,LPSIZE lpsize);
2796
+ WINGDIAPI WINBOOL WINAPI GetViewportOrgEx(HDC hdc,LPPOINT lppoint);
2797
+ WINGDIAPI WINBOOL WINAPI GetWindowExtEx(HDC hdc,LPSIZE lpsize);
2798
+ WINGDIAPI WINBOOL WINAPI GetWindowOrgEx(HDC hdc,LPPOINT lppoint);
2799
+ WINGDIAPI int WINAPI IntersectClipRect(HDC hdc,int left,int top,int right,int bottom);
2800
+ WINGDIAPI WINBOOL WINAPI InvertRgn(HDC hdc,HRGN hrgn);
2801
+ WINGDIAPI WINBOOL WINAPI LineDDA(int xStart,int yStart,int xEnd,int yEnd,LINEDDAPROC lpProc,LPARAM data);
2802
+ WINGDIAPI WINBOOL WINAPI LineTo(HDC hdc,int x,int y);
2803
+ WINGDIAPI WINBOOL WINAPI MaskBlt(HDC hdcDest,int xDest,int yDest,int width,int height,HDC hdcSrc,int xSrc,int ySrc,HBITMAP hbmMask,int xMask,int yMask,DWORD rop);
2804
+ WINGDIAPI WINBOOL WINAPI PlgBlt(HDC hdcDest,CONST POINT *lpPoint,HDC hdcSrc,int xSrc,int ySrc,int width,int height,HBITMAP hbmMask,int xMask,int yMask);
2805
+ WINGDIAPI int WINAPI OffsetClipRgn(HDC hdc,int x,int y);
2806
+ WINGDIAPI int WINAPI OffsetRgn(HRGN hrgn,int x,int y);
2807
+ WINGDIAPI WINBOOL WINAPI PatBlt(HDC hdc,int x,int y,int w,int h,DWORD rop);
2808
+ WINGDIAPI WINBOOL WINAPI Pie(HDC hdc,int left,int top,int right,int bottom,int xr1,int yr1,int xr2,int yr2);
2809
+ WINGDIAPI WINBOOL WINAPI PlayMetaFile(HDC hdc,HMETAFILE hmf);
2810
+ WINGDIAPI WINBOOL WINAPI PaintRgn(HDC hdc,HRGN hrgn);
2811
+ WINGDIAPI WINBOOL WINAPI PolyPolygon(HDC hdc,CONST POINT *apt,CONST INT *asz,int csz);
2812
+ WINGDIAPI WINBOOL WINAPI PtInRegion(HRGN hrgn,int x,int y);
2813
+ WINGDIAPI WINBOOL WINAPI PtVisible(HDC hdc,int x,int y);
2814
+ WINGDIAPI WINBOOL WINAPI RectInRegion(HRGN hrgn,CONST RECT *lprect);
2815
+ WINGDIAPI WINBOOL WINAPI RectVisible(HDC hdc,CONST RECT *lprect);
2816
+ WINGDIAPI WINBOOL WINAPI Rectangle(HDC hdc,int left,int top,int right,int bottom);
2817
+ WINGDIAPI WINBOOL WINAPI RestoreDC(HDC hdc,int nSavedDC);
2818
+ WINGDIAPI HDC WINAPI ResetDCA(HDC hdc,CONST DEVMODEA *lpdm);
2819
+ WINGDIAPI HDC WINAPI ResetDCW(HDC hdc,CONST DEVMODEW *lpdm);
2820
+ WINGDIAPI UINT WINAPI RealizePalette(HDC hdc);
2821
+ WINGDIAPI WINBOOL WINAPI RemoveFontResourceA(LPCSTR lpFileName);
2822
+ WINGDIAPI WINBOOL WINAPI RemoveFontResourceW(LPCWSTR lpFileName);
2823
+ WINGDIAPI WINBOOL WINAPI RoundRect(HDC hdc,int left,int top,int right,int bottom,int width,int height);
2824
+ WINGDIAPI WINBOOL WINAPI ResizePalette(HPALETTE hpal,UINT n);
2825
+ WINGDIAPI int WINAPI SaveDC(HDC hdc);
2826
+ WINGDIAPI int WINAPI SelectClipRgn(HDC hdc,HRGN hrgn);
2827
+ WINGDIAPI int WINAPI ExtSelectClipRgn(HDC hdc,HRGN hrgn,int mode);
2828
+ WINGDIAPI int WINAPI SetMetaRgn(HDC hdc);
2829
+ WINGDIAPI HGDIOBJ WINAPI SelectObject(HDC hdc,HGDIOBJ h);
2830
+ WINGDIAPI HPALETTE WINAPI SelectPalette(HDC hdc,HPALETTE hPal,WINBOOL bForceBkgd);
2831
+ WINGDIAPI COLORREF WINAPI SetBkColor(HDC hdc,COLORREF color);
2832
+ WINGDIAPI COLORREF WINAPI SetDCBrushColor(HDC hdc,COLORREF color);
2833
+ WINGDIAPI COLORREF WINAPI SetDCPenColor(HDC hdc,COLORREF color);
2834
+ WINGDIAPI int WINAPI SetBkMode(HDC hdc,int mode);
2835
+ WINGDIAPI LONG WINAPI SetBitmapBits(HBITMAP hbm,DWORD cb,CONST VOID *pvBits);
2836
+ WINGDIAPI UINT WINAPI SetBoundsRect(HDC hdc,CONST RECT *lprect,UINT flags);
2837
+ WINGDIAPI int WINAPI SetDIBits(HDC hdc,HBITMAP hbm,UINT start,UINT cLines,CONST VOID *lpBits,CONST BITMAPINFO *lpbmi,UINT ColorUse);
2838
+ WINGDIAPI int WINAPI SetDIBitsToDevice(HDC hdc,int xDest,int yDest,DWORD w,DWORD h,int xSrc,int ySrc,UINT StartScan,UINT cLines,CONST VOID *lpvBits,CONST BITMAPINFO *lpbmi,UINT ColorUse);
2839
+ WINGDIAPI DWORD WINAPI SetMapperFlags(HDC hdc,DWORD flags);
2840
+ WINGDIAPI int WINAPI SetGraphicsMode(HDC hdc,int iMode);
2841
+ WINGDIAPI int WINAPI SetMapMode(HDC hdc,int iMode);
2842
+ WINGDIAPI DWORD WINAPI SetLayout(HDC hdc,DWORD l);
2843
+ WINGDIAPI DWORD WINAPI GetLayout(HDC hdc);
2844
+ WINGDIAPI HMETAFILE WINAPI SetMetaFileBitsEx(UINT cbBuffer,CONST BYTE *lpData);
2845
+ WINGDIAPI UINT WINAPI SetPaletteEntries(HPALETTE hpal,UINT iStart,UINT cEntries,CONST PALETTEENTRY *pPalEntries);
2846
+ WINGDIAPI COLORREF WINAPI SetPixel(HDC hdc,int x,int y,COLORREF color);
2847
+ WINGDIAPI WINBOOL WINAPI SetPixelV(HDC hdc,int x,int y,COLORREF color);
2848
+ WINGDIAPI WINBOOL WINAPI SetPixelFormat(HDC hdc,int format,CONST PIXELFORMATDESCRIPTOR *ppfd);
2849
+ WINGDIAPI int WINAPI SetPolyFillMode(HDC hdc,int mode);
2850
+ WINGDIAPI WINBOOL WINAPI StretchBlt(HDC hdcDest,int xDest,int yDest,int wDest,int hDest,HDC hdcSrc,int xSrc,int ySrc,int wSrc,int hSrc,DWORD rop);
2851
+ WINGDIAPI WINBOOL WINAPI SetRectRgn(HRGN hrgn,int left,int top,int right,int bottom);
2852
+ WINGDIAPI int WINAPI StretchDIBits(HDC hdc,int xDest,int yDest,int DestWidth,int DestHeight,int xSrc,int ySrc,int SrcWidth,int SrcHeight,CONST VOID *lpBits,CONST BITMAPINFO *lpbmi,UINT iUsage,DWORD rop);
2853
+ WINGDIAPI int WINAPI SetROP2(HDC hdc,int rop2);
2854
+ WINGDIAPI int WINAPI SetStretchBltMode(HDC hdc,int mode);
2855
+ WINGDIAPI UINT WINAPI SetSystemPaletteUse(HDC hdc,UINT use);
2856
+ WINGDIAPI int WINAPI SetTextCharacterExtra(HDC hdc,int extra);
2857
+ WINGDIAPI COLORREF WINAPI SetTextColor(HDC hdc,COLORREF color);
2858
+ WINGDIAPI UINT WINAPI SetTextAlign(HDC hdc,UINT align);
2859
+ WINGDIAPI WINBOOL WINAPI SetTextJustification(HDC hdc,int extra,int count);
2860
+ WINGDIAPI WINBOOL WINAPI UpdateColors(HDC hdc);
2861
+
2862
+ typedef USHORT COLOR16;
2863
+
2864
+ typedef struct _TRIVERTEX {
2865
+ LONG x;
2866
+ LONG y;
2867
+ COLOR16 Red;
2868
+ COLOR16 Green;
2869
+ COLOR16 Blue;
2870
+ COLOR16 Alpha;
2871
+ } TRIVERTEX,*PTRIVERTEX,*LPTRIVERTEX;
2872
+
2873
+ typedef struct _GRADIENT_TRIANGLE {
2874
+ ULONG Vertex1;
2875
+ ULONG Vertex2;
2876
+ ULONG Vertex3;
2877
+ } GRADIENT_TRIANGLE,*PGRADIENT_TRIANGLE,*LPGRADIENT_TRIANGLE;
2878
+
2879
+ typedef struct _GRADIENT_RECT {
2880
+ ULONG UpperLeft;
2881
+ ULONG LowerRight;
2882
+ } GRADIENT_RECT,*PGRADIENT_RECT,*LPGRADIENT_RECT;
2883
+
2884
+ typedef struct _BLENDFUNCTION {
2885
+ BYTE BlendOp;
2886
+ BYTE BlendFlags;
2887
+ BYTE SourceConstantAlpha;
2888
+ BYTE AlphaFormat;
2889
+ } BLENDFUNCTION,*PBLENDFUNCTION;
2890
+
2891
+ #define AC_SRC_OVER 0x00
2892
+ #define AC_SRC_ALPHA 0x01
2893
+
2894
+ WINGDIAPI WINBOOL WINAPI AlphaBlend(HDC hdcDest,int xoriginDest,int yoriginDest,int wDest,int hDest,HDC hdcSrc,int xoriginSrc,int yoriginSrc,int wSrc,int hSrc,BLENDFUNCTION ftn);
2895
+ WINGDIAPI WINBOOL WINAPI TransparentBlt(HDC hdcDest,int xoriginDest,int yoriginDest,int wDest,int hDest,HDC hdcSrc,int xoriginSrc,int yoriginSrc,int wSrc,int hSrc,UINT crTransparent);
2896
+
2897
+ #define GRADIENT_FILL_RECT_H 0x00000000
2898
+ #define GRADIENT_FILL_RECT_V 0x00000001
2899
+ #define GRADIENT_FILL_TRIANGLE 0x00000002
2900
+ #define GRADIENT_FILL_OP_FLAG 0x000000ff
2901
+
2902
+ WINGDIAPI WINBOOL WINAPI GradientFill(HDC hdc,PTRIVERTEX pVertex,ULONG nVertex,PVOID pMesh,ULONG nMesh,ULONG ulMode);
2903
+
2904
+ #ifndef NOMETAFILE
2905
+
2906
+ #ifdef UNICODE
2907
+ #define CopyEnhMetaFile CopyEnhMetaFileW
2908
+ #define CreateEnhMetaFile CreateEnhMetaFileW
2909
+ #define GetEnhMetaFile GetEnhMetaFileW
2910
+ #define GetEnhMetaFileDescription GetEnhMetaFileDescriptionW
2911
+ #else
2912
+ #define CopyEnhMetaFile CopyEnhMetaFileA
2913
+ #define CreateEnhMetaFile CreateEnhMetaFileA
2914
+ #define GetEnhMetaFile GetEnhMetaFileA
2915
+ #define GetEnhMetaFileDescription GetEnhMetaFileDescriptionA
2916
+ #endif
2917
+
2918
+ WINGDIAPI WINBOOL WINAPI PlayMetaFileRecord(HDC hdc,LPHANDLETABLE lpHandleTable,LPMETARECORD lpMR,UINT noObjs);
2919
+
2920
+ typedef int (CALLBACK *MFENUMPROC)(HDC hdc,HANDLETABLE *lpht,METARECORD *lpMR,int nObj,LPARAM param);
2921
+
2922
+ WINGDIAPI WINBOOL WINAPI EnumMetaFile(HDC hdc,HMETAFILE hmf,MFENUMPROC proc,LPARAM param);
2923
+
2924
+ typedef int (CALLBACK *ENHMFENUMPROC)(HDC hdc,HANDLETABLE *lpht,CONST ENHMETARECORD *lpmr,int hHandles,LPARAM data);
2925
+
2926
+ WINGDIAPI HENHMETAFILE WINAPI CloseEnhMetaFile(HDC hdc);
2927
+ WINGDIAPI HENHMETAFILE WINAPI CopyEnhMetaFileA(HENHMETAFILE hEnh,LPCSTR lpFileName);
2928
+ WINGDIAPI HENHMETAFILE WINAPI CopyEnhMetaFileW(HENHMETAFILE hEnh,LPCWSTR lpFileName);
2929
+ WINGDIAPI HDC WINAPI CreateEnhMetaFileA(HDC hdc,LPCSTR lpFilename,CONST RECT *lprc,LPCSTR lpDesc);
2930
+ WINGDIAPI HDC WINAPI CreateEnhMetaFileW(HDC hdc,LPCWSTR lpFilename,CONST RECT *lprc,LPCWSTR lpDesc);
2931
+ WINGDIAPI WINBOOL WINAPI DeleteEnhMetaFile(HENHMETAFILE hmf);
2932
+ WINGDIAPI WINBOOL WINAPI EnumEnhMetaFile(HDC hdc,HENHMETAFILE hmf,ENHMFENUMPROC proc,LPVOID param,CONST RECT *lpRect);
2933
+ WINGDIAPI HENHMETAFILE WINAPI GetEnhMetaFileA(LPCSTR lpName);
2934
+ WINGDIAPI HENHMETAFILE WINAPI GetEnhMetaFileW(LPCWSTR lpName);
2935
+ WINGDIAPI UINT WINAPI GetEnhMetaFileBits(HENHMETAFILE hEMF,UINT nSize,LPBYTE lpData);
2936
+ WINGDIAPI UINT WINAPI GetEnhMetaFileDescriptionA(HENHMETAFILE hemf,UINT cchBuffer,LPSTR lpDescription);
2937
+ WINGDIAPI UINT WINAPI GetEnhMetaFileDescriptionW(HENHMETAFILE hemf,UINT cchBuffer,LPWSTR lpDescription);
2938
+ WINGDIAPI UINT WINAPI GetEnhMetaFileHeader(HENHMETAFILE hemf,UINT nSize,LPENHMETAHEADER lpEnhMetaHeader);
2939
+ WINGDIAPI UINT WINAPI GetEnhMetaFilePaletteEntries(HENHMETAFILE hemf,UINT nNumEntries,LPPALETTEENTRY lpPaletteEntries);
2940
+ WINGDIAPI UINT WINAPI GetEnhMetaFilePixelFormat(HENHMETAFILE hemf,UINT cbBuffer,PIXELFORMATDESCRIPTOR *ppfd);
2941
+ WINGDIAPI UINT WINAPI GetWinMetaFileBits(HENHMETAFILE hemf,UINT cbData16,LPBYTE pData16,INT iMapMode,HDC hdcRef);
2942
+ WINGDIAPI WINBOOL WINAPI PlayEnhMetaFile(HDC hdc,HENHMETAFILE hmf,CONST RECT *lprect);
2943
+ WINGDIAPI WINBOOL WINAPI PlayEnhMetaFileRecord(HDC hdc,LPHANDLETABLE pht,CONST ENHMETARECORD *pmr,UINT cht);
2944
+ WINGDIAPI HENHMETAFILE WINAPI SetEnhMetaFileBits(UINT nSize,CONST BYTE *pb);
2945
+ WINGDIAPI HENHMETAFILE WINAPI SetWinMetaFileBits(UINT nSize,CONST BYTE *lpMeta16Data,HDC hdcRef,CONST METAFILEPICT *lpMFP);
2946
+ WINGDIAPI WINBOOL WINAPI GdiComment(HDC hdc,UINT nSize,CONST BYTE *lpData);
2947
+ #endif
2948
+
2949
+ #ifndef NOTEXTMETRIC
2950
+ #ifdef UNICODE
2951
+ #define GetTextMetrics GetTextMetricsW
2952
+ #else
2953
+ #define GetTextMetrics GetTextMetricsA
2954
+ #endif
2955
+
2956
+ WINGDIAPI WINBOOL WINAPI GetTextMetricsA(HDC hdc,LPTEXTMETRICA lptm);
2957
+ WINGDIAPI WINBOOL WINAPI GetTextMetricsW(HDC hdc,LPTEXTMETRICW lptm);
2958
+ #endif
2959
+
2960
+ typedef struct tagDIBSECTION {
2961
+ BITMAP dsBm;
2962
+ BITMAPINFOHEADER dsBmih;
2963
+ DWORD dsBitfields[3];
2964
+ HANDLE dshSection;
2965
+ DWORD dsOffset;
2966
+ } DIBSECTION,*LPDIBSECTION,*PDIBSECTION;
2967
+
2968
+ WINGDIAPI WINBOOL WINAPI AngleArc(HDC hdc,int x,int y,DWORD r,FLOAT StartAngle,FLOAT SweepAngle);
2969
+ WINGDIAPI WINBOOL WINAPI PolyPolyline(HDC hdc,CONST POINT *apt,CONST DWORD *asz,DWORD csz);
2970
+ WINGDIAPI WINBOOL WINAPI GetWorldTransform(HDC hdc,LPXFORM lpxf);
2971
+ WINGDIAPI WINBOOL WINAPI SetWorldTransform(HDC hdc,CONST XFORM *lpxf);
2972
+ WINGDIAPI WINBOOL WINAPI ModifyWorldTransform(HDC hdc,CONST XFORM *lpxf,DWORD mode);
2973
+ WINGDIAPI WINBOOL WINAPI CombineTransform(LPXFORM lpxfOut,CONST XFORM *lpxf1,CONST XFORM *lpxf2);
2974
+ WINGDIAPI HBITMAP WINAPI CreateDIBSection(HDC hdc,CONST BITMAPINFO *lpbmi,UINT usage,VOID **ppvBits,HANDLE hSection,DWORD offset);
2975
+ WINGDIAPI UINT WINAPI GetDIBColorTable(HDC hdc,UINT iStart,UINT cEntries,RGBQUAD *prgbq);
2976
+ WINGDIAPI UINT WINAPI SetDIBColorTable(HDC hdc,UINT iStart,UINT cEntries,CONST RGBQUAD *prgbq);
2977
+
2978
+ #define CA_NEGATIVE 0x0001
2979
+ #define CA_LOG_FILTER 0x0002
2980
+
2981
+ #define ILLUMINANT_DEVICE_DEFAULT 0
2982
+ #define ILLUMINANT_A 1
2983
+ #define ILLUMINANT_B 2
2984
+ #define ILLUMINANT_C 3
2985
+ #define ILLUMINANT_D50 4
2986
+ #define ILLUMINANT_D55 5
2987
+ #define ILLUMINANT_D65 6
2988
+ #define ILLUMINANT_D75 7
2989
+ #define ILLUMINANT_F2 8
2990
+ #define ILLUMINANT_MAX_INDEX ILLUMINANT_F2
2991
+
2992
+ #define ILLUMINANT_TUNGSTEN ILLUMINANT_A
2993
+ #define ILLUMINANT_DAYLIGHT ILLUMINANT_C
2994
+ #define ILLUMINANT_FLUORESCENT ILLUMINANT_F2
2995
+ #define ILLUMINANT_NTSC ILLUMINANT_C
2996
+
2997
+ #define RGB_GAMMA_MIN (WORD)02500
2998
+ #define RGB_GAMMA_MAX (WORD)65000
2999
+
3000
+ #define REFERENCE_WHITE_MIN (WORD)6000
3001
+ #define REFERENCE_WHITE_MAX (WORD)10000
3002
+ #define REFERENCE_BLACK_MIN (WORD)0
3003
+ #define REFERENCE_BLACK_MAX (WORD)4000
3004
+
3005
+ #define COLOR_ADJ_MIN (SHORT)-100
3006
+ #define COLOR_ADJ_MAX (SHORT)100
3007
+
3008
+ typedef struct tagCOLORADJUSTMENT {
3009
+ WORD caSize;
3010
+ WORD caFlags;
3011
+ WORD caIlluminantIndex;
3012
+ WORD caRedGamma;
3013
+ WORD caGreenGamma;
3014
+ WORD caBlueGamma;
3015
+ WORD caReferenceBlack;
3016
+ WORD caReferenceWhite;
3017
+ SHORT caContrast;
3018
+ SHORT caBrightness;
3019
+ SHORT caColorfulness;
3020
+ SHORT caRedGreenTint;
3021
+ } COLORADJUSTMENT,*PCOLORADJUSTMENT,*LPCOLORADJUSTMENT;
3022
+
3023
+ WINGDIAPI WINBOOL WINAPI SetColorAdjustment(HDC hdc,CONST COLORADJUSTMENT *lpca);
3024
+ WINGDIAPI WINBOOL WINAPI GetColorAdjustment(HDC hdc,LPCOLORADJUSTMENT lpca);
3025
+ WINGDIAPI HPALETTE WINAPI CreateHalftonePalette(HDC hdc);
3026
+
3027
+ typedef WINBOOL (CALLBACK *ABORTPROC)(HDC,int);
3028
+
3029
+ typedef struct _DOCINFOA {
3030
+ int cbSize;
3031
+ LPCSTR lpszDocName;
3032
+ LPCSTR lpszOutput;
3033
+ LPCSTR lpszDatatype;
3034
+ DWORD fwType;
3035
+ } DOCINFOA,*LPDOCINFOA;
3036
+
3037
+ typedef struct _DOCINFOW {
3038
+ int cbSize;
3039
+ LPCWSTR lpszDocName;
3040
+ LPCWSTR lpszOutput;
3041
+ LPCWSTR lpszDatatype;
3042
+ DWORD fwType;
3043
+ } DOCINFOW,*LPDOCINFOW;
3044
+
3045
+ #ifdef UNICODE
3046
+ typedef DOCINFOW DOCINFO;
3047
+ typedef LPDOCINFOW LPDOCINFO;
3048
+ #else
3049
+ typedef DOCINFOA DOCINFO;
3050
+ typedef LPDOCINFOA LPDOCINFO;
3051
+ #endif
3052
+
3053
+ #define DI_APPBANDING 0x00000001
3054
+ #define DI_ROPS_READ_DESTINATION 0x00000002
3055
+
3056
+ #ifdef UNICODE
3057
+ #define StartDoc StartDocW
3058
+ #define GetObject GetObjectW
3059
+ #define TextOut TextOutW
3060
+ #define ExtTextOut ExtTextOutW
3061
+ #define PolyTextOut PolyTextOutW
3062
+ #define GetTextFace GetTextFaceW
3063
+ #else
3064
+ #define StartDoc StartDocA
3065
+ #define GetObject GetObjectA
3066
+ #define TextOut TextOutA
3067
+ #define ExtTextOut ExtTextOutA
3068
+ #define PolyTextOut PolyTextOutA
3069
+ #define GetTextFace GetTextFaceA
3070
+ #endif
3071
+
3072
+ WINGDIAPI int WINAPI StartDocA(HDC hdc,CONST DOCINFOA *lpdi);
3073
+ WINGDIAPI int WINAPI StartDocW(HDC hdc,CONST DOCINFOW *lpdi);
3074
+ WINGDIAPI int WINAPI EndDoc(HDC hdc);
3075
+ WINGDIAPI int WINAPI StartPage(HDC hdc);
3076
+ WINGDIAPI int WINAPI EndPage(HDC hdc);
3077
+ WINGDIAPI int WINAPI AbortDoc(HDC hdc);
3078
+ WINGDIAPI int WINAPI SetAbortProc(HDC hdc,ABORTPROC proc);
3079
+ WINGDIAPI WINBOOL WINAPI AbortPath(HDC hdc);
3080
+ WINGDIAPI WINBOOL WINAPI ArcTo(HDC hdc,int left,int top,int right,int bottom,int xr1,int yr1,int xr2,int yr2);
3081
+ WINGDIAPI WINBOOL WINAPI BeginPath(HDC hdc);
3082
+ WINGDIAPI WINBOOL WINAPI CloseFigure(HDC hdc);
3083
+ WINGDIAPI WINBOOL WINAPI EndPath(HDC hdc);
3084
+ WINGDIAPI WINBOOL WINAPI FillPath(HDC hdc);
3085
+ WINGDIAPI WINBOOL WINAPI FlattenPath(HDC hdc);
3086
+ WINGDIAPI int WINAPI GetPath(HDC hdc,LPPOINT apt,LPBYTE aj,int cpt);
3087
+ WINGDIAPI HRGN WINAPI PathToRegion(HDC hdc);
3088
+ WINGDIAPI WINBOOL WINAPI PolyDraw(HDC hdc,CONST POINT *apt,CONST BYTE *aj,int cpt);
3089
+ WINGDIAPI WINBOOL WINAPI SelectClipPath(HDC hdc,int mode);
3090
+ WINGDIAPI int WINAPI SetArcDirection(HDC hdc,int dir);
3091
+ WINGDIAPI WINBOOL WINAPI SetMiterLimit(HDC hdc,FLOAT limit,PFLOAT old);
3092
+ WINGDIAPI WINBOOL WINAPI StrokeAndFillPath(HDC hdc);
3093
+ WINGDIAPI WINBOOL WINAPI StrokePath(HDC hdc);
3094
+ WINGDIAPI WINBOOL WINAPI WidenPath(HDC hdc);
3095
+ WINGDIAPI HPEN WINAPI ExtCreatePen(DWORD iPenStyle,DWORD cWidth,CONST LOGBRUSH *plbrush,DWORD cStyle,CONST DWORD *pstyle);
3096
+ WINGDIAPI WINBOOL WINAPI GetMiterLimit(HDC hdc,PFLOAT plimit);
3097
+ WINGDIAPI int WINAPI GetArcDirection(HDC hdc);
3098
+ WINGDIAPI int WINAPI GetObjectA(HANDLE h,int c,LPVOID pv);
3099
+ WINGDIAPI int WINAPI GetObjectW(HANDLE h,int c,LPVOID pv);
3100
+ WINGDIAPI WINBOOL WINAPI MoveToEx(HDC hdc,int x,int y,LPPOINT lppt);
3101
+ WINGDIAPI WINBOOL WINAPI TextOutA(HDC hdc,int x,int y,LPCSTR lpString,int c);
3102
+ WINGDIAPI WINBOOL WINAPI TextOutW(HDC hdc,int x,int y,LPCWSTR lpString,int c);
3103
+ WINGDIAPI WINBOOL WINAPI ExtTextOutA(HDC hdc,int x,int y,UINT options,CONST RECT *lprect,LPCSTR lpString,UINT c,CONST INT *lpDx);
3104
+ WINGDIAPI WINBOOL WINAPI ExtTextOutW(HDC hdc,int x,int y,UINT options,CONST RECT *lprect,LPCWSTR lpString,UINT c,CONST INT *lpDx);
3105
+ WINGDIAPI WINBOOL WINAPI PolyTextOutA(HDC hdc,CONST POLYTEXTA *ppt,int nstrings);
3106
+ WINGDIAPI WINBOOL WINAPI PolyTextOutW(HDC hdc,CONST POLYTEXTW *ppt,int nstrings);
3107
+ WINGDIAPI HRGN WINAPI CreatePolygonRgn(CONST POINT *pptl,int cPoint,int iMode);
3108
+ WINGDIAPI WINBOOL WINAPI DPtoLP(HDC hdc,LPPOINT lppt,int c);
3109
+ WINGDIAPI WINBOOL WINAPI LPtoDP(HDC hdc,LPPOINT lppt,int c);
3110
+ WINGDIAPI WINBOOL WINAPI Polygon(HDC hdc,CONST POINT *apt,int cpt);
3111
+ WINGDIAPI WINBOOL WINAPI Polyline(HDC hdc,CONST POINT *apt,int cpt);
3112
+ WINGDIAPI WINBOOL WINAPI PolyBezier(HDC hdc,CONST POINT *apt,DWORD cpt);
3113
+ WINGDIAPI WINBOOL WINAPI PolyBezierTo(HDC hdc,CONST POINT *apt,DWORD cpt);
3114
+ WINGDIAPI WINBOOL WINAPI PolylineTo(HDC hdc,CONST POINT *apt,DWORD cpt);
3115
+ WINGDIAPI WINBOOL WINAPI SetViewportExtEx(HDC hdc,int x,int y,LPSIZE lpsz);
3116
+ WINGDIAPI WINBOOL WINAPI SetViewportOrgEx(HDC hdc,int x,int y,LPPOINT lppt);
3117
+ WINGDIAPI WINBOOL WINAPI SetWindowExtEx(HDC hdc,int x,int y,LPSIZE lpsz);
3118
+ WINGDIAPI WINBOOL WINAPI SetWindowOrgEx(HDC hdc,int x,int y,LPPOINT lppt);
3119
+ WINGDIAPI WINBOOL WINAPI OffsetViewportOrgEx(HDC hdc,int x,int y,LPPOINT lppt);
3120
+ WINGDIAPI WINBOOL WINAPI OffsetWindowOrgEx(HDC hdc,int x,int y,LPPOINT lppt);
3121
+ WINGDIAPI WINBOOL WINAPI ScaleViewportExtEx(HDC hdc,int xn,int dx,int yn,int yd,LPSIZE lpsz);
3122
+ WINGDIAPI WINBOOL WINAPI ScaleWindowExtEx(HDC hdc,int xn,int xd,int yn,int yd,LPSIZE lpsz);
3123
+ WINGDIAPI WINBOOL WINAPI SetBitmapDimensionEx(HBITMAP hbm,int w,int h,LPSIZE lpsz);
3124
+ WINGDIAPI WINBOOL WINAPI SetBrushOrgEx(HDC hdc,int x,int y,LPPOINT lppt);
3125
+ WINGDIAPI int WINAPI GetTextFaceA(HDC hdc,int c,LPSTR lpName);
3126
+ WINGDIAPI int WINAPI GetTextFaceW(HDC hdc,int c,LPWSTR lpName);
3127
+
3128
+ #define FONTMAPPER_MAX 10
3129
+
3130
+ typedef struct tagKERNINGPAIR {
3131
+ WORD wFirst;
3132
+ WORD wSecond;
3133
+ int iKernAmount;
3134
+ } KERNINGPAIR,*LPKERNINGPAIR;
3135
+
3136
+ #ifdef UNICODE
3137
+ #define GetKerningPairs GetKerningPairsW
3138
+ #else
3139
+ #define GetKerningPairs GetKerningPairsA
3140
+ #endif
3141
+
3142
+ WINGDIAPI DWORD WINAPI GetKerningPairsA(HDC hdc,DWORD nPairs,LPKERNINGPAIR lpKernPair);
3143
+ WINGDIAPI DWORD WINAPI GetKerningPairsW(HDC hdc,DWORD nPairs,LPKERNINGPAIR lpKernPair);
3144
+ WINGDIAPI WINBOOL WINAPI GetDCOrgEx(HDC hdc,LPPOINT lppt);
3145
+ WINGDIAPI WINBOOL WINAPI FixBrushOrgEx(HDC hdc,int x,int y,LPPOINT ptl);
3146
+ WINGDIAPI WINBOOL WINAPI UnrealizeObject(HGDIOBJ h);
3147
+ WINGDIAPI WINBOOL WINAPI GdiFlush();
3148
+ WINGDIAPI DWORD WINAPI GdiSetBatchLimit(DWORD dw);
3149
+ WINGDIAPI DWORD WINAPI GdiGetBatchLimit();
3150
+
3151
+ #define ICM_OFF 1
3152
+ #define ICM_ON 2
3153
+ #define ICM_QUERY 3
3154
+ #define ICM_DONE_OUTSIDEDC 4
3155
+
3156
+ typedef int (CALLBACK *ICMENUMPROCA)(LPSTR,LPARAM);
3157
+ typedef int (CALLBACK *ICMENUMPROCW)(LPWSTR,LPARAM);
3158
+
3159
+ #ifdef UNICODE
3160
+ #define ICMENUMPROC ICMENUMPROCW
3161
+ #define EnumICMProfiles EnumICMProfilesW
3162
+ #define UpdateICMRegKey UpdateICMRegKeyW
3163
+ #define GetLogColorSpace GetLogColorSpaceW
3164
+ #define CreateColorSpace CreateColorSpaceW
3165
+ #define GetICMProfile GetICMProfileW
3166
+ #define SetICMProfile SetICMProfileW
3167
+ #else
3168
+ #define ICMENUMPROC ICMENUMPROCA
3169
+ #define EnumICMProfiles EnumICMProfilesA
3170
+ #define UpdateICMRegKey UpdateICMRegKeyA
3171
+ #define GetLogColorSpace GetLogColorSpaceA
3172
+ #define CreateColorSpace CreateColorSpaceA
3173
+ #define GetICMProfile GetICMProfileA
3174
+ #define SetICMProfile SetICMProfileA
3175
+ #endif
3176
+
3177
+ WINGDIAPI int WINAPI SetICMMode(HDC hdc,int mode);
3178
+ WINGDIAPI WINBOOL WINAPI CheckColorsInGamut(HDC hdc,LPVOID lpRGBTriple,LPVOID dlpBuffer,DWORD nCount);
3179
+ WINGDIAPI HCOLORSPACE WINAPI GetColorSpace(HDC hdc);
3180
+ WINGDIAPI WINBOOL WINAPI GetLogColorSpaceA(HCOLORSPACE hColorSpace,LPLOGCOLORSPACEA lpBuffer,DWORD nSize);
3181
+ WINGDIAPI WINBOOL WINAPI GetLogColorSpaceW(HCOLORSPACE hColorSpace,LPLOGCOLORSPACEW lpBuffer,DWORD nSize);
3182
+ WINGDIAPI HCOLORSPACE WINAPI CreateColorSpaceA(LPLOGCOLORSPACEA lplcs);
3183
+ WINGDIAPI HCOLORSPACE WINAPI CreateColorSpaceW(LPLOGCOLORSPACEW lplcs);
3184
+ WINGDIAPI HCOLORSPACE WINAPI SetColorSpace(HDC hdc,HCOLORSPACE hcs);
3185
+ WINGDIAPI WINBOOL WINAPI DeleteColorSpace(HCOLORSPACE hcs);
3186
+ WINGDIAPI WINBOOL WINAPI GetICMProfileA(HDC hdc,LPDWORD pBufSize,LPSTR pszFilename);
3187
+ WINGDIAPI WINBOOL WINAPI GetICMProfileW(HDC hdc,LPDWORD pBufSize,LPWSTR pszFilename);
3188
+ WINGDIAPI WINBOOL WINAPI SetICMProfileA(HDC hdc,LPSTR lpFileName);
3189
+ WINGDIAPI WINBOOL WINAPI SetICMProfileW(HDC hdc,LPWSTR lpFileName);
3190
+ WINGDIAPI WINBOOL WINAPI GetDeviceGammaRamp(HDC hdc,LPVOID lpRamp);
3191
+ WINGDIAPI WINBOOL WINAPI SetDeviceGammaRamp(HDC hdc,LPVOID lpRamp);
3192
+ WINGDIAPI WINBOOL WINAPI ColorMatchToTarget(HDC hdc,HDC hdcTarget,DWORD action);
3193
+ WINGDIAPI int WINAPI EnumICMProfilesA(HDC hdc,ICMENUMPROCA proc,LPARAM param);
3194
+ WINGDIAPI int WINAPI EnumICMProfilesW(HDC hdc,ICMENUMPROCW proc,LPARAM param);
3195
+ WINGDIAPI WINBOOL WINAPI UpdateICMRegKeyA(DWORD reserved,LPSTR lpszCMID,LPSTR lpszFileName,UINT command);
3196
+ WINGDIAPI WINBOOL WINAPI UpdateICMRegKeyW(DWORD reserved,LPWSTR lpszCMID,LPWSTR lpszFileName,UINT command);
3197
+ WINGDIAPI WINBOOL WINAPI ColorCorrectPalette(HDC hdc,HPALETTE hPal,DWORD deFirst,DWORD num);
3198
+
3199
+ #ifndef NOMETAFILE
3200
+
3201
+ #define ENHMETA_SIGNATURE 0x464D4520
3202
+ #define ENHMETA_STOCK_OBJECT 0x80000000
3203
+
3204
+ #define EMR_HEADER 1
3205
+ #define EMR_POLYBEZIER 2
3206
+ #define EMR_POLYGON 3
3207
+ #define EMR_POLYLINE 4
3208
+ #define EMR_POLYBEZIERTO 5
3209
+ #define EMR_POLYLINETO 6
3210
+ #define EMR_POLYPOLYLINE 7
3211
+ #define EMR_POLYPOLYGON 8
3212
+ #define EMR_SETWINDOWEXTEX 9
3213
+ #define EMR_SETWINDOWORGEX 10
3214
+ #define EMR_SETVIEWPORTEXTEX 11
3215
+ #define EMR_SETVIEWPORTORGEX 12
3216
+ #define EMR_SETBRUSHORGEX 13
3217
+ #define EMR_EOF 14
3218
+ #define EMR_SETPIXELV 15
3219
+ #define EMR_SETMAPPERFLAGS 16
3220
+ #define EMR_SETMAPMODE 17
3221
+ #define EMR_SETBKMODE 18
3222
+ #define EMR_SETPOLYFILLMODE 19
3223
+ #define EMR_SETROP2 20
3224
+ #define EMR_SETSTRETCHBLTMODE 21
3225
+ #define EMR_SETTEXTALIGN 22
3226
+ #define EMR_SETCOLORADJUSTMENT 23
3227
+ #define EMR_SETTEXTCOLOR 24
3228
+ #define EMR_SETBKCOLOR 25
3229
+ #define EMR_OFFSETCLIPRGN 26
3230
+ #define EMR_MOVETOEX 27
3231
+ #define EMR_SETMETARGN 28
3232
+ #define EMR_EXCLUDECLIPRECT 29
3233
+ #define EMR_INTERSECTCLIPRECT 30
3234
+ #define EMR_SCALEVIEWPORTEXTEX 31
3235
+ #define EMR_SCALEWINDOWEXTEX 32
3236
+ #define EMR_SAVEDC 33
3237
+ #define EMR_RESTOREDC 34
3238
+ #define EMR_SETWORLDTRANSFORM 35
3239
+ #define EMR_MODIFYWORLDTRANSFORM 36
3240
+ #define EMR_SELECTOBJECT 37
3241
+ #define EMR_CREATEPEN 38
3242
+ #define EMR_CREATEBRUSHINDIRECT 39
3243
+ #define EMR_DELETEOBJECT 40
3244
+ #define EMR_ANGLEARC 41
3245
+ #define EMR_ELLIPSE 42
3246
+ #define EMR_RECTANGLE 43
3247
+ #define EMR_ROUNDRECT 44
3248
+ #define EMR_ARC 45
3249
+ #define EMR_CHORD 46
3250
+ #define EMR_PIE 47
3251
+ #define EMR_SELECTPALETTE 48
3252
+ #define EMR_CREATEPALETTE 49
3253
+ #define EMR_SETPALETTEENTRIES 50
3254
+ #define EMR_RESIZEPALETTE 51
3255
+ #define EMR_REALIZEPALETTE 52
3256
+ #define EMR_EXTFLOODFILL 53
3257
+ #define EMR_LINETO 54
3258
+ #define EMR_ARCTO 55
3259
+ #define EMR_POLYDRAW 56
3260
+ #define EMR_SETARCDIRECTION 57
3261
+ #define EMR_SETMITERLIMIT 58
3262
+ #define EMR_BEGINPATH 59
3263
+ #define EMR_ENDPATH 60
3264
+ #define EMR_CLOSEFIGURE 61
3265
+ #define EMR_FILLPATH 62
3266
+ #define EMR_STROKEANDFILLPATH 63
3267
+ #define EMR_STROKEPATH 64
3268
+ #define EMR_FLATTENPATH 65
3269
+ #define EMR_WIDENPATH 66
3270
+ #define EMR_SELECTCLIPPATH 67
3271
+ #define EMR_ABORTPATH 68
3272
+
3273
+ #define EMR_GDICOMMENT 70
3274
+ #define EMR_FILLRGN 71
3275
+ #define EMR_FRAMERGN 72
3276
+ #define EMR_INVERTRGN 73
3277
+ #define EMR_PAINTRGN 74
3278
+ #define EMR_EXTSELECTCLIPRGN 75
3279
+ #define EMR_BITBLT 76
3280
+ #define EMR_STRETCHBLT 77
3281
+ #define EMR_MASKBLT 78
3282
+ #define EMR_PLGBLT 79
3283
+ #define EMR_SETDIBITSTODEVICE 80
3284
+ #define EMR_STRETCHDIBITS 81
3285
+ #define EMR_EXTCREATEFONTINDIRECTW 82
3286
+ #define EMR_EXTTEXTOUTA 83
3287
+ #define EMR_EXTTEXTOUTW 84
3288
+ #define EMR_POLYBEZIER16 85
3289
+ #define EMR_POLYGON16 86
3290
+ #define EMR_POLYLINE16 87
3291
+ #define EMR_POLYBEZIERTO16 88
3292
+ #define EMR_POLYLINETO16 89
3293
+ #define EMR_POLYPOLYLINE16 90
3294
+ #define EMR_POLYPOLYGON16 91
3295
+ #define EMR_POLYDRAW16 92
3296
+ #define EMR_CREATEMONOBRUSH 93
3297
+ #define EMR_CREATEDIBPATTERNBRUSHPT 94
3298
+ #define EMR_EXTCREATEPEN 95
3299
+ #define EMR_POLYTEXTOUTA 96
3300
+ #define EMR_POLYTEXTOUTW 97
3301
+
3302
+ #define EMR_SETICMMODE 98
3303
+ #define EMR_CREATECOLORSPACE 99
3304
+ #define EMR_SETCOLORSPACE 100
3305
+ #define EMR_DELETECOLORSPACE 101
3306
+ #define EMR_GLSRECORD 102
3307
+ #define EMR_GLSBOUNDEDRECORD 103
3308
+ #define EMR_PIXELFORMAT 104
3309
+ #define EMR_RESERVED_105 105
3310
+ #define EMR_RESERVED_106 106
3311
+ #define EMR_RESERVED_107 107
3312
+ #define EMR_RESERVED_108 108
3313
+ #define EMR_RESERVED_109 109
3314
+ #define EMR_RESERVED_110 110
3315
+ #define EMR_COLORCORRECTPALETTE 111
3316
+ #define EMR_SETICMPROFILEA 112
3317
+ #define EMR_SETICMPROFILEW 113
3318
+ #define EMR_ALPHABLEND 114
3319
+ #define EMR_SETLAYOUT 115
3320
+ #define EMR_TRANSPARENTBLT 116
3321
+ #define EMR_RESERVED_117 117
3322
+ #define EMR_GRADIENTFILL 118
3323
+ #define EMR_RESERVED_119 119
3324
+ #define EMR_RESERVED_120 120
3325
+ #define EMR_COLORMATCHTOTARGETW 121
3326
+ #define EMR_CREATECOLORSPACEW 122
3327
+
3328
+ #define EMR_MIN 1
3329
+
3330
+ #define EMR_MAX 122
3331
+
3332
+ typedef struct tagEMR {
3333
+ DWORD iType;
3334
+ DWORD nSize;
3335
+ } EMR,*PEMR;
3336
+
3337
+ typedef struct tagEMRTEXT {
3338
+ POINTL ptlReference;
3339
+ DWORD nChars;
3340
+ DWORD offString;
3341
+ DWORD fOptions;
3342
+ RECTL rcl;
3343
+ DWORD offDx;
3344
+ } EMRTEXT,*PEMRTEXT;
3345
+
3346
+ typedef struct tagABORTPATH {
3347
+ EMR emr;
3348
+ } EMRABORTPATH,*PEMRABORTPATH,EMRBEGINPATH,*PEMRBEGINPATH,EMRENDPATH,*PEMRENDPATH,EMRCLOSEFIGURE,*PEMRCLOSEFIGURE,EMRFLATTENPATH,*PEMRFLATTENPATH,EMRWIDENPATH,*PEMRWIDENPATH,EMRSETMETARGN,*PEMRSETMETARGN,EMRSAVEDC,*PEMRSAVEDC,EMRREALIZEPALETTE,*PEMRREALIZEPALETTE;
3349
+
3350
+ typedef struct tagEMRSELECTCLIPPATH {
3351
+ EMR emr;
3352
+ DWORD iMode;
3353
+ } EMRSELECTCLIPPATH,*PEMRSELECTCLIPPATH,EMRSETBKMODE,*PEMRSETBKMODE,EMRSETMAPMODE,*PEMRSETMAPMODE,EMRSETLAYOUT,*PEMRSETLAYOUT,
3354
+ EMRSETPOLYFILLMODE,*PEMRSETPOLYFILLMODE,EMRSETROP2,*PEMRSETROP2,EMRSETSTRETCHBLTMODE,*PEMRSETSTRETCHBLTMODE,EMRSETICMMODE,
3355
+ *PEMRSETICMMODE,EMRSETTEXTALIGN,*PEMRSETTEXTALIGN;
3356
+
3357
+ typedef struct tagEMRSETMITERLIMIT {
3358
+ EMR emr;
3359
+ FLOAT eMiterLimit;
3360
+ } EMRSETMITERLIMIT,*PEMRSETMITERLIMIT;
3361
+
3362
+ typedef struct tagEMRRESTOREDC {
3363
+ EMR emr;
3364
+ LONG iRelative;
3365
+ } EMRRESTOREDC,*PEMRRESTOREDC;
3366
+
3367
+ typedef struct tagEMRSETARCDIRECTION {
3368
+ EMR emr;
3369
+ DWORD iArcDirection;
3370
+
3371
+ } EMRSETARCDIRECTION,*PEMRSETARCDIRECTION;
3372
+
3373
+ typedef struct tagEMRSETMAPPERFLAGS {
3374
+ EMR emr;
3375
+ DWORD dwFlags;
3376
+ } EMRSETMAPPERFLAGS,*PEMRSETMAPPERFLAGS;
3377
+
3378
+ typedef struct tagEMRSETTEXTCOLOR {
3379
+ EMR emr;
3380
+ COLORREF crColor;
3381
+ } EMRSETBKCOLOR,*PEMRSETBKCOLOR,EMRSETTEXTCOLOR,*PEMRSETTEXTCOLOR;
3382
+
3383
+ typedef struct tagEMRSELECTOBJECT {
3384
+ EMR emr;
3385
+ DWORD ihObject;
3386
+ } EMRSELECTOBJECT,*PEMRSELECTOBJECT,EMRDELETEOBJECT,*PEMRDELETEOBJECT;
3387
+
3388
+ typedef struct tagEMRSELECTPALETTE {
3389
+ EMR emr;
3390
+ DWORD ihPal;
3391
+ } EMRSELECTPALETTE,*PEMRSELECTPALETTE;
3392
+
3393
+ typedef struct tagEMRRESIZEPALETTE {
3394
+ EMR emr;
3395
+ DWORD ihPal;
3396
+ DWORD cEntries;
3397
+ } EMRRESIZEPALETTE,*PEMRRESIZEPALETTE;
3398
+
3399
+ typedef struct tagEMRSETPALETTEENTRIES {
3400
+ EMR emr;
3401
+ DWORD ihPal;
3402
+ DWORD iStart;
3403
+ DWORD cEntries;
3404
+ PALETTEENTRY aPalEntries[1];
3405
+ } EMRSETPALETTEENTRIES,*PEMRSETPALETTEENTRIES;
3406
+
3407
+ typedef struct tagEMRSETCOLORADJUSTMENT {
3408
+ EMR emr;
3409
+ COLORADJUSTMENT ColorAdjustment;
3410
+ } EMRSETCOLORADJUSTMENT,*PEMRSETCOLORADJUSTMENT;
3411
+
3412
+ typedef struct tagEMRGDICOMMENT {
3413
+ EMR emr;
3414
+ DWORD cbData;
3415
+ BYTE Data[1];
3416
+ } EMRGDICOMMENT,*PEMRGDICOMMENT;
3417
+
3418
+ typedef struct tagEMREOF {
3419
+ EMR emr;
3420
+ DWORD nPalEntries;
3421
+ DWORD offPalEntries;
3422
+ DWORD nSizeLast;
3423
+ } EMREOF,*PEMREOF;
3424
+
3425
+ typedef struct tagEMRLINETO {
3426
+ EMR emr;
3427
+ POINTL ptl;
3428
+ } EMRLINETO,*PEMRLINETO,EMRMOVETOEX,*PEMRMOVETOEX;
3429
+
3430
+ typedef struct tagEMROFFSETCLIPRGN {
3431
+ EMR emr;
3432
+ POINTL ptlOffset;
3433
+ } EMROFFSETCLIPRGN,*PEMROFFSETCLIPRGN;
3434
+
3435
+ typedef struct tagEMRFILLPATH {
3436
+ EMR emr;
3437
+ RECTL rclBounds;
3438
+ } EMRFILLPATH,*PEMRFILLPATH,EMRSTROKEANDFILLPATH,*PEMRSTROKEANDFILLPATH,EMRSTROKEPATH,*PEMRSTROKEPATH;
3439
+
3440
+ typedef struct tagEMREXCLUDECLIPRECT {
3441
+ EMR emr;
3442
+ RECTL rclClip;
3443
+ } EMREXCLUDECLIPRECT,*PEMREXCLUDECLIPRECT,EMRINTERSECTCLIPRECT,*PEMRINTERSECTCLIPRECT;
3444
+
3445
+ typedef struct tagEMRSETVIEWPORTORGEX {
3446
+ EMR emr;
3447
+ POINTL ptlOrigin;
3448
+ } EMRSETVIEWPORTORGEX,*PEMRSETVIEWPORTORGEX,EMRSETWINDOWORGEX,*PEMRSETWINDOWORGEX,EMRSETBRUSHORGEX,*PEMRSETBRUSHORGEX;
3449
+
3450
+ typedef struct tagEMRSETVIEWPORTEXTEX {
3451
+ EMR emr;
3452
+ SIZEL szlExtent;
3453
+ } EMRSETVIEWPORTEXTEX,*PEMRSETVIEWPORTEXTEX,EMRSETWINDOWEXTEX,*PEMRSETWINDOWEXTEX;
3454
+
3455
+ typedef struct tagEMRSCALEVIEWPORTEXTEX {
3456
+ EMR emr;
3457
+ LONG xNum;
3458
+ LONG xDenom;
3459
+ LONG yNum;
3460
+ LONG yDenom;
3461
+ } EMRSCALEVIEWPORTEXTEX,*PEMRSCALEVIEWPORTEXTEX,EMRSCALEWINDOWEXTEX,*PEMRSCALEWINDOWEXTEX;
3462
+
3463
+ typedef struct tagEMRSETWORLDTRANSFORM {
3464
+ EMR emr;
3465
+ XFORM xform;
3466
+ } EMRSETWORLDTRANSFORM,*PEMRSETWORLDTRANSFORM;
3467
+
3468
+ typedef struct tagEMRMODIFYWORLDTRANSFORM {
3469
+ EMR emr;
3470
+ XFORM xform;
3471
+ DWORD iMode;
3472
+ } EMRMODIFYWORLDTRANSFORM,*PEMRMODIFYWORLDTRANSFORM;
3473
+
3474
+ typedef struct tagEMRSETPIXELV {
3475
+ EMR emr;
3476
+ POINTL ptlPixel;
3477
+ COLORREF crColor;
3478
+ } EMRSETPIXELV,*PEMRSETPIXELV;
3479
+
3480
+ typedef struct tagEMREXTFLOODFILL {
3481
+ EMR emr;
3482
+ POINTL ptlStart;
3483
+ COLORREF crColor;
3484
+ DWORD iMode;
3485
+ } EMREXTFLOODFILL,*PEMREXTFLOODFILL;
3486
+
3487
+ typedef struct tagEMRELLIPSE {
3488
+ EMR emr;
3489
+ RECTL rclBox;
3490
+ } EMRELLIPSE,*PEMRELLIPSE,EMRRECTANGLE,*PEMRRECTANGLE;
3491
+
3492
+ typedef struct tagEMRROUNDRECT {
3493
+ EMR emr;
3494
+ RECTL rclBox;
3495
+ SIZEL szlCorner;
3496
+ } EMRROUNDRECT,*PEMRROUNDRECT;
3497
+
3498
+ typedef struct tagEMRARC {
3499
+ EMR emr;
3500
+ RECTL rclBox;
3501
+ POINTL ptlStart;
3502
+ POINTL ptlEnd;
3503
+ } EMRARC,*PEMRARC,EMRARCTO,*PEMRARCTO,EMRCHORD,*PEMRCHORD,EMRPIE,*PEMRPIE;
3504
+
3505
+ typedef struct tagEMRANGLEARC {
3506
+ EMR emr;
3507
+ POINTL ptlCenter;
3508
+ DWORD nRadius;
3509
+ FLOAT eStartAngle;
3510
+ FLOAT eSweepAngle;
3511
+ } EMRANGLEARC,*PEMRANGLEARC;
3512
+
3513
+ typedef struct tagEMRPOLYLINE {
3514
+ EMR emr;
3515
+ RECTL rclBounds;
3516
+ DWORD cptl;
3517
+ POINTL aptl[1];
3518
+ } EMRPOLYLINE,*PEMRPOLYLINE,EMRPOLYBEZIER,*PEMRPOLYBEZIER,EMRPOLYGON,*PEMRPOLYGON,EMRPOLYBEZIERTO,*PEMRPOLYBEZIERTO,EMRPOLYLINETO,*PEMRPOLYLINETO;
3519
+
3520
+ typedef struct tagEMRPOLYLINE16 {
3521
+ EMR emr;
3522
+ RECTL rclBounds;
3523
+ DWORD cpts;
3524
+ POINTS apts[1];
3525
+ } EMRPOLYLINE16,*PEMRPOLYLINE16,EMRPOLYBEZIER16,*PEMRPOLYBEZIER16,EMRPOLYGON16,*PEMRPOLYGON16,EMRPOLYBEZIERTO16,*PEMRPOLYBEZIERTO16,EMRPOLYLINETO16,*PEMRPOLYLINETO16;
3526
+
3527
+ typedef struct tagEMRPOLYDRAW {
3528
+ EMR emr;
3529
+ RECTL rclBounds;
3530
+ DWORD cptl;
3531
+ POINTL aptl[1];
3532
+ BYTE abTypes[1];
3533
+ } EMRPOLYDRAW,*PEMRPOLYDRAW;
3534
+
3535
+ typedef struct tagEMRPOLYDRAW16 {
3536
+ EMR emr;
3537
+ RECTL rclBounds;
3538
+ DWORD cpts;
3539
+ POINTS apts[1];
3540
+ BYTE abTypes[1];
3541
+ } EMRPOLYDRAW16,*PEMRPOLYDRAW16;
3542
+
3543
+ typedef struct tagEMRPOLYPOLYLINE {
3544
+ EMR emr;
3545
+ RECTL rclBounds;
3546
+ DWORD nPolys;
3547
+ DWORD cptl;
3548
+ DWORD aPolyCounts[1];
3549
+ POINTL aptl[1];
3550
+ } EMRPOLYPOLYLINE,*PEMRPOLYPOLYLINE,EMRPOLYPOLYGON,*PEMRPOLYPOLYGON;
3551
+
3552
+ typedef struct tagEMRPOLYPOLYLINE16 {
3553
+ EMR emr;
3554
+ RECTL rclBounds;
3555
+ DWORD nPolys;
3556
+ DWORD cpts;
3557
+ DWORD aPolyCounts[1];
3558
+ POINTS apts[1];
3559
+ } EMRPOLYPOLYLINE16,*PEMRPOLYPOLYLINE16,EMRPOLYPOLYGON16,*PEMRPOLYPOLYGON16;
3560
+
3561
+ typedef struct tagEMRINVERTRGN {
3562
+ EMR emr;
3563
+ RECTL rclBounds;
3564
+ DWORD cbRgnData;
3565
+ BYTE RgnData[1];
3566
+ } EMRINVERTRGN,*PEMRINVERTRGN,EMRPAINTRGN,*PEMRPAINTRGN;
3567
+
3568
+ typedef struct tagEMRFILLRGN {
3569
+ EMR emr;
3570
+ RECTL rclBounds;
3571
+ DWORD cbRgnData;
3572
+ DWORD ihBrush;
3573
+ BYTE RgnData[1];
3574
+ } EMRFILLRGN,*PEMRFILLRGN;
3575
+
3576
+ typedef struct tagEMRFRAMERGN {
3577
+ EMR emr;
3578
+ RECTL rclBounds;
3579
+ DWORD cbRgnData;
3580
+ DWORD ihBrush;
3581
+ SIZEL szlStroke;
3582
+ BYTE RgnData[1];
3583
+ } EMRFRAMERGN,*PEMRFRAMERGN;
3584
+
3585
+ typedef struct tagEMREXTSELECTCLIPRGN {
3586
+ EMR emr;
3587
+ DWORD cbRgnData;
3588
+ DWORD iMode;
3589
+ BYTE RgnData[1];
3590
+ } EMREXTSELECTCLIPRGN,*PEMREXTSELECTCLIPRGN;
3591
+
3592
+ typedef struct tagEMREXTTEXTOUTA {
3593
+ EMR emr;
3594
+ RECTL rclBounds;
3595
+ DWORD iGraphicsMode;
3596
+ FLOAT exScale;
3597
+ FLOAT eyScale;
3598
+ EMRTEXT emrtext;
3599
+ } EMREXTTEXTOUTA,*PEMREXTTEXTOUTA,EMREXTTEXTOUTW,*PEMREXTTEXTOUTW;
3600
+
3601
+ typedef struct tagEMRPOLYTEXTOUTA {
3602
+ EMR emr;
3603
+ RECTL rclBounds;
3604
+ DWORD iGraphicsMode;
3605
+ FLOAT exScale;
3606
+ FLOAT eyScale;
3607
+ LONG cStrings;
3608
+ EMRTEXT aemrtext[1];
3609
+ } EMRPOLYTEXTOUTA,*PEMRPOLYTEXTOUTA,EMRPOLYTEXTOUTW,*PEMRPOLYTEXTOUTW;
3610
+
3611
+ typedef struct tagEMRBITBLT {
3612
+ EMR emr;
3613
+ RECTL rclBounds;
3614
+ LONG xDest;
3615
+ LONG yDest;
3616
+ LONG cxDest;
3617
+ LONG cyDest;
3618
+ DWORD dwRop;
3619
+ LONG xSrc;
3620
+ LONG ySrc;
3621
+ XFORM xformSrc;
3622
+ COLORREF crBkColorSrc;
3623
+ DWORD iUsageSrc;
3624
+ DWORD offBmiSrc;
3625
+ DWORD cbBmiSrc;
3626
+ DWORD offBitsSrc;
3627
+ DWORD cbBitsSrc;
3628
+ } EMRBITBLT,*PEMRBITBLT;
3629
+
3630
+ typedef struct tagEMRSTRETCHBLT {
3631
+ EMR emr;
3632
+ RECTL rclBounds;
3633
+ LONG xDest;
3634
+ LONG yDest;
3635
+ LONG cxDest;
3636
+ LONG cyDest;
3637
+ DWORD dwRop;
3638
+ LONG xSrc;
3639
+ LONG ySrc;
3640
+ XFORM xformSrc;
3641
+ COLORREF crBkColorSrc;
3642
+ DWORD iUsageSrc;
3643
+ DWORD offBmiSrc;
3644
+ DWORD cbBmiSrc;
3645
+ DWORD offBitsSrc;
3646
+ DWORD cbBitsSrc;
3647
+ LONG cxSrc;
3648
+ LONG cySrc;
3649
+ } EMRSTRETCHBLT,*PEMRSTRETCHBLT;
3650
+
3651
+ typedef struct tagEMRMASKBLT {
3652
+ EMR emr;
3653
+ RECTL rclBounds;
3654
+ LONG xDest;
3655
+ LONG yDest;
3656
+ LONG cxDest;
3657
+ LONG cyDest;
3658
+ DWORD dwRop;
3659
+ LONG xSrc;
3660
+ LONG ySrc;
3661
+ XFORM xformSrc;
3662
+ COLORREF crBkColorSrc;
3663
+ DWORD iUsageSrc;
3664
+ DWORD offBmiSrc;
3665
+ DWORD cbBmiSrc;
3666
+ DWORD offBitsSrc;
3667
+ DWORD cbBitsSrc;
3668
+ LONG xMask;
3669
+ LONG yMask;
3670
+ DWORD iUsageMask;
3671
+ DWORD offBmiMask;
3672
+ DWORD cbBmiMask;
3673
+ DWORD offBitsMask;
3674
+ DWORD cbBitsMask;
3675
+ } EMRMASKBLT,*PEMRMASKBLT;
3676
+
3677
+ typedef struct tagEMRPLGBLT {
3678
+ EMR emr;
3679
+ RECTL rclBounds;
3680
+ POINTL aptlDest[3];
3681
+ LONG xSrc;
3682
+ LONG ySrc;
3683
+ LONG cxSrc;
3684
+ LONG cySrc;
3685
+ XFORM xformSrc;
3686
+ COLORREF crBkColorSrc;
3687
+ DWORD iUsageSrc;
3688
+ DWORD offBmiSrc;
3689
+ DWORD cbBmiSrc;
3690
+ DWORD offBitsSrc;
3691
+ DWORD cbBitsSrc;
3692
+ LONG xMask;
3693
+ LONG yMask;
3694
+ DWORD iUsageMask;
3695
+ DWORD offBmiMask;
3696
+ DWORD cbBmiMask;
3697
+ DWORD offBitsMask;
3698
+ DWORD cbBitsMask;
3699
+ } EMRPLGBLT,*PEMRPLGBLT;
3700
+
3701
+ typedef struct tagEMRSETDIBITSTODEVICE {
3702
+ EMR emr;
3703
+ RECTL rclBounds;
3704
+ LONG xDest;
3705
+ LONG yDest;
3706
+ LONG xSrc;
3707
+ LONG ySrc;
3708
+ LONG cxSrc;
3709
+ LONG cySrc;
3710
+ DWORD offBmiSrc;
3711
+ DWORD cbBmiSrc;
3712
+ DWORD offBitsSrc;
3713
+ DWORD cbBitsSrc;
3714
+ DWORD iUsageSrc;
3715
+ DWORD iStartScan;
3716
+ DWORD cScans;
3717
+ } EMRSETDIBITSTODEVICE,*PEMRSETDIBITSTODEVICE;
3718
+
3719
+ typedef struct tagEMRSTRETCHDIBITS {
3720
+ EMR emr;
3721
+ RECTL rclBounds;
3722
+ LONG xDest;
3723
+ LONG yDest;
3724
+ LONG xSrc;
3725
+ LONG ySrc;
3726
+ LONG cxSrc;
3727
+ LONG cySrc;
3728
+ DWORD offBmiSrc;
3729
+ DWORD cbBmiSrc;
3730
+ DWORD offBitsSrc;
3731
+ DWORD cbBitsSrc;
3732
+ DWORD iUsageSrc;
3733
+ DWORD dwRop;
3734
+ LONG cxDest;
3735
+ LONG cyDest;
3736
+ } EMRSTRETCHDIBITS,*PEMRSTRETCHDIBITS;
3737
+
3738
+ typedef struct tagEMREXTCREATEFONTINDIRECTW {
3739
+ EMR emr;
3740
+ DWORD ihFont;
3741
+ EXTLOGFONTW elfw;
3742
+ } EMREXTCREATEFONTINDIRECTW,*PEMREXTCREATEFONTINDIRECTW;
3743
+
3744
+ typedef struct tagEMRCREATEPALETTE {
3745
+ EMR emr;
3746
+ DWORD ihPal;
3747
+ LOGPALETTE lgpl;
3748
+ } EMRCREATEPALETTE,*PEMRCREATEPALETTE;
3749
+
3750
+ typedef struct tagEMRCREATEPEN {
3751
+ EMR emr;
3752
+ DWORD ihPen;
3753
+ LOGPEN lopn;
3754
+ } EMRCREATEPEN,*PEMRCREATEPEN;
3755
+
3756
+ typedef struct tagEMREXTCREATEPEN {
3757
+ EMR emr;
3758
+ DWORD ihPen;
3759
+ DWORD offBmi;
3760
+ DWORD cbBmi;
3761
+ DWORD offBits;
3762
+ DWORD cbBits;
3763
+ EXTLOGPEN elp;
3764
+ } EMREXTCREATEPEN,*PEMREXTCREATEPEN;
3765
+
3766
+ typedef struct tagEMRCREATEBRUSHINDIRECT {
3767
+ EMR emr;
3768
+ DWORD ihBrush;
3769
+ LOGBRUSH32 lb;
3770
+ } EMRCREATEBRUSHINDIRECT,*PEMRCREATEBRUSHINDIRECT;
3771
+
3772
+ typedef struct tagEMRCREATEMONOBRUSH {
3773
+ EMR emr;
3774
+ DWORD ihBrush;
3775
+ DWORD iUsage;
3776
+ DWORD offBmi;
3777
+ DWORD cbBmi;
3778
+ DWORD offBits;
3779
+ DWORD cbBits;
3780
+ } EMRCREATEMONOBRUSH,*PEMRCREATEMONOBRUSH;
3781
+
3782
+ typedef struct tagEMRCREATEDIBPATTERNBRUSHPT {
3783
+ EMR emr;
3784
+ DWORD ihBrush;
3785
+ DWORD iUsage;
3786
+ DWORD offBmi;
3787
+ DWORD cbBmi;
3788
+ DWORD offBits;
3789
+ DWORD cbBits;
3790
+ } EMRCREATEDIBPATTERNBRUSHPT,*PEMRCREATEDIBPATTERNBRUSHPT;
3791
+
3792
+ typedef struct tagEMRFORMAT {
3793
+ DWORD dSignature;
3794
+ DWORD nVersion;
3795
+ DWORD cbData;
3796
+ DWORD offData;
3797
+ } EMRFORMAT,*PEMRFORMAT;
3798
+
3799
+ typedef struct tagEMRGLSRECORD {
3800
+ EMR emr;
3801
+ DWORD cbData;
3802
+ BYTE Data[1];
3803
+ } EMRGLSRECORD,*PEMRGLSRECORD;
3804
+
3805
+ typedef struct tagEMRGLSBOUNDEDRECORD {
3806
+ EMR emr;
3807
+ RECTL rclBounds;
3808
+ DWORD cbData;
3809
+ BYTE Data[1];
3810
+ } EMRGLSBOUNDEDRECORD,*PEMRGLSBOUNDEDRECORD;
3811
+
3812
+ typedef struct tagEMRPIXELFORMAT {
3813
+ EMR emr;
3814
+ PIXELFORMATDESCRIPTOR pfd;
3815
+ } EMRPIXELFORMAT,*PEMRPIXELFORMAT;
3816
+
3817
+ typedef struct tagEMRCREATECOLORSPACE {
3818
+ EMR emr;
3819
+ DWORD ihCS;
3820
+ LOGCOLORSPACEA lcs;
3821
+ } EMRCREATECOLORSPACE,*PEMRCREATECOLORSPACE;
3822
+
3823
+ typedef struct tagEMRSETCOLORSPACE {
3824
+ EMR emr;
3825
+ DWORD ihCS;
3826
+ } EMRSETCOLORSPACE,*PEMRSETCOLORSPACE,EMRSELECTCOLORSPACE,*PEMRSELECTCOLORSPACE,EMRDELETECOLORSPACE,*PEMRDELETECOLORSPACE;
3827
+
3828
+ typedef struct tagEMREXTESCAPE {
3829
+ EMR emr;
3830
+ INT iEscape;
3831
+ INT cbEscData;
3832
+ BYTE EscData[1];
3833
+ } EMREXTESCAPE,*PEMREXTESCAPE,EMRDRAWESCAPE,*PEMRDRAWESCAPE;
3834
+
3835
+ typedef struct tagEMRNAMEDESCAPE {
3836
+ EMR emr;
3837
+ INT iEscape;
3838
+ INT cbDriver;
3839
+ INT cbEscData;
3840
+ BYTE EscData[1];
3841
+ } EMRNAMEDESCAPE,*PEMRNAMEDESCAPE;
3842
+
3843
+ #define SETICMPROFILE_EMBEDED 0x00000001
3844
+
3845
+ typedef struct tagEMRSETICMPROFILE {
3846
+ EMR emr;
3847
+ DWORD dwFlags;
3848
+ DWORD cbName;
3849
+ DWORD cbData;
3850
+ BYTE Data[1];
3851
+ } EMRSETICMPROFILE,*PEMRSETICMPROFILE,EMRSETICMPROFILEA,*PEMRSETICMPROFILEA,EMRSETICMPROFILEW,*PEMRSETICMPROFILEW;
3852
+
3853
+ #define CREATECOLORSPACE_EMBEDED 0x00000001
3854
+
3855
+ typedef struct tagEMRCREATECOLORSPACEW {
3856
+ EMR emr;
3857
+ DWORD ihCS;
3858
+ LOGCOLORSPACEW lcs;
3859
+ DWORD dwFlags;
3860
+ DWORD cbData;
3861
+ BYTE Data[1];
3862
+ } EMRCREATECOLORSPACEW,*PEMRCREATECOLORSPACEW;
3863
+
3864
+ #define COLORMATCHTOTARGET_EMBEDED 0x00000001
3865
+
3866
+ typedef struct tagCOLORMATCHTOTARGET {
3867
+ EMR emr;
3868
+ DWORD dwAction;
3869
+ DWORD dwFlags;
3870
+ DWORD cbName;
3871
+ DWORD cbData;
3872
+ BYTE Data[1];
3873
+ } EMRCOLORMATCHTOTARGET,*PEMRCOLORMATCHTOTARGET;
3874
+
3875
+ typedef struct tagCOLORCORRECTPALETTE {
3876
+ EMR emr;
3877
+ DWORD ihPalette;
3878
+ DWORD nFirstEntry;
3879
+ DWORD nPalEntries;
3880
+ DWORD nReserved;
3881
+ } EMRCOLORCORRECTPALETTE,*PEMRCOLORCORRECTPALETTE;
3882
+
3883
+ typedef struct tagEMRALPHABLEND {
3884
+ EMR emr;
3885
+ RECTL rclBounds;
3886
+ LONG xDest;
3887
+ LONG yDest;
3888
+ LONG cxDest;
3889
+ LONG cyDest;
3890
+ DWORD dwRop;
3891
+ LONG xSrc;
3892
+ LONG ySrc;
3893
+ XFORM xformSrc;
3894
+ COLORREF crBkColorSrc;
3895
+ DWORD iUsageSrc;
3896
+ DWORD offBmiSrc;
3897
+ DWORD cbBmiSrc;
3898
+ DWORD offBitsSrc;
3899
+ DWORD cbBitsSrc;
3900
+ LONG cxSrc;
3901
+ LONG cySrc;
3902
+ } EMRALPHABLEND,*PEMRALPHABLEND;
3903
+
3904
+ typedef struct tagEMRGRADIENTFILL {
3905
+ EMR emr;
3906
+ RECTL rclBounds;
3907
+ DWORD nVer;
3908
+ DWORD nTri;
3909
+ ULONG ulMode;
3910
+ TRIVERTEX Ver[1];
3911
+ } EMRGRADIENTFILL,*PEMRGRADIENTFILL;
3912
+
3913
+ typedef struct tagEMRTRANSPARENTBLT {
3914
+ EMR emr;
3915
+ RECTL rclBounds;
3916
+ LONG xDest;
3917
+ LONG yDest;
3918
+ LONG cxDest;
3919
+ LONG cyDest;
3920
+ DWORD dwRop;
3921
+ LONG xSrc;
3922
+ LONG ySrc;
3923
+ XFORM xformSrc;
3924
+ COLORREF crBkColorSrc;
3925
+ DWORD iUsageSrc;
3926
+ DWORD offBmiSrc;
3927
+ DWORD cbBmiSrc;
3928
+ DWORD offBitsSrc;
3929
+ DWORD cbBitsSrc;
3930
+ LONG cxSrc;
3931
+ LONG cySrc;
3932
+ } EMRTRANSPARENTBLT,*PEMRTRANSPARENTBLT;
3933
+
3934
+ #define GDICOMMENT_IDENTIFIER 0x43494447
3935
+ #define GDICOMMENT_WINDOWS_METAFILE 0x80000001
3936
+ #define GDICOMMENT_BEGINGROUP 0x00000002
3937
+ #define GDICOMMENT_ENDGROUP 0x00000003
3938
+ #define GDICOMMENT_MULTIFORMATS 0x40000004
3939
+ #define EPS_SIGNATURE 0x46535045
3940
+ #define GDICOMMENT_UNICODE_STRING 0x00000040
3941
+ #define GDICOMMENT_UNICODE_END 0x00000080
3942
+ #endif
3943
+
3944
+ #ifdef UNICODE
3945
+ #define wglUseFontBitmaps wglUseFontBitmapsW
3946
+ #else
3947
+ #define wglUseFontBitmaps wglUseFontBitmapsA
3948
+ #endif
3949
+
3950
+ WINGDIAPI WINBOOL WINAPI wglCopyContext(HGLRC,HGLRC,UINT);
3951
+ WINGDIAPI HGLRC WINAPI wglCreateContext(HDC);
3952
+ WINGDIAPI HGLRC WINAPI wglCreateLayerContext(HDC,int);
3953
+ WINGDIAPI WINBOOL WINAPI wglDeleteContext(HGLRC);
3954
+ WINGDIAPI HGLRC WINAPI wglGetCurrentContext(VOID);
3955
+ WINGDIAPI HDC WINAPI wglGetCurrentDC(VOID);
3956
+ WINGDIAPI PROC WINAPI wglGetProcAddress(LPCSTR);
3957
+ WINGDIAPI WINBOOL WINAPI wglMakeCurrent(HDC,HGLRC);
3958
+ WINGDIAPI WINBOOL WINAPI wglShareLists(HGLRC,HGLRC);
3959
+ WINGDIAPI WINBOOL WINAPI wglUseFontBitmapsA(HDC,DWORD,DWORD,DWORD);
3960
+ WINGDIAPI WINBOOL WINAPI wglUseFontBitmapsW(HDC,DWORD,DWORD,DWORD);
3961
+ WINGDIAPI WINBOOL WINAPI SwapBuffers(HDC);
3962
+
3963
+ typedef struct _POINTFLOAT {
3964
+ FLOAT x;
3965
+ FLOAT y;
3966
+ } POINTFLOAT,*PPOINTFLOAT;
3967
+
3968
+ typedef struct _GLYPHMETRICSFLOAT {
3969
+ FLOAT gmfBlackBoxX;
3970
+ FLOAT gmfBlackBoxY;
3971
+ POINTFLOAT gmfptGlyphOrigin;
3972
+ FLOAT gmfCellIncX;
3973
+ FLOAT gmfCellIncY;
3974
+ } GLYPHMETRICSFLOAT,*PGLYPHMETRICSFLOAT,*LPGLYPHMETRICSFLOAT;
3975
+
3976
+ #define WGL_FONT_LINES 0
3977
+ #define WGL_FONT_POLYGONS 1
3978
+
3979
+ #ifdef UNICODE
3980
+ #define wglUseFontOutlines wglUseFontOutlinesW
3981
+ #else
3982
+ #define wglUseFontOutlines wglUseFontOutlinesA
3983
+ #endif
3984
+
3985
+ WINGDIAPI WINBOOL WINAPI wglUseFontOutlinesA(HDC,DWORD,DWORD,DWORD,FLOAT,FLOAT,int,LPGLYPHMETRICSFLOAT);
3986
+ WINGDIAPI WINBOOL WINAPI wglUseFontOutlinesW(HDC,DWORD,DWORD,DWORD,FLOAT,FLOAT,int,LPGLYPHMETRICSFLOAT);
3987
+
3988
+ typedef struct tagLAYERPLANEDESCRIPTOR {
3989
+ WORD nSize;
3990
+ WORD nVersion;
3991
+ DWORD dwFlags;
3992
+ BYTE iPixelType;
3993
+ BYTE cColorBits;
3994
+ BYTE cRedBits;
3995
+ BYTE cRedShift;
3996
+ BYTE cGreenBits;
3997
+ BYTE cGreenShift;
3998
+ BYTE cBlueBits;
3999
+ BYTE cBlueShift;
4000
+ BYTE cAlphaBits;
4001
+ BYTE cAlphaShift;
4002
+ BYTE cAccumBits;
4003
+ BYTE cAccumRedBits;
4004
+ BYTE cAccumGreenBits;
4005
+ BYTE cAccumBlueBits;
4006
+ BYTE cAccumAlphaBits;
4007
+ BYTE cDepthBits;
4008
+ BYTE cStencilBits;
4009
+ BYTE cAuxBuffers;
4010
+ BYTE iLayerPlane;
4011
+ BYTE bReserved;
4012
+ COLORREF crTransparent;
4013
+ } LAYERPLANEDESCRIPTOR,*PLAYERPLANEDESCRIPTOR,*LPLAYERPLANEDESCRIPTOR;
4014
+
4015
+ #define LPD_DOUBLEBUFFER 0x00000001
4016
+ #define LPD_STEREO 0x00000002
4017
+ #define LPD_SUPPORT_GDI 0x00000010
4018
+ #define LPD_SUPPORT_OPENGL 0x00000020
4019
+ #define LPD_SHARE_DEPTH 0x00000040
4020
+ #define LPD_SHARE_STENCIL 0x00000080
4021
+ #define LPD_SHARE_ACCUM 0x00000100
4022
+ #define LPD_SWAP_EXCHANGE 0x00000200
4023
+ #define LPD_SWAP_COPY 0x00000400
4024
+ #define LPD_TRANSPARENT 0x00001000
4025
+
4026
+ #define LPD_TYPE_RGBA 0
4027
+ #define LPD_TYPE_COLORINDEX 1
4028
+
4029
+ #define WGL_SWAP_MAIN_PLANE 0x00000001
4030
+ #define WGL_SWAP_OVERLAY1 0x00000002
4031
+ #define WGL_SWAP_OVERLAY2 0x00000004
4032
+ #define WGL_SWAP_OVERLAY3 0x00000008
4033
+ #define WGL_SWAP_OVERLAY4 0x00000010
4034
+ #define WGL_SWAP_OVERLAY5 0x00000020
4035
+ #define WGL_SWAP_OVERLAY6 0x00000040
4036
+ #define WGL_SWAP_OVERLAY7 0x00000080
4037
+ #define WGL_SWAP_OVERLAY8 0x00000100
4038
+ #define WGL_SWAP_OVERLAY9 0x00000200
4039
+ #define WGL_SWAP_OVERLAY10 0x00000400
4040
+ #define WGL_SWAP_OVERLAY11 0x00000800
4041
+ #define WGL_SWAP_OVERLAY12 0x00001000
4042
+ #define WGL_SWAP_OVERLAY13 0x00002000
4043
+ #define WGL_SWAP_OVERLAY14 0x00004000
4044
+ #define WGL_SWAP_OVERLAY15 0x00008000
4045
+ #define WGL_SWAP_UNDERLAY1 0x00010000
4046
+ #define WGL_SWAP_UNDERLAY2 0x00020000
4047
+ #define WGL_SWAP_UNDERLAY3 0x00040000
4048
+ #define WGL_SWAP_UNDERLAY4 0x00080000
4049
+ #define WGL_SWAP_UNDERLAY5 0x00100000
4050
+ #define WGL_SWAP_UNDERLAY6 0x00200000
4051
+ #define WGL_SWAP_UNDERLAY7 0x00400000
4052
+ #define WGL_SWAP_UNDERLAY8 0x00800000
4053
+ #define WGL_SWAP_UNDERLAY9 0x01000000
4054
+ #define WGL_SWAP_UNDERLAY10 0x02000000
4055
+ #define WGL_SWAP_UNDERLAY11 0x04000000
4056
+ #define WGL_SWAP_UNDERLAY12 0x08000000
4057
+ #define WGL_SWAP_UNDERLAY13 0x10000000
4058
+ #define WGL_SWAP_UNDERLAY14 0x20000000
4059
+ #define WGL_SWAP_UNDERLAY15 0x40000000
4060
+
4061
+ WINGDIAPI WINBOOL WINAPI wglDescribeLayerPlane(HDC,int,int,UINT,LPLAYERPLANEDESCRIPTOR);
4062
+ WINGDIAPI int WINAPI wglSetLayerPaletteEntries(HDC,int,int,int,CONST COLORREF *);
4063
+ WINGDIAPI int WINAPI wglGetLayerPaletteEntries(HDC,int,int,int,COLORREF *);
4064
+ WINGDIAPI WINBOOL WINAPI wglRealizeLayerPalette(HDC,int,WINBOOL);
4065
+ WINGDIAPI WINBOOL WINAPI wglSwapLayerBuffers(HDC,UINT);
4066
+
4067
+ typedef struct _WGLSWAP {
4068
+ HDC hdc;
4069
+ UINT uiFlags;
4070
+ } WGLSWAP,*PWGLSWAP,*LPWGLSWAP;
4071
+
4072
+ #define WGL_SWAPMULTIPLE_MAX 16
4073
+
4074
+ WINGDIAPI DWORD WINAPI wglSwapMultipleBuffers(UINT,CONST WGLSWAP *);
4075
+ #endif
4076
+
4077
+ #ifdef __cplusplus
4078
+ }
4079
+ #endif
4080
+ #endif