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

837 lines
28 KiB

  1. // The names of these strings must correspond to the
  2. // enum CACHED_CAA_STORAGE_STRUCT that is defined in cfpf.hxx
  3. const char *rgszCcssString[]=
  4. {
  5. "CCSS_EXPAND",
  6. "CCSS_CUSTOMAPPLY",
  7. "CCSS_NONE",
  8. "CCSS_CCHARFORMAT",
  9. "CCSS_CPARAFORMAT",
  10. "CCSS_CFANCYFORMAT"
  11. };
  12. // This needs to be ordered by DISPID
  13. CCachedAttrArrayInfo rgCachedAttrArrayInfo[] =
  14. {
  15. {"STDPROPID_XOBJ_LEFT", CCSSF_CLEARFF },
  16. {"STDPROPID_XOBJ_TOP", CCSSF_CLEARFF },
  17. {"STDPROPID_XOBJ_WIDTH", CCSSF_CLEARCACHES | CCSSF_SIZECHANGED },
  18. {"STDPROPID_XOBJ_HEIGHT", CCSSF_CLEARCACHES | CCSSF_SIZECHANGED },
  19. {"STDPROPID_XOBJ_BLOCKALIGN", CCSSF_CLEARCACHES | CCSSF_REMEASURECONTENTS },
  20. {"STDPROPID_XOBJ_CONTROLALIGN", CCSSF_CLEARCACHES | CCSSF_REMEASURECONTENTS },
  21. {"STDPROPID_XOBJ_DISABLED", CCSSF_CLEARCACHES | CCSSF_REMEASURECONTENTS },
  22. {"STDPROPID_XOBJ_RIGHT", CCSSF_CLEARFF },
  23. {"STDPROPID_XOBJ_BOTTOM", CCSSF_CLEARFF },
  24. {"DISPID_A_WORDSPACING", CCSSF_CLEARCACHES | CCSSF_REMEASUREALLCONTENTS },
  25. {"DISPID_A_VERTICALALIGN", CCSSF_CLEARCACHES | CCSSF_SIZECHANGED },
  26. {"DISPID_A_COLOR", CCSSF_CLEARCACHES },
  27. {"DISPID_A_TEXTTRANSFORM", CCSSF_CLEARCACHES | CCSSF_REMEASUREALLCONTENTS },
  28. {"DISPID_A_NOWRAP", CCSSF_CLEARCACHES | CCSSF_REMEASUREALLCONTENTS },
  29. {"DISPID_A_LINEHEIGHT", CCSSF_CLEARCACHES | CCSSF_REMEASUREALLCONTENTS },
  30. {"DISPID_A_TEXTINDENT", CCSSF_CLEARCACHES | CCSSF_REMEASUREALLCONTENTS },
  31. {"DISPID_A_LETTERSPACING", CCSSF_CLEARCACHES | CCSSF_REMEASUREALLCONTENTS },
  32. {"DISPID_A_OVERFLOW", CCSSF_CLEARFF | CCSSF_SIZECHANGED },
  33. {"DISPID_A_PADDINGTOP", CCSSF_CLEARCACHES | CCSSF_REMEASURECONTENTS },
  34. {"DISPID_A_PADDINGRIGHT", CCSSF_CLEARCACHES | CCSSF_REMEASURECONTENTS },
  35. {"DISPID_A_PADDINGBOTTOM", CCSSF_CLEARCACHES | CCSSF_REMEASURECONTENTS },
  36. {"DISPID_A_PADDINGLEFT", CCSSF_CLEARCACHES | CCSSF_REMEASURECONTENTS },
  37. {"DISPID_A_CLEAR", CCSSF_CLEARCACHES | CCSSF_SIZECHANGED },
  38. {"DISPID_A_FONTFACE", CCSSF_CLEARCACHES | CCSSF_REMEASUREALLCONTENTS },
  39. {"DISPID_A_TEXTDECORATION", CCSSF_CLEARCACHES },
  40. {"DISPID_A_ACCELERATOR", CCSSF_CLEARCACHES },
  41. {"DISPID_A_FONTSIZE", CCSSF_CLEARCACHES | CCSSF_REMEASUREALLCONTENTS },
  42. {"DISPID_A_FONTSTYLE", CCSSF_CLEARCACHES | CCSSF_REMEASUREALLCONTENTS },
  43. {"DISPID_A_FONTVARIANT", CCSSF_CLEARCACHES | CCSSF_REMEASUREALLCONTENTS },
  44. {"DISPID_A_BASEFONT", CCSSF_CLEARCACHES | CCSSF_REMEASUREALLCONTENTS },
  45. {"DISPID_A_FONTWEIGHT", CCSSF_CLEARCACHES | CCSSF_REMEASUREALLCONTENTS },
  46. {"DISPID_A_TABLEBORDERCOLOR", CCSSF_CLEARFF },
  47. {"DISPID_A_TABLEBORDERCOLORLIGHT", CCSSF_CLEARFF },
  48. {"DISPID_A_TABLEBORDERCOLORDARK", CCSSF_CLEARFF },
  49. {"DISPID_A_TABLEVALIGN", CCSSF_CLEARCACHES | CCSSF_REMEASURECONTENTS },
  50. {"DISPID_BACKCOLOR", CCSSF_CLEARCACHES },
  51. {"DISPID_A_MARGINTOP", CCSSF_CLEARCACHES | CCSSF_SIZECHANGED },
  52. {"DISPID_A_MARGINRIGHT", CCSSF_CLEARCACHES | CCSSF_SIZECHANGED },
  53. {"DISPID_A_MARGINBOTTOM", CCSSF_CLEARCACHES | CCSSF_SIZECHANGED },
  54. {"DISPID_A_MARGINLEFT", CCSSF_CLEARCACHES | CCSSF_SIZECHANGED },
  55. {"DISPID_A_FONT", CCSSF_CLEARCACHES | CCSSF_REMEASUREALLCONTENTS },
  56. {"DISPID_A_BORDERTOPCOLOR", CCSSF_CLEARCACHES },
  57. {"DISPID_A_BORDERRIGHTCOLOR", CCSSF_CLEARCACHES },
  58. {"DISPID_A_BORDERBOTTOMCOLOR", CCSSF_CLEARCACHES },
  59. {"DISPID_A_BORDERLEFTCOLOR", CCSSF_CLEARCACHES },
  60. {"DISPID_A_BORDERTOPWIDTH", CCSSF_CLEARCACHES | CCSSF_SIZECHANGED },
  61. {"DISPID_A_BORDERRIGHTWIDTH", CCSSF_CLEARCACHES | CCSSF_SIZECHANGED },
  62. {"DISPID_A_BORDERBOTTOMWIDTH", CCSSF_CLEARCACHES | CCSSF_SIZECHANGED },
  63. {"DISPID_A_BORDERLEFTWIDTH", CCSSF_CLEARCACHES | CCSSF_SIZECHANGED },
  64. {"DISPID_A_BORDERTOPSTYLE", CCSSF_CLEARCACHES | CCSSF_SIZECHANGED },
  65. {"DISPID_A_BORDERRIGHTSTYLE", CCSSF_CLEARCACHES | CCSSF_SIZECHANGED },
  66. {"DISPID_A_BORDERBOTTOMSTYLE", CCSSF_CLEARCACHES | CCSSF_SIZECHANGED },
  67. {"DISPID_A_BORDERLEFTSTYLE", CCSSF_CLEARCACHES | CCSSF_SIZECHANGED },
  68. {"DISPID_A_FLOAT", CCSSF_CLEARCACHES | CCSSF_SIZECHANGED },
  69. {"DISPID_A_DISPLAY", CCSSF_CLEARCACHES | CCSSF_REMEASUREINPARENT },
  70. {"DISPID_A_LISTTYPE", CCSSF_CLEARCACHES | CCSSF_SIZECHANGED },
  71. {"DISPID_A_LISTSTYLETYPE", CCSSF_CLEARCACHES | CCSSF_SIZECHANGED },
  72. {"DISPID_A_LISTSTYLEPOSITION", CCSSF_CLEARCACHES | CCSSF_REMEASURECONTENTS | CCSSF_SIZECHANGED },
  73. {"DISPID_A_LISTSTYLEIMAGE", CCSSF_CLEARCACHES | CCSSF_SIZECHANGED },
  74. {"DISPID_A_WHITESPACE", CCSSF_CLEARCACHES | CCSSF_REMEASUREALLCONTENTS },
  75. {"DISPID_A_VISIBILITY", CCSSF_CLEARCACHES },
  76. {"DISPID_A_POSITION", CCSSF_CLEARCACHES | CCSSF_REMEASUREINPARENT },
  77. {"DISPID_A_ZINDEX", CCSSF_CLEARFF },
  78. {"DISPID_A_CLIP", CCSSF_CLEARFF },
  79. {"DISPID_A_CLIPRECTTOP", CCSSF_CLEARFF },
  80. {"DISPID_A_CLIPRECTRIGHT", CCSSF_CLEARFF },
  81. {"DISPID_A_CLIPRECTBOTTOM", CCSSF_CLEARFF },
  82. {"DISPID_A_CLIPRECTLEFT", CCSSF_CLEARFF },
  83. {"DISPID_A_PAGEBREAKBEFORE", CCSSF_CLEARCACHES },
  84. {"DISPID_A_PAGEBREAKAFTER", CCSSF_CLEARCACHES },
  85. {"DISPID_A_CURSOR", CCSSF_CLEARCACHES },
  86. {"DISPID_A_FILTER", CCSSF_CLEARCACHES },
  87. {"DISPID_A_BACKGROUNDIMAGE", CCSSF_CLEARCACHES },
  88. {"DISPID_A_BACKGROUNDPOSX", CCSSF_CLEARFF },
  89. {"DISPID_A_BACKGROUNDPOSY", CCSSF_CLEARFF },
  90. {"DISPID_A_BACKGROUNDREPEAT", CCSSF_CLEARFF },
  91. {"DISPID_A_BACKGROUNDATTACHMENT", CCSSF_CLEARFF | CCSSF_SIZECHANGED },
  92. {"DISPID_A_LANG", CCSSF_CLEARCACHES | CCSSF_REMEASUREALLCONTENTS },
  93. {"DISPID_A_TABLELAYOUT", CCSSF_CLEARCACHES | CCSSF_REMEASUREALLCONTENTS },
  94. {"DISPID_A_BORDERCOLLAPSE", CCSSF_CLEARCACHES | CCSSF_REMEASUREALLCONTENTS },
  95. {"DISPID_A_BEHAVIOR", CCSSF_CLEARCACHES },
  96. {"DISPID_A_DIR", CCSSF_CLEARCACHES | CCSSF_REMEASUREALLCONTENTS | CCSSF_SIZECHANGED },
  97. {"DISPID_A_UNICODEBIDI", CCSSF_CLEARCACHES | CCSSF_REMEASUREALLCONTENTS | CCSSF_SIZECHANGED },
  98. {"DISPID_A_DIRECTION", CCSSF_CLEARCACHES | CCSSF_REMEASUREALLCONTENTS | CCSSF_SIZECHANGED },
  99. {"DISPID_A_RUBYPOSITION", CCSSF_CLEARCACHES },
  100. {"DISPID_A_IMEMODE", CCSSF_NONE },
  101. {"DISPID_A_RUBYALIGN", CCSSF_CLEARCACHES | CCSSF_REMEASURECONTENTS | CCSSF_SIZECHANGED },
  102. {"DISPID_A_RUBYPOSITION", CCSSF_CLEARCACHES | CCSSF_REMEASURECONTENTS | CCSSF_SIZECHANGED },
  103. {"DISPID_A_RUBYOVERHANG", CCSSF_CLEARCACHES | CCSSF_REMEASURECONTENTS | CCSSF_SIZECHANGED },
  104. {"DISPID_A_LAYOUTGRIDCHAR", CCSSF_CLEARCACHES | CCSSF_REMEASURECONTENTS | CCSSF_SIZECHANGED },
  105. {"DISPID_A_LAYOUTGRIDLINE", CCSSF_CLEARCACHES | CCSSF_REMEASURECONTENTS | CCSSF_SIZECHANGED },
  106. {"DISPID_A_LAYOUTGRIDMODE", CCSSF_CLEARCACHES | CCSSF_REMEASURECONTENTS | CCSSF_SIZECHANGED },
  107. {"DISPID_A_LAYOUTGRIDTYPE", CCSSF_CLEARCACHES | CCSSF_REMEASURECONTENTS | CCSSF_SIZECHANGED },
  108. {"DISPID_A_LAYOUTGRID", CCSSF_CLEARCACHES | CCSSF_REMEASURECONTENTS | CCSSF_SIZECHANGED },
  109. {"DISPID_A_TEXTAUTOSPACE", CCSSF_CLEARCACHES | CCSSF_REMEASUREALLCONTENTS | CCSSF_SIZECHANGED },
  110. {"DISPID_A_WORDBREAK", CCSSF_CLEARCACHES | CCSSF_REMEASUREALLCONTENTS | CCSSF_SIZECHANGED },
  111. {"DISPID_A_LINEBREAK", CCSSF_CLEARCACHES | CCSSF_REMEASUREALLCONTENTS | CCSSF_SIZECHANGED },
  112. {"DISPID_A_TEXTJUSTIFY", CCSSF_CLEARCACHES | CCSSF_REMEASUREALLCONTENTS | CCSSF_SIZECHANGED },
  113. {"DISPID_A_TEXTJUSTIFYTRIM", CCSSF_CLEARCACHES | CCSSF_REMEASUREALLCONTENTS | CCSSF_SIZECHANGED },
  114. {"DISPID_A_TEXTKASHIDA", CCSSF_CLEARCACHES | CCSSF_REMEASUREALLCONTENTS | CCSSF_SIZECHANGED },
  115. {"DISPID_A_OVERFLOWX", CCSSF_CLEARFF | CCSSF_SIZECHANGED },
  116. {"DISPID_A_OVERFLOWY", CCSSF_CLEARFF | CCSSF_SIZECHANGED },
  117. #ifdef IE6_WYSIWYG_OM
  118. {"DISPID_A_ROTATE", CCSSF_CLEARCACHES | CCSSF_REMEASUREALLCONTENTS },
  119. #endif
  120. {"DISPID_A_ZOOM", CCSSF_CLEARCACHES | CCSSF_CLEARFF },
  121. {"DISPID_A_LAYOUTFLOW", CCSSF_CLEARCACHES | CCSSF_REMEASUREALLCONTENTS | CCSSF_SIZECHANGED },
  122. {"DISPID_A_WORDWRAP", CCSSF_CLEARCACHES | CCSSF_REMEASUREALLCONTENTS | CCSSF_SIZECHANGED },
  123. {"DISPID_A_TEXTUNDERLINEPOSITION", CCSSF_CLEARCACHES },
  124. {"DISPID_A_WRAP", CCSSF_REMEASURECONTENTS | CCSSF_REMEASUREINPARENT },
  125. {"DISPID_A_VIEW", CCSSF_CLEARCACHES | CCSSF_REMEASUREINPARENT },
  126. {"DISPID_A_EDITABLE", CCSSF_CLEARCACHES },
  127. {"DISPID_A_SCROLLBARBASECOLOR", CCSSF_CLEARCACHES },
  128. {"DISPID_A_SCROLLBARTRACKCOLOR", CCSSF_CLEARCACHES },
  129. {"DISPID_A_SCROLLBARFACECOLOR", CCSSF_CLEARCACHES },
  130. {"DISPID_A_SCROLLBAR3DLIGHTCOLOR", CCSSF_CLEARCACHES },
  131. {"DISPID_A_SCROLLBARSHADOWCOLOR", CCSSF_CLEARCACHES },
  132. {"DISPID_A_SCROLLBARHIGHLIGHTCOLOR", CCSSF_CLEARCACHES },
  133. {"DISPID_A_SCROLLBARDARKSHADOWCOLOR", CCSSF_CLEARCACHES },
  134. {"DISPID_A_SCROLLBARARROWCOLOR", CCSSF_CLEARCACHES },
  135. {"DISPID_A_WRITINGMODE", CCSSF_CLEARCACHES | CCSSF_REMEASUREALLCONTENTS | CCSSF_SIZECHANGED },
  136. {"DISPID_A_FROZEN", CCSSF_CLEARCACHES },
  137. {"DISPID_A_VIEWINHERITSTYLE", CCSSF_CLEARCACHES | CCSSF_REMEASUREALLCONTENTS | CCSSF_SIZECHANGED},
  138. {"DISPID_A_TEXTALIGNLAST", CCSSF_CLEARCACHES | CCSSF_REMEASUREALLCONTENTS | CCSSF_SIZECHANGED },
  139. {"DISPID_A_TEXTKASHIDASPACE", CCSSF_CLEARCACHES | CCSSF_REMEASUREALLCONTENTS | CCSSF_SIZECHANGED },
  140. {"DISPID_A_ALLOWTRANSPARENCY", CCSSF_CLEARCACHES | CCSSF_SIZECHANGED | CCSSF_REMEASURECONTENTS },
  141. {"DISPID_A_TEXTOVERFLOW", CCSSF_CLEARCACHES },
  142. {"DISPID_A_MINHEIGHT", CCSSF_CLEARCACHES | CCSSF_SIZECHANGED },
  143. {NULL, CCSSF_NONE },
  144. };
  145. AssociateDataType DataTypes[] =
  146. {
  147. { "void*", "Num" , "NUM", STORAGETYPE_NUMBER},
  148. { "DWORD", "Num" , "NUM", STORAGETYPE_NUMBER},
  149. { "DISPID", "Num" , "NUM", STORAGETYPE_NUMBER},
  150. { "SIZEL*", "Num" , "NUM", STORAGETYPE_NUMBER},
  151. { "CStr", "String" , "CSTR", STORAGETYPE_STRING},
  152. { "BSTR", "String" , "CSTR", STORAGETYPE_STRING},
  153. { "long", "Num" , "NUM", STORAGETYPE_NUMBER},
  154. { "int", "Num" , "NUM", STORAGETYPE_NUMBER},
  155. { "short", "Num" , "NUM", STORAGETYPE_NUMBER},
  156. { "char", "Num" , "NUM", STORAGETYPE_NUMBER},
  157. { "enum", "Enum" , "ENUM", STORAGETYPE_NUMBER},
  158. { "ULONG", "Num" , "NUM", STORAGETYPE_NUMBER},
  159. { "CStyleComponent", "StyleComponent" , "CSTR", STORAGETYPE_STRING},
  160. { "CStyle", "Style" , "CSTR", STORAGETYPE_OTHER},
  161. { "CColorValue", "Color" , "COLOR", STORAGETYPE_NUMBER},
  162. { "CUnitValue", "UnitValue" , "UNITVALUE", STORAGETYPE_NUMBER},
  163. { "VARIANT_BOOL", "Num" , "NUM", STORAGETYPE_NUMBER},
  164. { "OLE_XPOS_PIXELS", "Num" , "NUM", STORAGETYPE_NUMBER},
  165. { "OLE_YPOS_PIXELS", "Num" , "NUM", STORAGETYPE_NUMBER},
  166. { "OLE_XSIZE_PIXELS", "Num" , "NUM", STORAGETYPE_NUMBER},
  167. { "OLE_YSIZE_PIXELS", "Num" , "NUM", STORAGETYPE_NUMBER},
  168. { "OLE_XPOS_HIMETRIC", "Num" , "NUM", STORAGETYPE_NUMBER},
  169. { "OLE_YPOS_HIMETRIC", "Num" , "NUM", STORAGETYPE_NUMBER},
  170. { "OLE_XSIZE_HIMETRIC", "Num" , "NUM", STORAGETYPE_NUMBER},
  171. { "OLE_YSIZE_HIMETRIC", "Num" , "NUM", STORAGETYPE_NUMBER},
  172. { "OLE_XPOS_CONTAINER", "Float" , "FLOAT", STORAGETYPE_NUMBER},
  173. { "OLE_YPOS_CONTAINER", "Float" , "FLOAT", STORAGETYPE_NUMBER},
  174. { "OLE_XSIZE_CONTAINER", "Float" , "FLOAT", STORAGETYPE_NUMBER},
  175. { "OLE_YSIZE_CONTAINER", "Float" , "FLOAT", STORAGETYPE_NUMBER},
  176. { "OLE_CANCELBOOL", "Num" , "NUM", STORAGETYPE_NUMBER},
  177. { "OLE_ENABLEDEFAULTBOOL", "Num" , "NUM", STORAGETYPE_NUMBER},
  178. { "IDispatch*", "Object" , "OBJECT", STORAGETYPE_OTHER},
  179. { "IUnknown*", "Object" , "OBJECT", STORAGETYPE_OTHER},
  180. { "VARIANT", "Variant" , "VARIANT", STORAGETYPE_OTHER},
  181. { "BYTE", "Num" , "NUM", STORAGETYPE_NUMBER},
  182. { "BOOL", "Boolean" , "BOOLEAN", STORAGETYPE_NUMBER},
  183. { "float", "Float" , "FLOAT", STORAGETYPE_NUMBER},
  184. { "url", "Url", "CSTR", STORAGETYPE_STRING},
  185. { "code", "Code", "CSTR", STORAGETYPE_STRING},
  186. { NULL, NULL , NULL, STORAGETYPE_NUMBER},
  187. };
  188. //# { ]
  189. //# index is argument type
  190. //# value is VTS type
  191. Associate vt[] =
  192. {
  193. { "void*", "VTS_PI4" },
  194. { "DWORD", "VTS_I4" },
  195. { "DISPID", "VTS_I4" },
  196. { "SIZEL*", "VTS_PI4" },
  197. { "short", "VTS_I2" },
  198. { "long", "VTS_I4" },
  199. { "ULONG", "VTS_I4" },
  200. { "ULONG*", "VTS_PI4" },
  201. { "int", "VTS_I4" },
  202. { "float", "VTS_R4" },
  203. { "double", "VTS_R8" },
  204. { "CY*", "VTS_CY" },
  205. { "DATE", "VTS_DATE" },
  206. { "BSTR", "VTS_BSTR" },
  207. { "LPCTSTR", "VTS_BSTR" },
  208. { "IDispatch*", "VTS_DISPATCH" },
  209. { "SCODE", "VTS_ERROR" },
  210. { "VARIANT_BOOL", "VTS_BOOL" },
  211. { "boolean", "VTS_BOOL" },
  212. { "ERROR", "VTS_ERROR" },
  213. { "BOOL", "VTS_BOOL" },
  214. { "VARIANT", "VTS_VARIANT" },
  215. { "IUnknown*", "VTS_UNKNOWN" },
  216. { "unsigned char", "VTS_UI1" },
  217. { "short*", "VTS_PI2" },
  218. { "long*", "VTS_PI4" },
  219. { "int*", "VTS_PI4" },
  220. { "float*", "VTS_PR4" },
  221. { "double*", "VTS_PR8" },
  222. { "CY*", "VTS_PCY" },
  223. { "DATE*", "VTS_PDATE" },
  224. { "BSTR*", "VTS_PBSTR" },
  225. { "IDispatch**", "VTS_PDISPATCH" },
  226. { "SCODE*", "VTS_PERROR" },
  227. { "VARIANT_BOOL*", "VTS_PBOOL" },
  228. { "boolean*", "VTS_PBOOL" },
  229. { "VARIANT*", "VTS_PVARIANT" },
  230. { "IUnknown**", "VTS_PUNKNOWN" },
  231. { "unsigned char *", "VTS_PUI1" },
  232. { "", "VTS_NONE" },
  233. { "OLE_COLOR", "VTS_COLOR" },
  234. { "OLE_XPOS_PIXELS", "VTS_XPOS_PIXELS" },
  235. { "OLE_YPOS_PIXELS", "VTS_YPOS_PIXELS" },
  236. { "OLE_XSIZE_PIXELS", "VTS_XSIZE_PIXELS" },
  237. { "OLE_YSIZE_PIXELS", "VTS_YSIZE_PIXELS" },
  238. { "OLE_XPOS_HIMETRIC", "VTS_XPOS_HIMETRIC" },
  239. { "OLE_YPOS_HIMETRIC", "VTS_YPOS_HIMETRIC" },
  240. { "OLE_XSIZE_HIMETRIC", "VTS_XSIZE_HIMETRIC" },
  241. { "OLE_YSIZE_HIMETRIC", "VTS_YSIZE_HIMETRIC" },
  242. { "OLE_XPOS_CONTAINER", "VTS_R4" },
  243. { "OLE_YPOS_CONTAINER", "VTS_R4" },
  244. { "OLE_XSIZE_CONTAINER", "VTS_R4" },
  245. { "OLE_YSIZE_CONTAINER", "VTS_R4" },
  246. { "OLE_TRISTATE", "VTS_TRISTATE" },
  247. { "OLE_OPTEXCLUSIVE", "VTS_OPTEXCLUSIVE" },
  248. { "OLE_COLOR*", "VTS_PCOLOR" },
  249. { "OLE_XPOS_PIXELS*", "VTS_PXPOS_PIXELS" },
  250. { "OLE_YPOS_PIXELS*", "VTS_PYPOS_PIXELS" },
  251. { "OLE_XSIZE_PIXELS*", "VTS_PXSIZE_PIXELS" },
  252. { "OLE_YSIZE_PIXELS*", "VTS_PYSIZE_PIXELS" },
  253. { "OLE_XPOS_HIMETRIC*", "VTS_PXPOS_HIMETRIC" },
  254. { "OLE_YPOS_HIMETRIC*", "VTS_PYPOS_HIMETRIC" },
  255. { "OLE_XSIZE_HIMETRIC*", "VTS_PXSIZE_HIMETRIC" },
  256. { "OLE_YSIZE_HIMETRIC*", "VTS_PYSIZE_HIMETRIC" },
  257. { "OLE_TRISTATE*", "VTS_PTRISTATE" },
  258. { "OLE_OPTEXCLUSIVE*", "VTS_POPTEXCLUSIVE" },
  259. { "IFontDispatch*", "VTS_FONT" },
  260. { "IPictureDispatch*", "VTS_PICTURE" },
  261. { "OLE_HANDLE", "VTS_HANDLE" },
  262. { "OLE_HANDLE*", "VTS_PHANDLE" },
  263. { "BYTE", "VTS_BOOL" },
  264. // Internal Types
  265. { "CStr", "VTS_BSTR" },
  266. { "CUnitValue", "VTS_I4" },
  267. { "CStyleComponent", "VTS_BSTR" },
  268. { "CStyle", "VTS_BSTR" },
  269. { "CColorValue", "VTS_BSTR" },
  270. { NULL, NULL },
  271. };
  272. TokenDescriptor FileDescriptor =
  273. {
  274. "file", TRUE,
  275. {
  276. END_OF_ARG_ARRAY
  277. }
  278. };
  279. TokenDescriptor InterfaceDescriptor =
  280. {
  281. "interface", TRUE,
  282. {
  283. {
  284. "super", FALSE, TRUE // Mandatory
  285. },
  286. {
  287. "guid", FALSE, FALSE
  288. },
  289. {
  290. "abstract", TRUE, FALSE
  291. },
  292. {
  293. "custom", TRUE, FALSE
  294. },
  295. {
  296. "<noprimary>", TRUE, FALSE // Not settable from pdl, set internally.
  297. },
  298. END_OF_ARG_ARRAY
  299. }
  300. };
  301. TokenDescriptor EvalDescriptor =
  302. {
  303. "eval", FALSE,
  304. {
  305. {
  306. "value", FALSE, FALSE
  307. },
  308. {
  309. "string", FALSE, FALSE
  310. },
  311. {
  312. "name", FALSE, FALSE
  313. },
  314. END_OF_ARG_ARRAY
  315. }
  316. };
  317. TokenDescriptor EnumDescriptor =
  318. {
  319. "enum", TRUE,
  320. {
  321. {
  322. "prefix", FALSE, FALSE
  323. },
  324. {
  325. "guid", FALSE, FALSE
  326. },
  327. {
  328. "hidden", TRUE, FALSE
  329. },
  330. END_OF_ARG_ARRAY
  331. },
  332. };
  333. TokenDescriptor ClassDescriptor =
  334. {
  335. "class", TRUE,
  336. {
  337. {
  338. "super", FALSE, FALSE
  339. },
  340. {
  341. "primaryinterface", FALSE, FALSE
  342. },
  343. {
  344. "guid", FALSE, FALSE
  345. },
  346. {
  347. "abstract", TRUE, FALSE
  348. },
  349. {
  350. "name", FALSE, FALSE
  351. },
  352. {
  353. "events", FALSE, FALSE
  354. },
  355. {
  356. "cascadedmethods", TRUE, FALSE
  357. },
  358. {
  359. "noaamethods", TRUE, FALSE
  360. },
  361. {
  362. "keepnopersist", TRUE, FALSE
  363. },
  364. {
  365. "noconnectionpoints", TRUE, FALSE
  366. },
  367. {
  368. "control", TRUE, FALSE
  369. },
  370. {
  371. "mondoguid", FALSE, FALSE
  372. },
  373. {
  374. "nonprimaryevents", FALSE, FALSE
  375. },
  376. {
  377. "nonprimaryevents2", FALSE, FALSE
  378. },
  379. {
  380. "nonprimaryevents3", FALSE, FALSE
  381. },
  382. {
  383. "nonprimaryevents4", FALSE, FALSE
  384. },
  385. END_OF_ARG_ARRAY
  386. }
  387. };
  388. TokenDescriptor ImplementsDescriptor =
  389. {
  390. "implements", FALSE,
  391. {
  392. {
  393. "guid", FALSE, FALSE
  394. },
  395. END_OF_ARG_ARRAY
  396. }
  397. };
  398. TokenDescriptor PropertyDescriptor =
  399. {
  400. "property", FALSE,
  401. {
  402. {
  403. "atype", FALSE, FALSE
  404. },
  405. {
  406. "dispid", FALSE, FALSE
  407. },
  408. {
  409. "type", FALSE, FALSE
  410. },
  411. {
  412. "member", FALSE, FALSE
  413. },
  414. {
  415. "get", TRUE, FALSE
  416. },
  417. {
  418. "set", TRUE, FALSE
  419. },
  420. {
  421. "bindable", TRUE, FALSE
  422. },
  423. {
  424. "displaybind", TRUE, FALSE
  425. },
  426. {
  427. "dwflags", FALSE, FALSE
  428. },
  429. {
  430. "abstract", TRUE, FALSE
  431. },
  432. {
  433. "ppflags", FALSE, FALSE
  434. },
  435. {
  436. "default", FALSE, FALSE
  437. },
  438. {
  439. "noassigndefault", FALSE, FALSE
  440. },
  441. {
  442. "min", FALSE, FALSE
  443. },
  444. {
  445. "max", FALSE, FALSE
  446. },
  447. {
  448. "method", TRUE, FALSE
  449. },
  450. {
  451. "help", FALSE, FALSE
  452. },
  453. {
  454. "vt", FALSE, FALSE
  455. },
  456. {
  457. "caa", FALSE, FALSE
  458. },
  459. {
  460. "object", FALSE, FALSE
  461. },
  462. /* I'm creating bizarre names these out for now because currently JScript cannot deal with
  463. Properties that have parameters */
  464. {
  465. "<<index>>", FALSE, FALSE
  466. },
  467. {
  468. "<<index1>>", FALSE, FALSE
  469. },
  470. {
  471. "<<indextype>>", FALSE, FALSE
  472. },
  473. {
  474. "<<indextype1>>", FALSE, FALSE
  475. },
  476. {
  477. "szattribute", FALSE, FALSE
  478. },
  479. {
  480. "hidden", TRUE, FALSE
  481. },
  482. {
  483. "nonbrowsable", TRUE, FALSE
  484. },
  485. {
  486. "restricted", TRUE, FALSE
  487. },
  488. {
  489. "subobject", FALSE, FALSE
  490. },
  491. {
  492. "param1", FALSE, FALSE
  493. },
  494. {
  495. "precallfn", FALSE, FALSE
  496. },
  497. {
  498. "enumref", FALSE, FALSE
  499. },
  500. {
  501. "virtual", TRUE, FALSE
  502. },
  503. {
  504. "getaa", FALSE, FALSE
  505. },
  506. {
  507. "setaahr", FALSE, FALSE
  508. },
  509. {
  510. "source", TRUE, FALSE
  511. },
  512. {
  513. "minout", TRUE, FALSE
  514. },
  515. {
  516. "<cascaded>", TRUE,FALSE
  517. },
  518. {
  519. "updatecollection", TRUE, FALSE
  520. },
  521. {
  522. "scriptlet", TRUE, FALSE
  523. },
  524. {
  525. "clearcaches", TRUE, FALSE
  526. },
  527. {
  528. "stylesheetproperty", TRUE, FALSE
  529. },
  530. {
  531. "noassigntypeonly", TRUE, FALSE
  532. },
  533. {
  534. "resize", TRUE, FALSE
  535. },
  536. {
  537. "remeasure", TRUE, FALSE
  538. },
  539. {
  540. "remeasureall", TRUE, FALSE
  541. },
  542. {
  543. "siteredraw", TRUE, FALSE
  544. },
  545. {
  546. "set_designtime", TRUE, FALSE
  547. },
  548. {
  549. "invalid=noassigndefault", TRUE, FALSE
  550. },
  551. {
  552. "notpresent=default", TRUE, FALSE
  553. },
  554. {
  555. "contextual", TRUE, FALSE
  556. },
  557. {
  558. "nodecontextual", TRUE, FALSE
  559. },
  560. {
  561. "baseimplementation", TRUE, FALSE
  562. },
  563. {
  564. "nopersist", TRUE, FALSE
  565. },
  566. {
  567. "internal", TRUE, FALSE
  568. },
  569. {
  570. "<refdclass>", TRUE, FALSE
  571. },
  572. {
  573. "maxstrlen", FALSE, FALSE
  574. },
  575. {
  576. "nopropdesc", TRUE, FALSE
  577. },
  578. {
  579. "exclusivetoscript", TRUE, FALSE
  580. },
  581. {
  582. "szInterfaceExpose", TRUE, FALSE
  583. },
  584. {
  585. "dataevent", TRUE, FALSE
  586. },
  587. {
  588. "accessibilitystate", FALSE, FALSE
  589. },
  590. {
  591. "customenum", TRUE, FALSE
  592. },
  593. END_OF_ARG_ARRAY
  594. }
  595. };
  596. TokenDescriptor MethodArgDescriptor =
  597. {
  598. "<methodarg>" /* Implied */, FALSE,
  599. {
  600. {
  601. "atype", FALSE, FALSE
  602. },
  603. {
  604. "type", FALSE, FALSE
  605. },
  606. {
  607. "in", TRUE, FALSE
  608. },
  609. {
  610. "out", TRUE, FALSE
  611. },
  612. {
  613. "arg", FALSE, FALSE
  614. },
  615. {
  616. "retval", FALSE, FALSE
  617. },
  618. {
  619. "defaultvalue", FALSE, FALSE
  620. },
  621. {
  622. "optional", TRUE, FALSE
  623. },
  624. END_OF_ARG_ARRAY
  625. }
  626. };
  627. // These are just the tokens for the method, there is a separate descriptor for a method arg
  628. TokenDescriptor MethodDescriptor =
  629. {
  630. "method", FALSE,
  631. {
  632. {
  633. "<ReturnType>", FALSE, FALSE // Un-Tagged
  634. },
  635. {
  636. "dispid", FALSE, FALSE
  637. },
  638. {
  639. "abstract", TRUE, FALSE
  640. },
  641. {
  642. "virtual", TRUE, FALSE
  643. },
  644. {
  645. "<RefdToClassFlag>", TRUE, FALSE
  646. },
  647. {
  648. "vararg", TRUE, FALSE
  649. },
  650. {
  651. "cancelable", TRUE, FALSE
  652. },
  653. {
  654. "bubbling", TRUE, FALSE
  655. },
  656. {
  657. "restricted", TRUE, FALSE
  658. },
  659. {
  660. "contextual", TRUE, FALSE
  661. },
  662. {
  663. "nodecontextual", TRUE, FALSE
  664. },
  665. {
  666. "maxstrlen", FALSE, FALSE
  667. },
  668. {
  669. "nopropdesc", TRUE, FALSE
  670. },
  671. {
  672. "exclusivetoscript", TRUE, FALSE
  673. },
  674. {
  675. "szInterfaceExpose", TRUE, FALSE
  676. },
  677. END_OF_ARG_ARRAY
  678. }
  679. };
  680. TokenDescriptor RefPropDescriptor =
  681. {
  682. "refprop", FALSE,
  683. {
  684. {
  685. "<ClassName>", FALSE, FALSE // Un-Tagged
  686. },
  687. {
  688. "<PropertyName>", FALSE, FALSE // Untagged
  689. },
  690. END_OF_ARG_ARRAY
  691. }
  692. };
  693. TokenDescriptor RefMethodDescriptor =
  694. {
  695. "refmethod", FALSE,
  696. {
  697. {
  698. "<ClassName>", FALSE, FALSE // Un-Tagged
  699. },
  700. {
  701. "<PropertyName>", FALSE, FALSE // Untagged
  702. },
  703. END_OF_ARG_ARRAY
  704. }
  705. };
  706. TokenDescriptor EventDescriptor =
  707. {
  708. "event", TRUE,
  709. {
  710. {
  711. "super", FALSE, TRUE // Mandatory
  712. },
  713. {
  714. "guid", FALSE, FALSE
  715. },
  716. {
  717. "abstract", TRUE, FALSE
  718. },
  719. END_OF_ARG_ARRAY
  720. }
  721. };
  722. TokenDescriptor ImportDescriptor =
  723. {
  724. "import", TRUE, // import just has a name
  725. {
  726. END_OF_ARG_ARRAY
  727. }
  728. };
  729. TokenDescriptor TearoffDescriptor =
  730. {
  731. "tearoff", TRUE,
  732. {
  733. {
  734. "interface", FALSE, FALSE
  735. },
  736. {
  737. "BaseImpl", FALSE, FALSE
  738. },
  739. END_OF_ARG_ARRAY
  740. }
  741. };
  742. TokenDescriptor TearoffMethod =
  743. {
  744. "tearmethod", FALSE,
  745. {
  746. {
  747. "mapto", FALSE, TRUE // mandatory
  748. },
  749. END_OF_ARG_ARRAY
  750. }
  751. };
  752. TokenDescriptor StructDescriptor =
  753. {
  754. "struct", TRUE,
  755. {
  756. END_OF_ARG_ARRAY
  757. }
  758. };
  759. TokenDescriptor StructMemberDescriptor =
  760. {
  761. "member", FALSE,
  762. {
  763. {
  764. "type", FALSE, FALSE
  765. },
  766. END_OF_ARG_ARRAY
  767. }
  768. };
  769. TokenDescriptor *AllDescriptors[ NUM_DESCRIPTOR_TYPES ] =
  770. {
  771. &FileDescriptor,
  772. &InterfaceDescriptor,
  773. &EvalDescriptor,
  774. &EnumDescriptor,
  775. &ClassDescriptor,
  776. &ImplementsDescriptor,
  777. &PropertyDescriptor,
  778. &MethodDescriptor,
  779. &MethodArgDescriptor,
  780. &RefPropDescriptor,
  781. &RefMethodDescriptor,
  782. &EventDescriptor,
  783. &ImportDescriptor,
  784. &TearoffDescriptor,
  785. &TearoffMethod,
  786. &StructDescriptor,
  787. &StructMemberDescriptor
  788. };