Leaked source code of windows server 2003

251 lines
20 KiB

  1. /* PICT opcodes */
  2. /* ________________________________________________________________________ */
  3. /* Name Opcode Description Data Size */
  4. /* (in bytes) */
  5. #define NOP 0x0000 /* nop 0 */
  6. #define Clip 0x0001 /* clip region size */
  7. #define BkPat 0x0002 /* background pattern 8 */
  8. #define TxFont 0x0003 /* text font (word) 2 */
  9. #define TxFace 0x0004 /* text face (byte) 1 */
  10. #define TxMode 0x0005 /* text mode (word) 2 */
  11. #define SpExtra 0x0006 /* space extra (fixed point) 4 */
  12. #define PnSize 0x0007 /* pen size (point) 4 */
  13. #define PnMode 0x0008 /* pen mode (word) 2 */
  14. #define PnPat 0x0009 /* pen pattern 8 */
  15. #define FillPat 0x000A /* fill pattern 8 */
  16. #define OvSize 0x000B /* oval size (point) 4 */
  17. #define Origin 0x000C /* dh, dv (word) 4 */
  18. #define TxSize 0x000D /* text size (word) 2 */
  19. #define FgColor 0x000E /* foreground color (long) 4 */
  20. #define BkColor 0x000F /* background color (long) 4 */
  21. #define TxRatio 0x0010 /* numer (point), denom (point) 8 */
  22. #define Version 0x0011 /* version (byte) 1 */
  23. #define BkPixPat 0x0012 /* color background pattern variable: */
  24. /* see Table 4 */
  25. #define PnPixPat 0x0013 /* color pen pattern variable: */
  26. /* see Table 4 */
  27. #define FillPixPat 0x0014 /* color fill pattern variable: */
  28. /* see Table 4 */
  29. #define PnLocHFrac 0x0015 /* fractional pen position 2 */
  30. #define ChExtra 0x0016 /* extra for each character 2 */
  31. /* reserved 0x0017 /* opcode 0 */
  32. /* reserved 0x0018 /* opcode 0 */
  33. /* reserved 0x0019 /* opcode 0 */
  34. #define RGBFgCol 0x001A /* RGB foreColor variable: */
  35. /* see Table 4 */
  36. #define RGBBkCol 0x001B /* RGB backColor variable: */
  37. /* see Table 4 */
  38. #define HiliteMode 0x001C /* hilite mode flag 0 */
  39. #define HiliteColor 0x001D /* RGB hilite color variable: */
  40. /* see Table 4 */
  41. #define DefHilite 0x001E /* Use default hilite color 0 */
  42. #define OpColor 0x001F /* RGB OpColor for variable: */
  43. /* arithmetic modes see Table 4 */
  44. #define Line 0x0020 /* pnLoc (point), newPt (point) 8 */
  45. #define LineFrom 0x0021 /* newPt (point) 4 */
  46. #define ShortLine 0x0022 /* pnLoc (point, dh, dv 6 */
  47. /* (-128..127) */
  48. #define ShortLineFrom 0x0023 /* dh, dv (-128..127) 2 */
  49. /* reserved 0x0024 /* opcode + 2 bytes data 2+ data */
  50. /* length + data length */
  51. /* reserved 0x0025 /* opcode + 2 bytes data 2+ data */
  52. /* length + data length */
  53. /* reserved 0x0026 /* opcode + 2 bytes data 2+ data */
  54. /* length + data length */
  55. /* reserved 0x0027 /* opcode + 2 bytes data 2+ data */
  56. /* length + data length */
  57. #define LongText 0x0028 /* txLoc (point), count 5 + text */
  58. /* (0..255), text */
  59. #define DHText 0x0029 /* dh (0..255), count 2 + text */
  60. /* (0..255), text */
  61. #define DVText 0x002A /* dv (0..255), count 2 + text */
  62. /* (0..255), text */
  63. #define DHDVText 0x002B /* dh, dv (0..255), count 3 + text */
  64. /* (0..255), text */
  65. #define FontName 0x002C /* opcode + length (word) + old 2 + data */
  66. /* font ID (word) + name length */
  67. /* length (byte) + font name */
  68. #define LineJustify 0x002D /* opcode + length (word) + 2 + data */
  69. /* interchar spacing (fixed) + length */
  70. /* total extra space (fixed) */
  71. /* reserved 0x002E /* opcode + 2 bytes data 2+ data */
  72. /* length + data length */
  73. /* reserved 0x002F /* opcode + 2 bytes data 2+ data */
  74. /* length + data length */
  75. #define frameRect 0x0030 /* rect 8 */
  76. #define paintRect 0x0031 /* rect 8 */
  77. #define eraseRect 0x0032 /* rect 8 */
  78. #define invertRect 0x0033 /* rect 8 */
  79. #define fillRect 0x0034 /* rect 8 */
  80. /* reserved 0x0035 /* opcode + 8 bytes data 8 */
  81. /* reserved 0x0036 /* opcode + 8 bytes data 8 */
  82. /* reserved 0x0037 /* opcode + 8 bytes data 8 */
  83. #define frameSameRect 0x0038 /* rect 0 */
  84. #define paintSameRect 0x0039 /* rect 0 */
  85. #define eraseSameRect 0x003A /* rect 0 */
  86. #define invertSameRect 0x003B /* rect 0 */
  87. #define fillSameRect 0x003C /* rectangle 0 */
  88. /* reserved 0x003D /* opcode 0 */
  89. /* reserved 0x003E /* opcode 0 */
  90. /* reserved 0x003F /* opcode 0 */
  91. #define frameRRect 0x0040 /* rect (see Note # 5 ) 8 */
  92. #define paintRRect 0x0041 /* rect (see Note # 5 ) 8 */
  93. #define eraseRRect 0x0042 /* rect (see Note # 5 ) 8 */
  94. #define invertRRect 0x0043 /* rect (see Note # 5 ) 8 */
  95. #define fillRRect 0x0044 /* rect (see Note # 5 ) 8 */
  96. /* reserved 0x0045 /* opcode + 8 bytes data 8 */
  97. /* reserved 0x0046 /* opcode + 8 bytes data 8 */
  98. /* reserved 0x0047 /* opcode + 8 bytes data 8 */
  99. #define frameSameRRect 0x0048 /* rect 0 */
  100. #define paintSameRRect 0x0049 /* rect 0 */
  101. #define eraseSameRRect 0x004A /* rect 0 */
  102. #define invertSameRRect 0x004B /* rect 0 */
  103. #define fillSameRRect 0x004C /* rect 0 */
  104. /* reserved 0x004D /* opcode 0 */
  105. /* reserved 0x004E /* opcode 0 */
  106. /* reserved 0x004F /* opcode 0 */
  107. #define frameOval 0x0050 /* rect 8 */
  108. #define paintOval 0x0051 /* rect 8 */
  109. #define eraseOval 0x0052 /* rect 8 */
  110. #define invertOval 0x0053 /* rect 8 */
  111. #define fillOval 0x0054 /* rect 8 */
  112. /* reserved 0x0055 /* opcode + 8 bytes data 8 */
  113. /* reserved 0x0056 /* opcode + 8 bytes data 8 */
  114. /* reserved 0x0057 /* opcode + 8 bytes data 8 */
  115. #define frameSameOval 0x0058 /* rect 0 */
  116. #define paintSameOval 0x0059 /* rect 0 */
  117. #define eraseSameOval 0x005A /* rect 0 */
  118. #define invertSameOval 0x005B /* rect 0 */
  119. #define fillSameOval 0x005C /* rect 0 */
  120. /* reserved 0x005D /* opcode 0 */
  121. /* reserved 0x005E /* opcode 0 */
  122. /* reserved 0x005F /* opcode 0 */
  123. #define frameArc 0x0060 /* rect, startAngle, arcAngle 12 */
  124. #define paintArc 0x0061 /* rect, startAngle, arcAngle 12 */
  125. #define eraseArc 0x0062 /* rect, startAngle, arcAngle 12 */
  126. #define invertArc 0x0063 /* rect, startAngle, arcAngle 12 */
  127. #define fillArc 0x0064 /* rect, startAngle, arcAngle 12 */
  128. /* reserved 0x0065 /* opcode + 12 bytes 12 */
  129. /* reserved 0x0066 /* opcode + 12 bytes 12 */
  130. /* reserved 0x0067 /* opcode + 12 bytes 12 */
  131. #define frameSameArc 0x0068 /* rect 4 */
  132. #define paintSameArc 0x0069 /* rect 4 */
  133. #define eraseSameArc 0x006A /* rect 4 */
  134. #define invertSameArc 0x006B /* rect 4 */
  135. #define fillSameArc 0x006C /* rect 4 */
  136. /* reserved 0x006D /* opcode + 4 bytes 4 */
  137. /* reserved 0x006E /* opcode + 4 bytes 4 */
  138. /* reserved 0x006F /* opcode + 4 bytes 4 */
  139. /* size */
  140. #define framePoly 0x0070 /* poly polygon */
  141. /* size */
  142. #define paintPoly 0x0071 /* poly polygon */
  143. /* size */
  144. #define erasePoly 0x0072 /* poly polygon */
  145. /* size */
  146. #define invertPoly 0x0073 /* poly polygon */
  147. /* size */
  148. #define fillPoly 0x0074 /* poly polygon */
  149. /* size */
  150. /* reserved 0x0075 /* opcode + poly */
  151. /* reserved 0x0076 /* opcode + poly */
  152. /* reserved 0x0077 /* opcode word + poly */
  153. #define frameSamePoly 0x0078 /* (not yet implemented: 0 */
  154. /* same as 70, etc) */
  155. #define paintSamePoly 0x0079 /* (not yet implemented) 0 */
  156. #define eraseSamePoly 0x007A /* (not yet implemented) 0 */
  157. #define invertSamePoly 0x007B /* (not yet implemented) 0 */
  158. #define fillSamePoly 0x007C /* (not yet implemented) 0 */
  159. /* reserved 0x007D /* opcode 0 */
  160. /* reserved 0x007E /* opcode 0 */
  161. /* reserved 0x007F /* opcode 0 */
  162. #define frameRgn 0x0080 /* rgn region size */
  163. #define paintRgn 0x0081 /* rgn region size */
  164. #define eraseRgn 0x0082 /* rgn region size */
  165. #define invertRgn 0x0083 /* rgn region size */
  166. #define fillRgn 0x0084 /* rgn region size */
  167. /* reserved 0x0085 /* opcode + rgn region size */
  168. /* reserved 0x0086 /* opcode + rgn region size */
  169. /* reserved 0x0087 /* opcode + rgn region size */
  170. #define frameSameRgn 0x0088 /* (not yet implemented: 0 */
  171. /* same as 80, etc.) */
  172. #define paintSameRgn 0x0089 /* (not yet implemented) 0 */
  173. #define eraseSameRgn 0x008A /* (not yet implemented) 0 */
  174. #define invertSameRgn 0x008B /* (not yet implemented) 0 */
  175. #define fillSameRgn 0x008C /* (not yet implemented) 0 */
  176. /* reserved 0x008D /* opcode 0 */
  177. /* reserved 0x008E /* opcode 0 */
  178. /* reserved 0x008F /* opcode 0 */
  179. #define BitsRect 0x0090 /* copybits, rect clipped variable: */
  180. /* see Table 4 */
  181. #define BitsRgn 0x0091 /* copybits, rgn clipped variable: */
  182. /* see Table 4 */
  183. /* reserved 0x0092 /* opcode + 2 bytes data 2+ data */
  184. /* length + data length */
  185. /* reserved 0x0093 /* opcode + 2 bytes data 2+ data */
  186. /* length + data length */
  187. /* reserved 0x0094 /* opcode + 2 bytes data 2+ data */
  188. /* length + data length */
  189. /* reserved 0x0095 /* opcode + 2 bytes data 2+ data */
  190. /* length + data length */
  191. /* reserved 0x0096 /* opcode + 2 bytes data 2+ data */
  192. /* length + data length */
  193. /* reserved 0x0097 /* opcode word + 2 bytes 2+ data */
  194. /* length + data length */
  195. #define PackBitsRect 0x0098 /* packed copybits, rect variable: */
  196. /* clipped see Table 4 */
  197. #define PackBitsRgn 0x0099 /* packed copybits, rgn variable: */
  198. /* clipped see Table 4 */
  199. #define DirectBitsRect 0x009A /* pixMap, srcRect, dstRect, 2+ data */
  200. /* mode (word), pixData length */
  201. #define DirectBitsRgn 0x009B /* pixMap, srcRect, dstRect, 2+ data */
  202. /* mode (word), pixData length */
  203. /* reserved 0x009C /* opcode + 2 bytes data 2+ data */
  204. /* length + data length */
  205. /* reserved 0x009D /* opcode + 2 bytes data 2+ data */
  206. /* length + data length */
  207. /* reserved 0x009E /* opcode + 2 bytes data 2+ data */
  208. /* length + data length */
  209. /* reserved 0x009F /* opcode + 2 bytes data 2+ data */
  210. /* length + data length */
  211. #define ShortComment 0x00A0 /* kind (word) 2 */
  212. #define LongComment 0x00A1 /* kind (word), size 4+data */
  213. /* (word), data */
  214. /* reserved 0x00A2 /* opcode + 2 bytes data 2+ data */
  215. /* length + data length */
  216. /* : : /* */
  217. /* : : /* */
  218. /* reserved 0x00AF /* opcode + 2 bytes data 2+ data */
  219. /* length + data length */
  220. /* reserved 0x00B0 /* opcode 0 */
  221. /* : : /* */
  222. /* : : /* */
  223. /* reserved 0x00CF /* opcode 0 */
  224. /* reserved 0x00D0 /* opcode + 4 bytes data 4+ data */
  225. /* length + data length */
  226. /* : : /* */
  227. /* : : /* */
  228. /* reserved 0x00FE /* opcode + 4 bytes data 4+ data */
  229. /* length + data length */
  230. #define opEndPic 0x00FF /* end of picture 2 */
  231. /* reserved 0x0100 /* opcode + 2 bytes data 2 */
  232. /* : : /* */
  233. /* : : /* */
  234. /* reserved 0x01FF /* opcode + 2 bytes data 2 */
  235. /* reserved 0x0200 /* opcode + 4 bytes data 4 */
  236. /* : : /* */
  237. /* reserved 0x0BFF /* opcode + 4 bytes data 22 */
  238. #define HeaderOp 0x0C00 /* opcode 24 */
  239. /* reserved 0x0C01 /* opcode + 4 bytes data 24 */
  240. /* : : /* */
  241. /* reserved 0x7F00 /* opcode + 254 bytes data 254 */
  242. /* : : /* */
  243. /* reserved 0x7FFF /* opcode + 254 bytes data 254 */
  244. /* reserved 0x8000 /* opcode 0 */
  245. /* : : /* */
  246. /* reserved 0x80FF /* opcode 0 */
  247. /* reserved 0x8100 /* opcode + 4 bytes data 4+ data */
  248. /* length + data length */
  249. /* : : /* */
  250. /* reserved 0xFFFF /* opcode + 4 bytes data 4+ data */
  251. /* length + data length */
  252.