dwrite_1.idl 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824
  1. /*
  2. * Copyright 2013 Nikolay Sivov for CodeWeavers
  3. *
  4. * This library is free software; you can redistribute it and/or
  5. * modify it under the terms of the GNU Lesser General Public
  6. * License as published by the Free Software Foundation; either
  7. * version 2.1 of the License, or (at your option) any later version.
  8. *
  9. * This library is distributed in the hope that it will be useful,
  10. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  12. * Lesser General Public License for more details.
  13. *
  14. * You should have received a copy of the GNU Lesser General Public
  15. * License along with this library; if not, write to the Free Software
  16. * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
  17. */
  18. import "dwrite.idl";
  19. typedef enum DWRITE_PANOSE_FAMILY
  20. {
  21. DWRITE_PANOSE_FAMILY_ANY,
  22. DWRITE_PANOSE_FAMILY_NO_FIT,
  23. DWRITE_PANOSE_FAMILY_TEXT_DISPLAY,
  24. DWRITE_PANOSE_FAMILY_SCRIPT,
  25. DWRITE_PANOSE_FAMILY_DECORATIVE,
  26. DWRITE_PANOSE_FAMILY_SYMBOL,
  27. DWRITE_PANOSE_FAMILY_PICTORIAL = DWRITE_PANOSE_FAMILY_SYMBOL
  28. } DWRITE_PANOSE_FAMILY;
  29. typedef enum DWRITE_PANOSE_SERIF_STYLE
  30. {
  31. DWRITE_PANOSE_SERIF_STYLE_ANY,
  32. DWRITE_PANOSE_SERIF_STYLE_NO_FIT,
  33. DWRITE_PANOSE_SERIF_STYLE_COVE,
  34. DWRITE_PANOSE_SERIF_STYLE_OBTUSE_COVE,
  35. DWRITE_PANOSE_SERIF_STYLE_SQUARE_COVE,
  36. DWRITE_PANOSE_SERIF_STYLE_OBTUSE_SQUARE_COVE,
  37. DWRITE_PANOSE_SERIF_STYLE_SQUARE,
  38. DWRITE_PANOSE_SERIF_STYLE_THIN,
  39. DWRITE_PANOSE_SERIF_STYLE_OVAL,
  40. DWRITE_PANOSE_SERIF_STYLE_EXAGGERATED,
  41. DWRITE_PANOSE_SERIF_STYLE_TRIANGLE,
  42. DWRITE_PANOSE_SERIF_STYLE_NORMAL_SANS,
  43. DWRITE_PANOSE_SERIF_STYLE_OBTUSE_SANS,
  44. DWRITE_PANOSE_SERIF_STYLE_PERPENDICULAR_SANS,
  45. DWRITE_PANOSE_SERIF_STYLE_FLARED,
  46. DWRITE_PANOSE_SERIF_STYLE_ROUNDED,
  47. DWRITE_PANOSE_SERIF_STYLE_SCRIPT,
  48. DWRITE_PANOSE_SERIF_STYLE_PERP_SANS = DWRITE_PANOSE_SERIF_STYLE_PERPENDICULAR_SANS,
  49. DWRITE_PANOSE_SERIF_STYLE_BONE = DWRITE_PANOSE_SERIF_STYLE_OVAL
  50. } DWRITE_PANOSE_SERIF_STYLE;
  51. typedef enum DWRITE_PANOSE_WEIGHT
  52. {
  53. DWRITE_PANOSE_WEIGHT_ANY,
  54. DWRITE_PANOSE_WEIGHT_NO_FIT,
  55. DWRITE_PANOSE_WEIGHT_VERY_LIGHT,
  56. DWRITE_PANOSE_WEIGHT_LIGHT,
  57. DWRITE_PANOSE_WEIGHT_THIN,
  58. DWRITE_PANOSE_WEIGHT_BOOK,
  59. DWRITE_PANOSE_WEIGHT_MEDIUM,
  60. DWRITE_PANOSE_WEIGHT_DEMI,
  61. DWRITE_PANOSE_WEIGHT_BOLD,
  62. DWRITE_PANOSE_WEIGHT_HEAVY,
  63. DWRITE_PANOSE_WEIGHT_BLACK,
  64. DWRITE_PANOSE_WEIGHT_EXTRA_BLACK,
  65. DWRITE_PANOSE_WEIGHT_NORD = DWRITE_PANOSE_WEIGHT_EXTRA_BLACK
  66. } DWRITE_PANOSE_WEIGHT;
  67. typedef enum DWRITE_PANOSE_PROPORTION
  68. {
  69. DWRITE_PANOSE_PROPORTION_ANY,
  70. DWRITE_PANOSE_PROPORTION_NO_FIT,
  71. DWRITE_PANOSE_PROPORTION_OLD_STYLE,
  72. DWRITE_PANOSE_PROPORTION_MODERN,
  73. DWRITE_PANOSE_PROPORTION_EVEN_WIDTH,
  74. DWRITE_PANOSE_PROPORTION_EXPANDED,
  75. DWRITE_PANOSE_PROPORTION_CONDENSED,
  76. DWRITE_PANOSE_PROPORTION_VERY_EXPANDED,
  77. DWRITE_PANOSE_PROPORTION_VERY_CONDENSED,
  78. DWRITE_PANOSE_PROPORTION_MONOSPACED
  79. } DWRITE_PANOSE_PROPORTION;
  80. typedef enum DWRITE_PANOSE_CONTRAST
  81. {
  82. DWRITE_PANOSE_CONTRAST_ANY,
  83. DWRITE_PANOSE_CONTRAST_NO_FIT,
  84. DWRITE_PANOSE_CONTRAST_NONE,
  85. DWRITE_PANOSE_CONTRAST_VERY_LOW,
  86. DWRITE_PANOSE_CONTRAST_LOW,
  87. DWRITE_PANOSE_CONTRAST_MEDIUM_LOW,
  88. DWRITE_PANOSE_CONTRAST_MEDIUM,
  89. DWRITE_PANOSE_CONTRAST_MEDIUM_HIGH,
  90. DWRITE_PANOSE_CONTRAST_HIGH,
  91. DWRITE_PANOSE_CONTRAST_VERY_HIGH,
  92. DWRITE_PANOSE_CONTRAST_HORIZONTAL_LOW,
  93. DWRITE_PANOSE_CONTRAST_HORIZONTAL_MEDIUM,
  94. DWRITE_PANOSE_CONTRAST_HORIZONTAL_HIGH,
  95. DWRITE_PANOSE_CONTRAST_BROKEN
  96. } DWRITE_PANOSE_CONTRAST;
  97. typedef enum DWRITE_PANOSE_STROKE_VARIATION
  98. {
  99. DWRITE_PANOSE_STROKE_VARIATION_ANY,
  100. DWRITE_PANOSE_STROKE_VARIATION_NO_FIT,
  101. DWRITE_PANOSE_STROKE_VARIATION_NO_VARIATION,
  102. DWRITE_PANOSE_STROKE_VARIATION_GRADUAL_DIAGONAL,
  103. DWRITE_PANOSE_STROKE_VARIATION_GRADUAL_TRANSITIONAL,
  104. DWRITE_PANOSE_STROKE_VARIATION_GRADUAL_VERTICAL,
  105. DWRITE_PANOSE_STROKE_VARIATION_GRADUAL_HORIZONTAL,
  106. DWRITE_PANOSE_STROKE_VARIATION_RAPID_VERTICAL,
  107. DWRITE_PANOSE_STROKE_VARIATION_RAPID_HORIZONTAL,
  108. DWRITE_PANOSE_STROKE_VARIATION_INSTANT_VERTICAL,
  109. DWRITE_PANOSE_STROKE_VARIATION_INSTANT_HORIZONTAL
  110. } DWRITE_PANOSE_STROKE_VARIATION;
  111. typedef enum DWRITE_PANOSE_ARM_STYLE
  112. {
  113. DWRITE_PANOSE_ARM_STYLE_ANY,
  114. DWRITE_PANOSE_ARM_STYLE_NO_FIT,
  115. DWRITE_PANOSE_ARM_STYLE_STRAIGHT_ARMS_HORIZONTAL,
  116. DWRITE_PANOSE_ARM_STYLE_STRAIGHT_ARMS_WEDGE,
  117. DWRITE_PANOSE_ARM_STYLE_STRAIGHT_ARMS_VERTICAL,
  118. DWRITE_PANOSE_ARM_STYLE_STRAIGHT_ARMS_SINGLE_SERIF,
  119. DWRITE_PANOSE_ARM_STYLE_STRAIGHT_ARMS_DOUBLE_SERIF,
  120. DWRITE_PANOSE_ARM_STYLE_NONSTRAIGHT_ARMS_HORIZONTAL,
  121. DWRITE_PANOSE_ARM_STYLE_NONSTRAIGHT_ARMS_WEDGE,
  122. DWRITE_PANOSE_ARM_STYLE_NONSTRAIGHT_ARMS_VERTICAL,
  123. DWRITE_PANOSE_ARM_STYLE_NONSTRAIGHT_ARMS_SINGLE_SERIF,
  124. DWRITE_PANOSE_ARM_STYLE_NONSTRAIGHT_ARMS_DOUBLE_SERIF,
  125. DWRITE_PANOSE_ARM_STYLE_STRAIGHT_ARMS_HORZ = DWRITE_PANOSE_ARM_STYLE_STRAIGHT_ARMS_HORIZONTAL,
  126. DWRITE_PANOSE_ARM_STYLE_STRAIGHT_ARMS_VERT = DWRITE_PANOSE_ARM_STYLE_STRAIGHT_ARMS_VERTICAL,
  127. DWRITE_PANOSE_ARM_STYLE_BENT_ARMS_HORZ = DWRITE_PANOSE_ARM_STYLE_NONSTRAIGHT_ARMS_HORIZONTAL,
  128. DWRITE_PANOSE_ARM_STYLE_BENT_ARMS_WEDGE = DWRITE_PANOSE_ARM_STYLE_NONSTRAIGHT_ARMS_WEDGE,
  129. DWRITE_PANOSE_ARM_STYLE_BENT_ARMS_VERT = DWRITE_PANOSE_ARM_STYLE_NONSTRAIGHT_ARMS_VERTICAL,
  130. DWRITE_PANOSE_ARM_STYLE_BENT_ARMS_SINGLE_SERIF = DWRITE_PANOSE_ARM_STYLE_NONSTRAIGHT_ARMS_SINGLE_SERIF,
  131. DWRITE_PANOSE_ARM_STYLE_BENT_ARMS_DOUBLE_SERIF = DWRITE_PANOSE_ARM_STYLE_NONSTRAIGHT_ARMS_DOUBLE_SERIF
  132. } DWRITE_PANOSE_ARM_STYLE;
  133. typedef enum DWRITE_PANOSE_LETTERFORM
  134. {
  135. DWRITE_PANOSE_LETTERFORM_ANY,
  136. DWRITE_PANOSE_LETTERFORM_NO_FIT,
  137. DWRITE_PANOSE_LETTERFORM_NORMAL_CONTACT,
  138. DWRITE_PANOSE_LETTERFORM_NORMAL_WEIGHTED,
  139. DWRITE_PANOSE_LETTERFORM_NORMAL_BOXED,
  140. DWRITE_PANOSE_LETTERFORM_NORMAL_FLATTENED,
  141. DWRITE_PANOSE_LETTERFORM_NORMAL_ROUNDED,
  142. DWRITE_PANOSE_LETTERFORM_NORMAL_OFF_CENTER,
  143. DWRITE_PANOSE_LETTERFORM_NORMAL_SQUARE,
  144. DWRITE_PANOSE_LETTERFORM_OBLIQUE_CONTACT,
  145. DWRITE_PANOSE_LETTERFORM_OBLIQUE_WEIGHTED,
  146. DWRITE_PANOSE_LETTERFORM_OBLIQUE_BOXED,
  147. DWRITE_PANOSE_LETTERFORM_OBLIQUE_FLATTENED,
  148. DWRITE_PANOSE_LETTERFORM_OBLIQUE_ROUNDED,
  149. DWRITE_PANOSE_LETTERFORM_OBLIQUE_OFF_CENTER,
  150. DWRITE_PANOSE_LETTERFORM_OBLIQUE_SQUARE
  151. } DWRITE_PANOSE_LETTERFORM;
  152. typedef enum DWRITE_PANOSE_MIDLINE
  153. {
  154. DWRITE_PANOSE_MIDLINE_ANY,
  155. DWRITE_PANOSE_MIDLINE_NO_FIT,
  156. DWRITE_PANOSE_MIDLINE_STANDARD_TRIMMED,
  157. DWRITE_PANOSE_MIDLINE_STANDARD_POINTED,
  158. DWRITE_PANOSE_MIDLINE_STANDARD_SERIFED,
  159. DWRITE_PANOSE_MIDLINE_HIGH_TRIMMED,
  160. DWRITE_PANOSE_MIDLINE_HIGH_POINTED,
  161. DWRITE_PANOSE_MIDLINE_HIGH_SERIFED,
  162. DWRITE_PANOSE_MIDLINE_CONSTANT_TRIMMED,
  163. DWRITE_PANOSE_MIDLINE_CONSTANT_POINTED,
  164. DWRITE_PANOSE_MIDLINE_CONSTANT_SERIFED,
  165. DWRITE_PANOSE_MIDLINE_LOW_TRIMMED,
  166. DWRITE_PANOSE_MIDLINE_LOW_POINTED,
  167. DWRITE_PANOSE_MIDLINE_LOW_SERIFED
  168. } DWRITE_PANOSE_MIDLINE;
  169. typedef enum DWRITE_PANOSE_XHEIGHT
  170. {
  171. DWRITE_PANOSE_XHEIGHT_ANY,
  172. DWRITE_PANOSE_XHEIGHT_NO_FIT,
  173. DWRITE_PANOSE_XHEIGHT_CONSTANT_SMALL,
  174. DWRITE_PANOSE_XHEIGHT_CONSTANT_STANDARD,
  175. DWRITE_PANOSE_XHEIGHT_CONSTANT_LARGE,
  176. DWRITE_PANOSE_XHEIGHT_DUCKING_SMALL,
  177. DWRITE_PANOSE_XHEIGHT_DUCKING_STANDARD,
  178. DWRITE_PANOSE_XHEIGHT_DUCKING_LARGE,
  179. DWRITE_PANOSE_XHEIGHT_CONSTANT_STD = DWRITE_PANOSE_XHEIGHT_CONSTANT_STANDARD,
  180. DWRITE_PANOSE_XHEIGHT_DUCKING_STD = DWRITE_PANOSE_XHEIGHT_DUCKING_STANDARD
  181. } DWRITE_PANOSE_XHEIGHT;
  182. typedef enum DWRITE_PANOSE_TOOL_KIND
  183. {
  184. DWRITE_PANOSE_TOOL_KIND_ANY,
  185. DWRITE_PANOSE_TOOL_KIND_NO_FIT,
  186. DWRITE_PANOSE_TOOL_KIND_FLAT_NIB,
  187. DWRITE_PANOSE_TOOL_KIND_PRESSURE_POINT,
  188. DWRITE_PANOSE_TOOL_KIND_ENGRAVED,
  189. DWRITE_PANOSE_TOOL_KIND_BALL,
  190. DWRITE_PANOSE_TOOL_KIND_BRUSH,
  191. DWRITE_PANOSE_TOOL_KIND_ROUGH,
  192. DWRITE_PANOSE_TOOL_KIND_FELT_PEN_BRUSH_TIP,
  193. DWRITE_PANOSE_TOOL_KIND_WILD_BRUSH
  194. } DWRITE_PANOSE_TOOL_KIND;
  195. typedef enum DWRITE_PANOSE_SPACING
  196. {
  197. DWRITE_PANOSE_SPACING_ANY,
  198. DWRITE_PANOSE_SPACING_NO_FIT,
  199. DWRITE_PANOSE_SPACING_PROPORTIONAL_SPACED,
  200. DWRITE_PANOSE_SPACING_MONOSPACED
  201. } DWRITE_PANOSE_SPACING;
  202. typedef enum DWRITE_PANOSE_ASPECT_RATIO
  203. {
  204. DWRITE_PANOSE_ASPECT_RATIO_ANY,
  205. DWRITE_PANOSE_ASPECT_RATIO_NO_FIT,
  206. DWRITE_PANOSE_ASPECT_RATIO_VERY_CONDENSED,
  207. DWRITE_PANOSE_ASPECT_RATIO_CONDENSED,
  208. DWRITE_PANOSE_ASPECT_RATIO_NORMAL,
  209. DWRITE_PANOSE_ASPECT_RATIO_EXPANDED,
  210. DWRITE_PANOSE_ASPECT_RATIO_VERY_EXPANDED
  211. } DWRITE_PANOSE_ASPECT_RATIO;
  212. typedef enum DWRITE_PANOSE_SCRIPT_TOPOLOGY
  213. {
  214. DWRITE_PANOSE_SCRIPT_TOPOLOGY_ANY,
  215. DWRITE_PANOSE_SCRIPT_TOPOLOGY_NO_FIT,
  216. DWRITE_PANOSE_SCRIPT_TOPOLOGY_ROMAN_DISCONNECTED,
  217. DWRITE_PANOSE_SCRIPT_TOPOLOGY_ROMAN_TRAILING,
  218. DWRITE_PANOSE_SCRIPT_TOPOLOGY_ROMAN_CONNECTED,
  219. DWRITE_PANOSE_SCRIPT_TOPOLOGY_CURSIVE_DISCONNECTED,
  220. DWRITE_PANOSE_SCRIPT_TOPOLOGY_CURSIVE_TRAILING,
  221. DWRITE_PANOSE_SCRIPT_TOPOLOGY_CURSIVE_CONNECTED,
  222. DWRITE_PANOSE_SCRIPT_TOPOLOGY_BLACKLETTER_DISCONNECTED,
  223. DWRITE_PANOSE_SCRIPT_TOPOLOGY_BLACKLETTER_TRAILING,
  224. DWRITE_PANOSE_SCRIPT_TOPOLOGY_BLACKLETTER_CONNECTED
  225. } DWRITE_PANOSE_SCRIPT_TOPOLOGY;
  226. typedef enum DWRITE_PANOSE_SCRIPT_FORM
  227. {
  228. DWRITE_PANOSE_SCRIPT_FORM_ANY,
  229. DWRITE_PANOSE_SCRIPT_FORM_NO_FIT,
  230. DWRITE_PANOSE_SCRIPT_FORM_UPRIGHT_NO_WRAPPING,
  231. DWRITE_PANOSE_SCRIPT_FORM_UPRIGHT_SOME_WRAPPING,
  232. DWRITE_PANOSE_SCRIPT_FORM_UPRIGHT_MORE_WRAPPING,
  233. DWRITE_PANOSE_SCRIPT_FORM_UPRIGHT_EXTREME_WRAPPING,
  234. DWRITE_PANOSE_SCRIPT_FORM_OBLIQUE_NO_WRAPPING,
  235. DWRITE_PANOSE_SCRIPT_FORM_OBLIQUE_SOME_WRAPPING,
  236. DWRITE_PANOSE_SCRIPT_FORM_OBLIQUE_MORE_WRAPPING,
  237. DWRITE_PANOSE_SCRIPT_FORM_OBLIQUE_EXTREME_WRAPPING,
  238. DWRITE_PANOSE_SCRIPT_FORM_EXAGGERATED_NO_WRAPPING,
  239. DWRITE_PANOSE_SCRIPT_FORM_EXAGGERATED_SOME_WRAPPING,
  240. DWRITE_PANOSE_SCRIPT_FORM_EXAGGERATED_MORE_WRAPPING,
  241. DWRITE_PANOSE_SCRIPT_FORM_EXAGGERATED_EXTREME_WRAPPING
  242. } DWRITE_PANOSE_SCRIPT_FORM;
  243. typedef enum DWRITE_PANOSE_FINIALS
  244. {
  245. DWRITE_PANOSE_FINIALS_ANY,
  246. DWRITE_PANOSE_FINIALS_NO_FIT,
  247. DWRITE_PANOSE_FINIALS_NONE_NO_LOOPS,
  248. DWRITE_PANOSE_FINIALS_NONE_CLOSED_LOOPS,
  249. DWRITE_PANOSE_FINIALS_NONE_OPEN_LOOPS,
  250. DWRITE_PANOSE_FINIALS_SHARP_NO_LOOPS,
  251. DWRITE_PANOSE_FINIALS_SHARP_CLOSED_LOOPS,
  252. DWRITE_PANOSE_FINIALS_SHARP_OPEN_LOOPS,
  253. DWRITE_PANOSE_FINIALS_TAPERED_NO_LOOPS,
  254. DWRITE_PANOSE_FINIALS_TAPERED_CLOSED_LOOPS,
  255. DWRITE_PANOSE_FINIALS_TAPERED_OPEN_LOOPS,
  256. DWRITE_PANOSE_FINIALS_ROUND_NO_LOOPS,
  257. DWRITE_PANOSE_FINIALS_ROUND_CLOSED_LOOPS,
  258. DWRITE_PANOSE_FINIALS_ROUND_OPEN_LOOPS
  259. } DWRITE_PANOSE_FINIALS;
  260. typedef enum DWRITE_PANOSE_XASCENT
  261. {
  262. DWRITE_PANOSE_XASCENT_ANY,
  263. DWRITE_PANOSE_XASCENT_NO_FIT,
  264. DWRITE_PANOSE_XASCENT_VERY_LOW,
  265. DWRITE_PANOSE_XASCENT_LOW,
  266. DWRITE_PANOSE_XASCENT_MEDIUM,
  267. DWRITE_PANOSE_XASCENT_HIGH,
  268. DWRITE_PANOSE_XASCENT_VERY_HIGH
  269. } DWRITE_PANOSE_XASCENT;
  270. typedef enum DWRITE_PANOSE_DECORATIVE_CLASS
  271. {
  272. DWRITE_PANOSE_DECORATIVE_CLASS_ANY,
  273. DWRITE_PANOSE_DECORATIVE_CLASS_NO_FIT,
  274. DWRITE_PANOSE_DECORATIVE_CLASS_DERIVATIVE,
  275. DWRITE_PANOSE_DECORATIVE_CLASS_NONSTANDARD_TOPOLOGY,
  276. DWRITE_PANOSE_DECORATIVE_CLASS_NONSTANDARD_ELEMENTS,
  277. DWRITE_PANOSE_DECORATIVE_CLASS_NONSTANDARD_ASPECT,
  278. DWRITE_PANOSE_DECORATIVE_CLASS_INITIALS,
  279. DWRITE_PANOSE_DECORATIVE_CLASS_CARTOON,
  280. DWRITE_PANOSE_DECORATIVE_CLASS_PICTURE_STEMS,
  281. DWRITE_PANOSE_DECORATIVE_CLASS_ORNAMENTED,
  282. DWRITE_PANOSE_DECORATIVE_CLASS_TEXT_AND_BACKGROUND,
  283. DWRITE_PANOSE_DECORATIVE_CLASS_COLLAGE,
  284. DWRITE_PANOSE_DECORATIVE_CLASS_MONTAGE
  285. } DWRITE_PANOSE_DECORATIVE_CLASS;
  286. typedef enum DWRITE_PANOSE_ASPECT
  287. {
  288. DWRITE_PANOSE_ASPECT_ANY,
  289. DWRITE_PANOSE_ASPECT_NO_FIT,
  290. DWRITE_PANOSE_ASPECT_SUPER_CONDENSED,
  291. DWRITE_PANOSE_ASPECT_VERY_CONDENSED,
  292. DWRITE_PANOSE_ASPECT_CONDENSED,
  293. DWRITE_PANOSE_ASPECT_NORMAL,
  294. DWRITE_PANOSE_ASPECT_EXTENDED,
  295. DWRITE_PANOSE_ASPECT_VERY_EXTENDED,
  296. DWRITE_PANOSE_ASPECT_SUPER_EXTENDED,
  297. DWRITE_PANOSE_ASPECT_MONOSPACED
  298. } DWRITE_PANOSE_ASPECT;
  299. typedef enum DWRITE_PANOSE_FILL
  300. {
  301. DWRITE_PANOSE_FILL_ANY,
  302. DWRITE_PANOSE_FILL_NO_FIT,
  303. DWRITE_PANOSE_FILL_STANDARD_SOLID_FILL,
  304. DWRITE_PANOSE_FILL_NO_FILL,
  305. DWRITE_PANOSE_FILL_PATTERNED_FILL,
  306. DWRITE_PANOSE_FILL_COMPLEX_FILL,
  307. DWRITE_PANOSE_FILL_SHAPED_FILL,
  308. DWRITE_PANOSE_FILL_DRAWN_DISTRESSED
  309. } DWRITE_PANOSE_FILL;
  310. typedef enum DWRITE_PANOSE_LINING
  311. {
  312. DWRITE_PANOSE_LINING_ANY,
  313. DWRITE_PANOSE_LINING_NO_FIT,
  314. DWRITE_PANOSE_LINING_NONE,
  315. DWRITE_PANOSE_LINING_INLINE,
  316. DWRITE_PANOSE_LINING_OUTLINE,
  317. DWRITE_PANOSE_LINING_ENGRAVED,
  318. DWRITE_PANOSE_LINING_SHADOW,
  319. DWRITE_PANOSE_LINING_RELIEF,
  320. DWRITE_PANOSE_LINING_BACKDROP
  321. } DWRITE_PANOSE_LINING;
  322. typedef enum DWRITE_PANOSE_DECORATIVE_TOPOLOGY
  323. {
  324. DWRITE_PANOSE_DECORATIVE_TOPOLOGY_ANY,
  325. DWRITE_PANOSE_DECORATIVE_TOPOLOGY_NO_FIT,
  326. DWRITE_PANOSE_DECORATIVE_TOPOLOGY_STANDARD,
  327. DWRITE_PANOSE_DECORATIVE_TOPOLOGY_SQUARE,
  328. DWRITE_PANOSE_DECORATIVE_TOPOLOGY_MULTIPLE_SEGMENT,
  329. DWRITE_PANOSE_DECORATIVE_TOPOLOGY_ART_DECO,
  330. DWRITE_PANOSE_DECORATIVE_TOPOLOGY_UNEVEN_WEIGHTING,
  331. DWRITE_PANOSE_DECORATIVE_TOPOLOGY_DIVERSE_ARMS,
  332. DWRITE_PANOSE_DECORATIVE_TOPOLOGY_DIVERSE_FORMS,
  333. DWRITE_PANOSE_DECORATIVE_TOPOLOGY_LOMBARDIC_FORMS,
  334. DWRITE_PANOSE_DECORATIVE_TOPOLOGY_UPPER_CASE_IN_LOWER_CASE,
  335. DWRITE_PANOSE_DECORATIVE_TOPOLOGY_IMPLIED_TOPOLOGY,
  336. DWRITE_PANOSE_DECORATIVE_TOPOLOGY_HORSESHOE_E_AND_A,
  337. DWRITE_PANOSE_DECORATIVE_TOPOLOGY_CURSIVE,
  338. DWRITE_PANOSE_DECORATIVE_TOPOLOGY_BLACKLETTER,
  339. DWRITE_PANOSE_DECORATIVE_TOPOLOGY_SWASH_VARIANCE
  340. } DWRITE_PANOSE_DECORATIVE_TOPOLOGY;
  341. typedef enum DWRITE_PANOSE_CHARACTER_RANGES
  342. {
  343. DWRITE_PANOSE_CHARACTER_RANGES_ANY,
  344. DWRITE_PANOSE_CHARACTER_RANGES_NO_FIT,
  345. DWRITE_PANOSE_CHARACTER_RANGES_EXTENDED_COLLECTION,
  346. DWRITE_PANOSE_CHARACTER_RANGES_LITERALS,
  347. DWRITE_PANOSE_CHARACTER_RANGES_NO_LOWER_CASE,
  348. DWRITE_PANOSE_CHARACTER_RANGES_SMALL_CAPS
  349. } DWRITE_PANOSE_CHARACTER_RANGES;
  350. typedef enum DWRITE_PANOSE_SYMBOL_KIND
  351. {
  352. DWRITE_PANOSE_SYMBOL_KIND_ANY,
  353. DWRITE_PANOSE_SYMBOL_KIND_NO_FIT,
  354. DWRITE_PANOSE_SYMBOL_KIND_MONTAGES,
  355. DWRITE_PANOSE_SYMBOL_KIND_PICTURES,
  356. DWRITE_PANOSE_SYMBOL_KIND_SHAPES,
  357. DWRITE_PANOSE_SYMBOL_KIND_SCIENTIFIC,
  358. DWRITE_PANOSE_SYMBOL_KIND_MUSIC,
  359. DWRITE_PANOSE_SYMBOL_KIND_EXPERT,
  360. DWRITE_PANOSE_SYMBOL_KIND_PATTERNS,
  361. DWRITE_PANOSE_SYMBOL_KIND_BOARDERS,
  362. DWRITE_PANOSE_SYMBOL_KIND_ICONS,
  363. DWRITE_PANOSE_SYMBOL_KIND_LOGOS,
  364. DWRITE_PANOSE_SYMBOL_KIND_INDUSTRY_SPECIFIC
  365. } DWRITE_PANOSE_SYMBOL_KIND;
  366. typedef enum DWRITE_PANOSE_SYMBOL_ASPECT_RATIO
  367. {
  368. DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_ANY,
  369. DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_NO_FIT,
  370. DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_NO_WIDTH,
  371. DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_EXCEPTIONALLY_WIDE,
  372. DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_SUPER_WIDE,
  373. DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_VERY_WIDE,
  374. DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_WIDE,
  375. DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_NORMAL,
  376. DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_NARROW,
  377. DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_VERY_NARROW
  378. } DWRITE_PANOSE_SYMBOL_ASPECT_RATIO;
  379. typedef enum DWRITE_OUTLINE_THRESHOLD
  380. {
  381. DWRITE_OUTLINE_THRESHOLD_ANTIALIASED,
  382. DWRITE_OUTLINE_THRESHOLD_ALIASED
  383. } DWRITE_OUTLINE_THRESHOLD;
  384. typedef enum DWRITE_BASELINE
  385. {
  386. DWRITE_BASELINE_DEFAULT,
  387. DWRITE_BASELINE_ROMAN,
  388. DWRITE_BASELINE_CENTRAL,
  389. DWRITE_BASELINE_MATH,
  390. DWRITE_BASELINE_HANGING,
  391. DWRITE_BASELINE_IDEOGRAPHIC_BOTTOM,
  392. DWRITE_BASELINE_IDEOGRAPHIC_TOP,
  393. DWRITE_BASELINE_MINIMUM,
  394. DWRITE_BASELINE_MAXIMUM
  395. } DWRITE_BASELINE;
  396. typedef enum DWRITE_VERTICAL_GLYPH_ORIENTATION
  397. {
  398. DWRITE_VERTICAL_GLYPH_ORIENTATION_DEFAULT,
  399. DWRITE_VERTICAL_GLYPH_ORIENTATION_STACKED
  400. } DWRITE_VERTICAL_GLYPH_ORIENTATION;
  401. typedef enum DWRITE_GLYPH_ORIENTATION_ANGLE
  402. {
  403. DWRITE_GLYPH_ORIENTATION_ANGLE_0_DEGREES,
  404. DWRITE_GLYPH_ORIENTATION_ANGLE_90_DEGREES,
  405. DWRITE_GLYPH_ORIENTATION_ANGLE_180_DEGREES,
  406. DWRITE_GLYPH_ORIENTATION_ANGLE_270_DEGREES
  407. } DWRITE_GLYPH_ORIENTATION_ANGLE;
  408. typedef struct DWRITE_FONT_METRICS1
  409. {
  410. UINT16 designUnitsPerEm;
  411. UINT16 ascent;
  412. UINT16 descent;
  413. INT16 lineGap;
  414. UINT16 capHeight;
  415. UINT16 xHeight;
  416. INT16 underlinePosition;
  417. UINT16 underlineThickness;
  418. INT16 strikethroughPosition;
  419. UINT16 strikethroughThickness;
  420. INT16 glyphBoxLeft;
  421. INT16 glyphBoxTop;
  422. INT16 glyphBoxRight;
  423. INT16 glyphBoxBottom;
  424. INT16 subscriptPositionX;
  425. INT16 subscriptPositionY;
  426. INT16 subscriptSizeX;
  427. INT16 subscriptSizeY;
  428. INT16 superscriptPositionX;
  429. INT16 superscriptPositionY;
  430. INT16 superscriptSizeX;
  431. INT16 superscriptSizeY;
  432. BOOL hasTypographicMetrics;
  433. } DWRITE_FONT_METRICS1;
  434. typedef struct DWRITE_CARET_METRICS
  435. {
  436. INT16 slopeRise;
  437. INT16 slopeRun;
  438. INT16 offset;
  439. } DWRITE_CARET_METRICS;
  440. typedef union DWRITE_PANOSE
  441. {
  442. UINT8 values[10];
  443. UINT8 familyKind;
  444. struct
  445. {
  446. UINT8 familyKind;
  447. UINT8 serifStyle;
  448. UINT8 weight;
  449. UINT8 proportion;
  450. UINT8 contrast;
  451. UINT8 strokeVariation;
  452. UINT8 armStyle;
  453. UINT8 letterform;
  454. UINT8 midline;
  455. UINT8 xHeight;
  456. } text;
  457. struct
  458. {
  459. UINT8 familyKind;
  460. UINT8 toolKind;
  461. UINT8 weight;
  462. UINT8 spacing;
  463. UINT8 aspectRatio;
  464. UINT8 contrast;
  465. UINT8 scriptTopology;
  466. UINT8 scriptForm;
  467. UINT8 finials;
  468. UINT8 xAscent;
  469. } script;
  470. struct
  471. {
  472. UINT8 familyKind;
  473. UINT8 decorativeClass;
  474. UINT8 weight;
  475. UINT8 aspect;
  476. UINT8 contrast;
  477. UINT8 serifVariant;
  478. UINT8 fill;
  479. UINT8 lining;
  480. UINT8 decorativeTopology;
  481. UINT8 characterRange;
  482. } decorative;
  483. struct
  484. {
  485. UINT8 familyKind;
  486. UINT8 symbolKind;
  487. UINT8 weight;
  488. UINT8 spacing;
  489. UINT8 aspectRatioAndContrast;
  490. UINT8 aspectRatio94;
  491. UINT8 aspectRatio119;
  492. UINT8 aspectRatio157;
  493. UINT8 aspectRatio163;
  494. UINT8 aspectRatio211;
  495. } symbol;
  496. } DWRITE_PANOSE;
  497. typedef struct DWRITE_UNICODE_RANGE
  498. {
  499. UINT32 first;
  500. UINT32 last;
  501. } DWRITE_UNICODE_RANGE;
  502. typedef struct DWRITE_SCRIPT_PROPERTIES
  503. {
  504. UINT32 isoScriptCode;
  505. UINT32 isoScriptNumber;
  506. UINT32 clusterLookahead;
  507. UINT32 justificationCharacter;
  508. UINT32 restrictCaretToClusters : 1;
  509. UINT32 usesWordDividers : 1;
  510. UINT32 isDiscreteWriting : 1;
  511. UINT32 isBlockWriting : 1;
  512. UINT32 isDistributedWithinCluster : 1;
  513. UINT32 isConnectedWriting : 1;
  514. UINT32 isCursiveWriting : 1;
  515. UINT32 reserved : 25;
  516. } DWRITE_SCRIPT_PROPERTIES;
  517. typedef struct DWRITE_JUSTIFICATION_OPPORTUNITY
  518. {
  519. FLOAT expansionMinimum;
  520. FLOAT expansionMaximum;
  521. FLOAT compressionMaximum;
  522. UINT32 expansionPriority : 8;
  523. UINT32 compressionPriority : 8;
  524. UINT32 allowResidualExpansion : 1;
  525. UINT32 allowResidualCompression : 1;
  526. UINT32 applyToLeadingEdge : 1;
  527. UINT32 applyToTrailingEdge : 1;
  528. UINT32 reserved : 12;
  529. } DWRITE_JUSTIFICATION_OPPORTUNITY;
  530. interface IDWriteTextAnalysisSource1;
  531. interface IDWriteTextAnalysisSink1;
  532. interface IDWriteRenderingParams1;
  533. [
  534. local,
  535. object,
  536. uuid(30572f99-dac6-41db-a16e-0486307e606a)
  537. ]
  538. interface IDWriteFactory1 : IDWriteFactory
  539. {
  540. HRESULT GetEudcFontCollection(IDWriteFontCollection **collection,
  541. [defaultvalue(FALSE)] BOOL check_for_updates);
  542. HRESULT CreateCustomRenderingParams(FLOAT gamma,
  543. FLOAT enhcontrast,
  544. FLOAT enhcontrast_grayscale,
  545. FLOAT cleartype_level,
  546. DWRITE_PIXEL_GEOMETRY geometry,
  547. DWRITE_RENDERING_MODE mode,
  548. IDWriteRenderingParams1** params);
  549. }
  550. [
  551. local,
  552. object,
  553. uuid(a71efdb4-9fdb-4838-ad90-cfc3be8c3daf)
  554. ]
  555. interface IDWriteFontFace1 : IDWriteFontFace
  556. {
  557. void GetMetrics(DWRITE_FONT_METRICS1 *metrics);
  558. HRESULT GetGdiCompatibleMetrics(FLOAT em_size,
  559. FLOAT pixels_per_dip,
  560. const DWRITE_MATRIX *transform,
  561. DWRITE_FONT_METRICS1 *metrics);
  562. void GetCaretMetrics(DWRITE_CARET_METRICS *metrics);
  563. HRESULT GetUnicodeRanges(UINT32 max_count,
  564. DWRITE_UNICODE_RANGE *ranges,
  565. UINT32 *count);
  566. BOOL IsMonospacedFont();
  567. HRESULT GetDesignGlyphAdvances(UINT32 glyph_count,
  568. UINT16 const *indices,
  569. INT32 *advances,
  570. [defaultvalue(FALSE)] BOOL is_sideways);
  571. HRESULT GetGdiCompatibleGlyphAdvances(FLOAT em_size,
  572. FLOAT pixels_per_dip,
  573. const DWRITE_MATRIX *transform,
  574. BOOL use_gdi_natural,
  575. BOOL is_sideways,
  576. UINT32 glyph_count,
  577. const UINT16 *indices,
  578. INT32 *advances);
  579. HRESULT GetKerningPairAdjustments(UINT32 glyph_count,
  580. const UINT16 *indices,
  581. INT32 *adjustments);
  582. BOOL HasKerningPairs();
  583. HRESULT GetRecommendedRenderingMode(FLOAT font_emsize,
  584. FLOAT dpiX,
  585. FLOAT dpiY,
  586. const DWRITE_MATRIX *transform,
  587. BOOL is_sideways,
  588. DWRITE_OUTLINE_THRESHOLD threshold,
  589. DWRITE_MEASURING_MODE measuring_mode,
  590. DWRITE_RENDERING_MODE *rendering_mode);
  591. HRESULT GetVerticalGlyphVariants(UINT32 glyph_count,
  592. const UINT16 *nominal_indices,
  593. UINT16 *vertical_indices);
  594. BOOL HasVerticalGlyphVariants();
  595. }
  596. [
  597. local,
  598. object,
  599. uuid(acd16696-8c14-4f5d-877e-fe3fc1d32738)
  600. ]
  601. interface IDWriteFont1 : IDWriteFont
  602. {
  603. void GetMetrics(DWRITE_FONT_METRICS1 *metrics);
  604. void GetPanose(DWRITE_PANOSE *panose);
  605. HRESULT GetUnicodeRanges(UINT32 max_count,
  606. DWRITE_UNICODE_RANGE *ranges,
  607. UINT32 *count);
  608. BOOL IsMonospacedFont();
  609. }
  610. [
  611. local,
  612. object,
  613. uuid(94413cf4-a6fc-4248-8b50-6674348fcad3)
  614. ]
  615. interface IDWriteRenderingParams1 : IDWriteRenderingParams
  616. {
  617. FLOAT GetGrayscaleEnhancedContrast();
  618. }
  619. [
  620. local,
  621. object,
  622. uuid(80dad800-e21f-4e83-96ce-bfcce500db7c)
  623. ]
  624. interface IDWriteTextAnalyzer1 : IDWriteTextAnalyzer
  625. {
  626. HRESULT ApplyCharacterSpacing(FLOAT leading_spacing,
  627. FLOAT trailing_spacing,
  628. FLOAT min_advance_width,
  629. UINT32 len,
  630. UINT32 glyph_count,
  631. UINT16 const *clustermap,
  632. FLOAT const *advances,
  633. DWRITE_GLYPH_OFFSET const *offsets,
  634. DWRITE_SHAPING_GLYPH_PROPERTIES const *props,
  635. FLOAT *modified_advances,
  636. DWRITE_GLYPH_OFFSET *modified_offsets);
  637. HRESULT GetBaseline(IDWriteFontFace *face,
  638. DWRITE_BASELINE baseline,
  639. BOOL vertical,
  640. BOOL is_simulation_allowed,
  641. DWRITE_SCRIPT_ANALYSIS sa,
  642. const WCHAR *localeName,
  643. INT32 *baseline_coord,
  644. BOOL *exists);
  645. HRESULT AnalyzeVerticalGlyphOrientation(
  646. IDWriteTextAnalysisSource1* source,
  647. UINT32 text_pos,
  648. UINT32 len,
  649. IDWriteTextAnalysisSink1 *sink);
  650. HRESULT GetGlyphOrientationTransform(
  651. DWRITE_GLYPH_ORIENTATION_ANGLE angle,
  652. BOOL is_sideways,
  653. DWRITE_MATRIX *transform);
  654. HRESULT GetScriptProperties(DWRITE_SCRIPT_ANALYSIS sa, DWRITE_SCRIPT_PROPERTIES *props);
  655. HRESULT GetTextComplexity(const WCHAR *text,
  656. UINT32 len,
  657. IDWriteFontFace *face,
  658. BOOL *is_simple,
  659. UINT32 *len_read,
  660. UINT16 *indices);
  661. HRESULT GetJustificationOpportunities(
  662. IDWriteFontFace *face,
  663. FLOAT font_em_size,
  664. DWRITE_SCRIPT_ANALYSIS sa,
  665. UINT32 length,
  666. UINT32 glyph_count,
  667. const WCHAR *text,
  668. const UINT16 *clustermap,
  669. const DWRITE_SHAPING_GLYPH_PROPERTIES *prop,
  670. DWRITE_JUSTIFICATION_OPPORTUNITY *jo);
  671. HRESULT JustifyGlyphAdvances(
  672. FLOAT width,
  673. UINT32 glyph_count,
  674. const DWRITE_JUSTIFICATION_OPPORTUNITY *jo,
  675. const FLOAT *advances,
  676. const DWRITE_GLYPH_OFFSET *offsets,
  677. FLOAT *justifiedadvances,
  678. DWRITE_GLYPH_OFFSET *justifiedoffsets);
  679. HRESULT GetJustifiedGlyphs(
  680. IDWriteFontFace *face,
  681. FLOAT font_em_size,
  682. DWRITE_SCRIPT_ANALYSIS sa,
  683. UINT32 length,
  684. UINT32 glyph_count,
  685. UINT32 max_glyphcount,
  686. const UINT16 *clustermap,
  687. const UINT16 *indices,
  688. const FLOAT *advances,
  689. const FLOAT *justifiedadvances,
  690. const DWRITE_GLYPH_OFFSET *justifiedoffsets,
  691. const DWRITE_SHAPING_GLYPH_PROPERTIES *prop,
  692. UINT32 *actual_count,
  693. UINT16 *modified_clustermap,
  694. UINT16 *modified_indices,
  695. FLOAT *modified_advances,
  696. DWRITE_GLYPH_OFFSET *modified_offsets);
  697. }
  698. [
  699. local,
  700. object,
  701. uuid(639cfad8-0fb4-4b21-a58a-067920120009)
  702. ]
  703. interface IDWriteTextAnalysisSource1 : IDWriteTextAnalysisSource
  704. {
  705. HRESULT GetVerticalGlyphOrientation(
  706. UINT32 pos,
  707. UINT32 *length,
  708. DWRITE_VERTICAL_GLYPH_ORIENTATION *orientation,
  709. UINT8 *bidi_level);
  710. }
  711. [
  712. local,
  713. object,
  714. uuid(b0d941a0-85e7-4d8b-9fd3-5ced9934482a)
  715. ]
  716. interface IDWriteTextAnalysisSink1 : IDWriteTextAnalysisSink
  717. {
  718. HRESULT SetGlyphOrientation(
  719. UINT32 pos,
  720. UINT32 length,
  721. DWRITE_GLYPH_ORIENTATION_ANGLE angle,
  722. UINT8 adjusted_bidilevel,
  723. BOOL is_sideways,
  724. BOOL is_rtl);
  725. }
  726. [
  727. local,
  728. object,
  729. uuid(9064d822-80a7-465c-a986-df65f78b8feb)
  730. ]
  731. interface IDWriteTextLayout1 : IDWriteTextLayout
  732. {
  733. HRESULT SetPairKerning(
  734. BOOL is_pairkerning_enabled,
  735. DWRITE_TEXT_RANGE range);
  736. HRESULT GetPairKerning(
  737. UINT32 position,
  738. BOOL *is_pairkerning_enabled,
  739. DWRITE_TEXT_RANGE *range);
  740. HRESULT SetCharacterSpacing(
  741. FLOAT leading_spacing,
  742. FLOAT trailing_spacing,
  743. FLOAT minimum_advance_width,
  744. DWRITE_TEXT_RANGE range);
  745. HRESULT GetCharacterSpacing(
  746. UINT32 position,
  747. FLOAT* leading_spacing,
  748. FLOAT* trailing_spacing,
  749. FLOAT* minimum_advance_width,
  750. [defaultvalue(NULL)] DWRITE_TEXT_RANGE *range);
  751. }
  752. typedef enum DWRITE_TEXT_ANTIALIAS_MODE
  753. {
  754. DWRITE_TEXT_ANTIALIAS_MODE_CLEARTYPE,
  755. DWRITE_TEXT_ANTIALIAS_MODE_GRAYSCALE
  756. } DWRITE_TEXT_ANTIALIAS_MODE;
  757. [
  758. local,
  759. object,
  760. uuid(791e8298-3ef3-4230-9880-c9bdecc42064)
  761. ]
  762. interface IDWriteBitmapRenderTarget1 : IDWriteBitmapRenderTarget
  763. {
  764. DWRITE_TEXT_ANTIALIAS_MODE GetTextAntialiasMode();
  765. HRESULT SetTextAntialiasMode(DWRITE_TEXT_ANTIALIAS_MODE mode);
  766. }