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.

2658 lines
117 KiB

  1. // Copyright (c) 1996-1999 Microsoft Corporation
  2. /* snaptbl.c - function to initialize the snapshot table */
  3. #include "gpdparse.h"
  4. // ---- functions defined in snaptbl.c ---- //
  5. DWORD DwInitSnapShotTable1(
  6. PBYTE pubnRaw) ;
  7. DWORD DwInitSnapShotTable2(
  8. PBYTE pubnRaw,
  9. DWORD dwI) ;
  10. // ------- end function declarations ------- //
  11. // assume a pointer to this table is stored in the RAWbinary data.
  12. DWORD DwInitSnapShotTable1(
  13. PBYTE pubnRaw)
  14. /* this function is to be called once
  15. immediately after the raw binary data is read from
  16. the file, this memory is to be freed immediately prior
  17. to freeing pubRaw.
  18. The entries belonging to different structures are
  19. separated by an entry with dwNbytes = 0.
  20. */
  21. {
  22. PSTATICFIELDS pStatic ;
  23. // PMINIRAWBINARYDATA pmrbd ;
  24. DWORD dwI = 0;
  25. pStatic = (PSTATICFIELDS)pubnRaw ;
  26. // pmrbd = (PMINIRAWBINARYDATA)pubRaw ;
  27. pStatic->snapShotTable = (PSNAPSHOTTABLE)
  28. MemAlloc(sizeof(SNAPSHOTTABLE) * MAX_SNAPSHOT_ELEMENTS) ;
  29. if(!pStatic->snapShotTable)
  30. return(FALSE) ;
  31. // SSTI_GLOBALS section
  32. //
  33. // General
  34. //
  35. pStatic->snapShotTable[dwI].pstrKeyword = "*GPDSpecVersion" ;
  36. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  37. atrGPDSpecVersion) ;
  38. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  39. pwstrGPDSpecVersion) ;
  40. pStatic->snapShotTable[dwI].dwNbytes = sizeof(PWSTR) ;
  41. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  42. pStatic->snapShotTable[dwI].dwFlags = SSF_REQUIRED | SSF_MAKE_STRINGPTR ;
  43. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  44. dwI++ ;
  45. pStatic->snapShotTable[dwI].pstrKeyword = "*GPDFileVersion" ;
  46. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  47. atrGPDFileVersion) ;
  48. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  49. pwstrGPDFileVersion) ;
  50. pStatic->snapShotTable[dwI].dwNbytes = sizeof(PWSTR) ;
  51. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  52. #if defined(DEVSTUDIO) || defined(GPDCHECKER)
  53. pStatic->snapShotTable[dwI].dwFlags = SSF_REQUIRED | SSF_MAKE_STRINGPTR ;
  54. #else
  55. pStatic->snapShotTable[dwI].dwFlags = SSF_MAKE_STRINGPTR ;
  56. #endif
  57. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  58. dwI++ ;
  59. pStatic->snapShotTable[dwI].pstrKeyword = "*GPDFileName" ;
  60. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  61. atrGPDFileName) ;
  62. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  63. pwstrGPDFileName) ;
  64. pStatic->snapShotTable[dwI].dwNbytes = sizeof(PWSTR) ;
  65. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  66. #if defined(DEVSTUDIO) || defined(GPDCHECKER)
  67. pStatic->snapShotTable[dwI].dwFlags = SSF_REQUIRED | SSF_MAKE_STRINGPTR ;
  68. #else
  69. pStatic->snapShotTable[dwI].dwFlags = SSF_MAKE_STRINGPTR ;
  70. #endif
  71. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  72. dwI++ ;
  73. pStatic->snapShotTable[dwI].pstrKeyword = "*MasterUnits" ;
  74. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  75. atrMasterUnits) ;
  76. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  77. ptMasterUnits) ;
  78. pStatic->snapShotTable[dwI].dwNbytes = sizeof(POINT) ;
  79. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  80. pStatic->snapShotTable[dwI].dwFlags = SSF_REQUIRED ;
  81. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  82. dwI++ ;
  83. // Amanda cannot have RC IDs here.
  84. // so no atrModelNameID ;
  85. pStatic->snapShotTable[dwI].pstrKeyword = "*ModelName" ;
  86. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  87. atrModelName) ;
  88. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  89. pwstrModelName) ;
  90. pStatic->snapShotTable[dwI].dwNbytes = sizeof(PWSTR) ;
  91. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  92. pStatic->snapShotTable[dwI].dwFlags = SSF_REQUIRED | SSF_MAKE_STRINGPTR ;
  93. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  94. dwI++ ;
  95. pStatic->snapShotTable[dwI].pstrKeyword = "*PrinterType" ;
  96. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  97. atrPrinterType) ;
  98. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  99. printertype) ;
  100. pStatic->snapShotTable[dwI].dwNbytes = sizeof(PRINTERTYPE) ;
  101. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  102. pStatic->snapShotTable[dwI].dwFlags = SSF_REQUIRED ;
  103. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  104. dwI++ ;
  105. // "Include" would be here if it weren't processed
  106. // at GetToken time.
  107. pStatic->snapShotTable[dwI].pstrKeyword = "*ResourceDLL" ;
  108. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  109. atrResourceDLL) ;
  110. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  111. pwstrResourceDLL) ;
  112. pStatic->snapShotTable[dwI].dwNbytes = sizeof(PWSTR) ;
  113. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  114. pStatic->snapShotTable[dwI].dwFlags = SSF_MAKE_STRINGPTR ;
  115. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  116. dwI++ ;
  117. pStatic->snapShotTable[dwI].pstrKeyword = "*MaxCopies" ;
  118. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  119. atrMaxCopies) ;
  120. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  121. dwMaxCopies) ;
  122. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  123. pStatic->snapShotTable[dwI].dwDefaultValue = 1 ;
  124. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  125. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  126. dwI++ ;
  127. pStatic->snapShotTable[dwI].pstrKeyword = "*FontCartSlots" ;
  128. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  129. atrFontCartSlots) ;
  130. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  131. dwFontCartSlots) ;
  132. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  133. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  134. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  135. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  136. dwI++ ;
  137. pStatic->snapShotTable[dwI].pstrKeyword = "*OEMCustomData" ;
  138. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  139. atrOEMCustomData) ;
  140. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  141. pOEMCustomData) ;
  142. pStatic->snapShotTable[dwI].dwNbytes = sizeof(PBYTE) ;
  143. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  144. pStatic->snapShotTable[dwI].dwFlags = SSF_MAKE_STRINGPTR ;
  145. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  146. dwI++ ;
  147. pStatic->snapShotTable[dwI].pstrKeyword = "*OEMCustomData" ;
  148. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  149. atrOEMCustomData) ;
  150. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  151. dwOEMCustomData) ;
  152. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  153. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  154. pStatic->snapShotTable[dwI].dwFlags = SSF_STRINGLEN ;
  155. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  156. dwI++ ;
  157. pStatic->snapShotTable[dwI].pstrKeyword = "*RotateCoordinate?" ;
  158. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  159. atrRotateCoordinate) ;
  160. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  161. bRotateCoordinate) ;
  162. pStatic->snapShotTable[dwI].dwNbytes = sizeof(BOOL) ;
  163. pStatic->snapShotTable[dwI].dwDefaultValue = FALSE ;
  164. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  165. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  166. dwI++ ;
  167. pStatic->snapShotTable[dwI].pstrKeyword = "*RotateRaster?" ;
  168. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  169. atrRotateRasterData) ;
  170. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  171. bRotateRasterData) ;
  172. pStatic->snapShotTable[dwI].dwNbytes = sizeof(BOOL) ;
  173. pStatic->snapShotTable[dwI].dwDefaultValue = FALSE ;
  174. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  175. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  176. dwI++ ;
  177. pStatic->snapShotTable[dwI].pstrKeyword = "*TextCaps" ;
  178. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  179. atrTextCaps) ;
  180. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  181. liTextCaps) ;
  182. pStatic->snapShotTable[dwI].dwNbytes = sizeof(LISTINDEX) ;
  183. pStatic->snapShotTable[dwI].dwDefaultValue = END_OF_LIST ;
  184. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  185. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  186. dwI++ ;
  187. pStatic->snapShotTable[dwI].pstrKeyword = "*RotateFont?" ;
  188. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  189. atrRotateFont) ;
  190. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  191. bRotateFont) ;
  192. pStatic->snapShotTable[dwI].dwNbytes = sizeof(BOOL) ;
  193. pStatic->snapShotTable[dwI].dwDefaultValue = FALSE ;
  194. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  195. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  196. dwI++ ;
  197. pStatic->snapShotTable[dwI].pstrKeyword = "*MemoryUsage" ;
  198. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  199. atrMemoryUsage) ;
  200. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  201. liMemoryUsage) ;
  202. pStatic->snapShotTable[dwI].dwNbytes = sizeof(LISTINDEX) ;
  203. pStatic->snapShotTable[dwI].dwDefaultValue = END_OF_LIST ;
  204. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  205. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  206. dwI++ ;
  207. pStatic->snapShotTable[dwI].pstrKeyword = "*ReselectFont" ;
  208. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  209. atrReselectFont) ;
  210. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  211. liReselectFont) ;
  212. pStatic->snapShotTable[dwI].dwNbytes = sizeof(LISTINDEX) ;
  213. pStatic->snapShotTable[dwI].dwDefaultValue = END_OF_LIST ;
  214. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  215. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  216. dwI++ ;
  217. pStatic->snapShotTable[dwI].pstrKeyword = "*OEMPrintingCallbacks" ;
  218. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  219. atrOEMPrintingCallbacks) ;
  220. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  221. liOEMPrintingCallbacks) ;
  222. pStatic->snapShotTable[dwI].dwNbytes = sizeof(LISTINDEX) ;
  223. pStatic->snapShotTable[dwI].dwDefaultValue = END_OF_LIST ;
  224. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  225. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  226. dwI++ ;
  227. #if 0
  228. dead keyword
  229. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  230. atrMinSize) ;
  231. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  232. ptMinSize) ;
  233. pStatic->snapShotTable[dwI].dwNbytes = sizeof(POINT) ;
  234. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  235. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  236. // only SSF_REQUIRED for custompage;
  237. pStatic->snapShotTable[dwI].dwGIDflags = GIDF_PAGESIZE ;
  238. // pmrbd->dwSSPaperSizeMinSizeIndex = dwI ;
  239. dwI++ ;
  240. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  241. atrMaxSize) ;
  242. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  243. ptMaxSize) ;
  244. pStatic->snapShotTable[dwI].dwNbytes = sizeof(POINT) ;
  245. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  246. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  247. pStatic->snapShotTable[dwI].dwGIDflags = GIDF_PAGESIZE ;
  248. // pmrbd->dwSSPaperSizeMaxSizeIndex = dwI ;
  249. dwI++ ;
  250. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  251. atrMaxPrintableArea) ;
  252. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  253. ptMaxPrintableArea) ;
  254. pStatic->snapShotTable[dwI].dwNbytes = sizeof(POINT) ;
  255. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  256. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  257. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  258. dwI++ ;
  259. dead keyword
  260. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  261. atrRasterCaps) ;
  262. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  263. ) ;
  264. pStatic->snapShotTable[dwI].dwNbytes = sizeof(POINT) ;
  265. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  266. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  267. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  268. dwI++ ;
  269. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  270. atrMinOverlayID) ;
  271. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  272. iMinOverlayID) ;
  273. pStatic->snapShotTable[dwI].dwNbytes = sizeof(INT) ;
  274. pStatic->snapShotTable[dwI].dwDefaultValue = 1 ;
  275. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  276. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  277. dwI++ ;
  278. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  279. atrMaxOverlayID) ;
  280. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  281. iMaxOverlayID) ;
  282. pStatic->snapShotTable[dwI].dwNbytes = sizeof(INT) ;
  283. pStatic->snapShotTable[dwI].dwDefaultValue = NO_LIMIT_NUM ;
  284. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  285. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  286. dwI++ ;
  287. dead keyword
  288. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  289. atrLandscapeGrxRotation) ;
  290. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  291. dwLandscapeGrxRotation) ;
  292. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  293. pStatic->snapShotTable[dwI].dwDefaultValue = LGR_NONE ;
  294. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  295. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  296. dwI++ ;
  297. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  298. atrIncrementalDownload) ;
  299. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  300. bIncrementalDownload) ;
  301. pStatic->snapShotTable[dwI].dwNbytes = sizeof(BOOL) ;
  302. pStatic->snapShotTable[dwI].dwDefaultValue = TRUE ;
  303. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  304. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  305. dwI++ ;
  306. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  307. atrMemoryForFontsOnly) ;
  308. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  309. bMemoryForFontsOnly) ;
  310. pStatic->snapShotTable[dwI].dwNbytes = sizeof(BOOL) ;
  311. pStatic->snapShotTable[dwI].dwDefaultValue = FALSE ;
  312. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  313. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  314. dwI++ ;
  315. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  316. atrRotateFont) ;
  317. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  318. bRotateFont) ;
  319. pStatic->snapShotTable[dwI].dwNbytes = sizeof(BOOL) ;
  320. pStatic->snapShotTable[dwI].dwDefaultValue = TRUE ;
  321. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  322. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  323. dwI++ ;
  324. //-----
  325. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  326. atrRasterZeroFill) ;
  327. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  328. bRasterZeroFill) ;
  329. pStatic->snapShotTable[dwI].dwNbytes = sizeof(BOOL) ;
  330. pStatic->snapShotTable[dwI].dwDefaultValue = TRUE ;
  331. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  332. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  333. dwI++ ;
  334. dead keyword
  335. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  336. atrRestoreDefaultFont) ;
  337. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  338. bRestoreDefaultFont) ;
  339. pStatic->snapShotTable[dwI].dwNbytes = sizeof(BOOL) ;
  340. pStatic->snapShotTable[dwI].dwDefaultValue = FALSE ;
  341. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  342. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  343. dwI++ ;
  344. #endif
  345. //
  346. // Cursor Control related information
  347. //
  348. pStatic->snapShotTable[dwI].pstrKeyword = "*CursorXAfterCR" ;
  349. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  350. atrCursorXAfterCR) ;
  351. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  352. cxaftercr) ;
  353. pStatic->snapShotTable[dwI].dwNbytes = sizeof(CURSORXAFTERCR) ;
  354. pStatic->snapShotTable[dwI].dwDefaultValue = CXCR_AT_CURSOR_X_ORIGIN ;
  355. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  356. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  357. dwI++ ;
  358. pStatic->snapShotTable[dwI].pstrKeyword = "*BadCursorMoveInGrxMode" ;
  359. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  360. atrBadCursorMoveInGrxMode) ;
  361. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  362. liBadCursorMoveInGrxMode) ;
  363. pStatic->snapShotTable[dwI].dwNbytes = sizeof(LISTINDEX) ;
  364. pStatic->snapShotTable[dwI].dwDefaultValue = END_OF_LIST ;
  365. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  366. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  367. dwI++ ;
  368. pStatic->snapShotTable[dwI].pstrKeyword = "*YMoveAttributes" ;
  369. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  370. atrYMoveAttributes) ;
  371. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  372. liYMoveAttributes) ;
  373. pStatic->snapShotTable[dwI].dwNbytes = sizeof(LISTINDEX) ;
  374. pStatic->snapShotTable[dwI].dwDefaultValue = END_OF_LIST ;
  375. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  376. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  377. dwI++ ;
  378. pStatic->snapShotTable[dwI].pstrKeyword = "*MaxLineSpacing" ;
  379. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  380. atrMaxLineSpacing) ;
  381. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  382. dwMaxLineSpacing) ;
  383. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  384. pStatic->snapShotTable[dwI].dwDefaultValue = NO_LIMIT_NUM ;
  385. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  386. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  387. dwI++ ;
  388. pStatic->snapShotTable[dwI].pstrKeyword = "*UseSpaceForXMove?" ;
  389. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  390. atrbUseSpaceForXMove) ;
  391. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  392. bUseSpaceForXMove) ;
  393. pStatic->snapShotTable[dwI].dwNbytes = sizeof(BOOL) ;
  394. pStatic->snapShotTable[dwI].dwDefaultValue = TRUE ;
  395. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  396. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  397. dwI++ ;
  398. pStatic->snapShotTable[dwI].pstrKeyword = "*AbsXMovesRightOnly?" ;
  399. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  400. atrbAbsXMovesRightOnly) ;
  401. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  402. bAbsXMovesRightOnly) ;
  403. pStatic->snapShotTable[dwI].dwNbytes = sizeof(BOOL) ;
  404. pStatic->snapShotTable[dwI].dwDefaultValue = FALSE;
  405. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  406. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  407. dwI++ ;
  408. pStatic->snapShotTable[dwI].pstrKeyword = "*EjectPageWithFF?" ;
  409. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  410. atrEjectPageWithFF) ;
  411. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  412. bEjectPageWithFF) ;
  413. pStatic->snapShotTable[dwI].dwNbytes = sizeof(BOOL) ;
  414. pStatic->snapShotTable[dwI].dwDefaultValue = FALSE ;
  415. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  416. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  417. dwI++ ;
  418. pStatic->snapShotTable[dwI].pstrKeyword = "*XMoveThreshold" ;
  419. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  420. atrXMoveThreshold) ;
  421. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  422. dwXMoveThreshold) ;
  423. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  424. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  425. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  426. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  427. dwI++ ;
  428. pStatic->snapShotTable[dwI].pstrKeyword = "*YMoveThreshold" ;
  429. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  430. atrYMoveThreshold) ;
  431. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  432. dwYMoveThreshold) ;
  433. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  434. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  435. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  436. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  437. dwI++ ;
  438. pStatic->snapShotTable[dwI].pstrKeyword = "*XMoveUnit" ;
  439. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  440. atrXMoveUnits) ;
  441. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  442. ptDeviceUnits.x) ;
  443. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  444. pStatic->snapShotTable[dwI].dwDefaultValue = 1 ;
  445. pStatic->snapShotTable[dwI].dwFlags = 0 ; // Required if
  446. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  447. dwI++ ;
  448. pStatic->snapShotTable[dwI].pstrKeyword = "*YMoveUnit" ;
  449. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  450. atrYMoveUnits) ;
  451. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  452. ptDeviceUnits.y) ;
  453. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  454. pStatic->snapShotTable[dwI].dwDefaultValue = 1 ;
  455. pStatic->snapShotTable[dwI].dwFlags = 0 ; // Required if
  456. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  457. dwI++ ;
  458. pStatic->snapShotTable[dwI].pstrKeyword = "*LineSpacingMoveUnit" ;
  459. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  460. atrLineSpacingMoveUnit) ;
  461. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  462. dwLineSpacingMoveUnit) ;
  463. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  464. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  465. pStatic->snapShotTable[dwI].dwFlags = 0 ; // unidrv will assume a default value.
  466. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  467. dwI++ ;
  468. //
  469. // Color related information
  470. //
  471. pStatic->snapShotTable[dwI].pstrKeyword = "*ChangeColorModeOnPage?" ;
  472. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  473. atrChangeColorMode) ;
  474. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  475. bChangeColorMode) ;
  476. pStatic->snapShotTable[dwI].dwNbytes = sizeof(BOOL) ;
  477. pStatic->snapShotTable[dwI].dwDefaultValue = FALSE ;
  478. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  479. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  480. dwI++ ;
  481. pStatic->snapShotTable[dwI].pstrKeyword = "*MagentaInCyanDye" ;
  482. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  483. atrMagentaInCyanDye) ;
  484. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  485. dwMagentaInCyanDye) ;
  486. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  487. pStatic->snapShotTable[dwI].dwDefaultValue = UNUSED_ITEM ;
  488. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  489. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  490. dwI++ ;
  491. pStatic->snapShotTable[dwI].pstrKeyword = "*YellowInCyanDye" ;
  492. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  493. atrYellowInCyanDye) ;
  494. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  495. dwYellowInCyanDye) ;
  496. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  497. pStatic->snapShotTable[dwI].dwDefaultValue = UNUSED_ITEM ;
  498. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  499. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  500. dwI++ ;
  501. pStatic->snapShotTable[dwI].pstrKeyword = "*CyanInMagentaDye" ;
  502. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  503. atrCyanInMagentaDye) ;
  504. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  505. dwCyanInMagentaDye) ;
  506. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  507. pStatic->snapShotTable[dwI].dwDefaultValue = UNUSED_ITEM ;
  508. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  509. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  510. dwI++ ;
  511. pStatic->snapShotTable[dwI].pstrKeyword = "*YellowInMagentaDye" ;
  512. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  513. atrYellowInMagentaDye) ;
  514. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  515. dwYellowInMagentaDye) ;
  516. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  517. pStatic->snapShotTable[dwI].dwDefaultValue = UNUSED_ITEM ;
  518. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  519. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  520. dwI++ ;
  521. pStatic->snapShotTable[dwI].pstrKeyword = "*CyanInYellowDye" ;
  522. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  523. atrCyanInYellowDye) ;
  524. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  525. dwCyanInYellowDye) ;
  526. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  527. pStatic->snapShotTable[dwI].dwDefaultValue = UNUSED_ITEM ;
  528. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  529. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  530. dwI++ ;
  531. pStatic->snapShotTable[dwI].pstrKeyword = "*MagentaInYellowDye" ;
  532. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  533. atrMagentaInYellowDye) ;
  534. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  535. dwMagentaInYellowDye) ;
  536. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  537. pStatic->snapShotTable[dwI].dwDefaultValue = UNUSED_ITEM ;
  538. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  539. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  540. dwI++ ;
  541. // BUG_BUG! to be deleted: following 3 pallete entries.
  542. // but Alvin uses this entry as a secret testing mechanism
  543. // see ifdef TESTBAND for example.
  544. pStatic->snapShotTable[dwI].pstrKeyword = "*MaxNumPalettes" ;
  545. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  546. atrMaxNumPalettes) ;
  547. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  548. dwMaxNumPalettes) ;
  549. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  550. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  551. pStatic->snapShotTable[dwI].dwFlags = 0;
  552. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  553. dwI++ ;
  554. #if 0
  555. pStatic->snapShotTable[dwI].pstrKeyword = "*PaletteSizes" ;
  556. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  557. atrPaletteSizes) ;
  558. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  559. liPaletteSizes) ;
  560. pStatic->snapShotTable[dwI].dwNbytes = sizeof(LISTINDEX) ;
  561. pStatic->snapShotTable[dwI].dwDefaultValue = END_OF_LIST ;
  562. pStatic->snapShotTable[dwI].dwFlags = 0 ; // conditionally req.
  563. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  564. dwI++ ;
  565. pStatic->snapShotTable[dwI].pstrKeyword = "*PaletteScope" ;
  566. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  567. atrPaletteScope) ;
  568. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  569. liPaletteScope) ;
  570. pStatic->snapShotTable[dwI].dwNbytes = sizeof(LISTINDEX) ;
  571. pStatic->snapShotTable[dwI].dwDefaultValue = END_OF_LIST ;
  572. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  573. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  574. dwI++ ;
  575. #endif
  576. //
  577. // Raster related information
  578. //
  579. pStatic->snapShotTable[dwI].pstrKeyword = "*OutputDataFormat" ;
  580. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  581. atrOutputDataFormat) ;
  582. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  583. outputdataformat) ;
  584. pStatic->snapShotTable[dwI].dwNbytes = sizeof(OUTPUTDATAFORMAT) ;
  585. pStatic->snapShotTable[dwI].dwDefaultValue = ODF_H_BYTE ;
  586. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  587. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  588. dwI++ ;
  589. pStatic->snapShotTable[dwI].pstrKeyword = "*OptimizeLeftBound?" ;
  590. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  591. atrOptimizeLeftBound) ;
  592. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  593. bOptimizeLeftBound) ;
  594. pStatic->snapShotTable[dwI].dwNbytes = sizeof(BOOL) ;
  595. pStatic->snapShotTable[dwI].dwDefaultValue = FALSE ;
  596. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  597. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  598. dwI++ ;
  599. pStatic->snapShotTable[dwI].pstrKeyword = "*StripBlanks" ;
  600. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  601. atrStripBlanks) ;
  602. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  603. liStripBlanks) ;
  604. pStatic->snapShotTable[dwI].dwNbytes = sizeof(LISTINDEX) ;
  605. pStatic->snapShotTable[dwI].dwDefaultValue = END_OF_LIST ;
  606. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  607. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  608. dwI++ ;
  609. pStatic->snapShotTable[dwI].pstrKeyword = "*RasterSendAllData?" ;
  610. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  611. atrRasterSendAllData) ;
  612. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  613. bRasterSendAllData) ;
  614. pStatic->snapShotTable[dwI].dwNbytes = sizeof(BOOL) ;
  615. pStatic->snapShotTable[dwI].dwDefaultValue = FALSE ;
  616. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  617. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  618. dwI++ ;
  619. pStatic->snapShotTable[dwI].pstrKeyword = "*CursorXAfterSendBlockData" ;
  620. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  621. atrCursorXAfterSendBlockData) ;
  622. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  623. cxafterblock) ;
  624. pStatic->snapShotTable[dwI].dwNbytes = sizeof(CURSORXAFTERSENDBLOCKDATA) ;
  625. pStatic->snapShotTable[dwI].dwDefaultValue = CXSBD_AT_GRXDATA_END ;
  626. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  627. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  628. dwI++ ;
  629. pStatic->snapShotTable[dwI].pstrKeyword = "*CursorYAfterSendBlockData" ;
  630. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  631. atrCursorYAfterSendBlockData) ;
  632. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  633. cyafterblock) ;
  634. pStatic->snapShotTable[dwI].dwNbytes = sizeof(CURSORYAFTERSENDBLOCKDATA) ;
  635. pStatic->snapShotTable[dwI].dwDefaultValue = CYSBD_NO_MOVE ;
  636. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  637. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  638. dwI++ ;
  639. pStatic->snapShotTable[dwI].pstrKeyword = "*MirrorRasterByte?" ;
  640. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  641. atrMirrorRasterByte) ;
  642. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  643. bMirrorRasterByte) ;
  644. pStatic->snapShotTable[dwI].dwNbytes = sizeof(BOOL) ;
  645. pStatic->snapShotTable[dwI].dwDefaultValue = FALSE ;
  646. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  647. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  648. dwI++ ;
  649. pStatic->snapShotTable[dwI].pstrKeyword = "*MirrorRasterPage?" ;
  650. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  651. atrMirrorRasterPage) ;
  652. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  653. bMirrorRasterPage) ;
  654. pStatic->snapShotTable[dwI].dwNbytes = sizeof(BOOL) ;
  655. pStatic->snapShotTable[dwI].dwDefaultValue = FALSE ;
  656. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  657. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  658. dwI++ ;
  659. pStatic->snapShotTable[dwI].pstrKeyword = "*UseExpColorSelectCmd?" ;
  660. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  661. atrUseColorSelectCmd) ;
  662. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  663. bUseCmdSendBlockDataForColor) ;
  664. pStatic->snapShotTable[dwI].dwNbytes = sizeof(BOOL) ;
  665. pStatic->snapShotTable[dwI].dwDefaultValue = FALSE ;
  666. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  667. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  668. dwI++ ;
  669. pStatic->snapShotTable[dwI].pstrKeyword = "*MoveToX0BeforeSetColor?" ;
  670. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  671. atrMoveToX0BeforeColor) ;
  672. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  673. bMoveToX0BeforeColor) ;
  674. pStatic->snapShotTable[dwI].dwNbytes = sizeof(BOOL) ;
  675. pStatic->snapShotTable[dwI].dwDefaultValue = FALSE ;
  676. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  677. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  678. dwI++ ;
  679. pStatic->snapShotTable[dwI].pstrKeyword = "*EnableGDIColorMapping?" ;
  680. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  681. atrEnableGDIColorMapping) ;
  682. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  683. bEnableGDIColorMapping) ;
  684. pStatic->snapShotTable[dwI].dwNbytes = sizeof(BOOL) ;
  685. pStatic->snapShotTable[dwI].dwDefaultValue = FALSE ;
  686. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  687. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  688. dwI++ ;
  689. pStatic->snapShotTable[dwI].pstrKeyword = "*SendMultipleRows?" ;
  690. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  691. atrSendMultipleRows) ;
  692. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  693. bSendMultipleRows) ;
  694. pStatic->snapShotTable[dwI].dwNbytes = sizeof(BOOL) ;
  695. pStatic->snapShotTable[dwI].dwDefaultValue = FALSE ;
  696. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  697. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  698. dwI++ ;
  699. //
  700. //Font Information
  701. //Device Font Specific.
  702. //
  703. pStatic->snapShotTable[dwI].pstrKeyword = "*DeviceFonts" ;
  704. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  705. atrDeviceFontsList ) ;
  706. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  707. liDeviceFontList) ;
  708. pStatic->snapShotTable[dwI].dwNbytes = sizeof(LISTINDEX) ;
  709. pStatic->snapShotTable[dwI].dwDefaultValue = END_OF_LIST ;
  710. pStatic->snapShotTable[dwI].dwFlags = SSF_LIST | SSF_FONTID ;
  711. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  712. dwI++ ;
  713. pStatic->snapShotTable[dwI].pstrKeyword = "*DefaultFont" ;
  714. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  715. atrDefaultFont) ;
  716. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  717. dwDefaultFont) ;
  718. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  719. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  720. pStatic->snapShotTable[dwI].dwFlags = SSF_FONTID ; // required if device fonts
  721. // are supported.
  722. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  723. dwI++ ;
  724. pStatic->snapShotTable[dwI].pstrKeyword = "*MaxFontUsePerPage" ;
  725. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  726. atrMaxFontUsePerPage) ;
  727. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  728. dwMaxFontUsePerPage) ;
  729. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  730. pStatic->snapShotTable[dwI].dwDefaultValue = NO_LIMIT_NUM ;
  731. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  732. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  733. dwI++ ;
  734. pStatic->snapShotTable[dwI].pstrKeyword = "*DefaultCTT" ;
  735. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  736. atrDefaultCTT) ;
  737. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  738. dwDefaultCTT) ;
  739. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  740. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  741. pStatic->snapShotTable[dwI].dwFlags = SSF_OTHER_RESID ;
  742. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  743. dwI++ ;
  744. pStatic->snapShotTable[dwI].pstrKeyword = "*LookaheadRegion" ;
  745. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  746. atrLookaheadRegion) ;
  747. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  748. dwLookaheadRegion) ;
  749. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  750. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  751. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  752. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  753. dwI++ ;
  754. pStatic->snapShotTable[dwI].pstrKeyword = "*TextYOffset" ;
  755. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  756. atrTextYOffset) ;
  757. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  758. iTextYOffset) ;
  759. pStatic->snapShotTable[dwI].dwNbytes = sizeof(INT) ;
  760. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  761. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  762. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  763. dwI++ ;
  764. pStatic->snapShotTable[dwI].pstrKeyword = "*CharPosition" ;
  765. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  766. atrCharPosition) ;
  767. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  768. charpos) ;
  769. pStatic->snapShotTable[dwI].dwNbytes = sizeof(CHARPOSITION) ;
  770. pStatic->snapShotTable[dwI].dwDefaultValue = CP_UPPERLEFT ;
  771. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  772. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  773. dwI++ ;
  774. //
  775. //Font Substitution.
  776. //
  777. pStatic->snapShotTable[dwI].pstrKeyword = "*TTFSEnabled?" ;
  778. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  779. atrTTFSEnabled ) ;
  780. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  781. bTTFSEnabled) ;
  782. pStatic->snapShotTable[dwI].dwNbytes = sizeof(BOOL) ;
  783. pStatic->snapShotTable[dwI].dwDefaultValue = FALSE ;
  784. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  785. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  786. dwI++ ;
  787. //
  788. //Font Download
  789. //
  790. pStatic->snapShotTable[dwI].pstrKeyword = "*MinFontID" ;
  791. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  792. atrMinFontID) ;
  793. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  794. dwMinFontID) ;
  795. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  796. pStatic->snapShotTable[dwI].dwDefaultValue = 1 ;
  797. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  798. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  799. dwI++ ;
  800. pStatic->snapShotTable[dwI].pstrKeyword = "*MaxFontID" ;
  801. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  802. atrMaxFontID) ;
  803. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  804. dwMaxFontID) ;
  805. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  806. pStatic->snapShotTable[dwI].dwDefaultValue = 65535 ;
  807. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  808. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  809. dwI++ ;
  810. pStatic->snapShotTable[dwI].pstrKeyword = "*MaxNumDownFonts" ;
  811. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  812. atrMaxNumDownFonts) ;
  813. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  814. dwMaxNumDownFonts) ;
  815. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  816. pStatic->snapShotTable[dwI].dwDefaultValue = NO_LIMIT_NUM ;
  817. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  818. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  819. dwI++ ;
  820. pStatic->snapShotTable[dwI].pstrKeyword = "*DLSymbolSet" ;
  821. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  822. atrDLSymbolSet) ;
  823. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  824. dlsymbolset) ;
  825. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DLSYMBOLSET) ;
  826. pStatic->snapShotTable[dwI].dwDefaultValue = UNUSED_ITEM ;
  827. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  828. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  829. dwI++ ;
  830. pStatic->snapShotTable[dwI].pstrKeyword = "*MinGlyphID" ;
  831. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  832. atrMinGlyphID) ;
  833. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  834. dwMinGlyphID) ;
  835. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  836. pStatic->snapShotTable[dwI].dwDefaultValue = 32 ;
  837. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  838. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  839. dwI++ ;
  840. pStatic->snapShotTable[dwI].pstrKeyword = "*MaxGlyphID" ;
  841. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  842. atrMaxGlyphID) ;
  843. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  844. dwMaxGlyphID) ;
  845. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  846. pStatic->snapShotTable[dwI].dwDefaultValue = 255 ;
  847. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  848. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  849. dwI++ ;
  850. /****
  851. * Moved to SSTI_UPDATE_GLOBALS section
  852. *
  853. pStatic->snapShotTable[dwI].pstrKeyword = "*FontFormat" ;
  854. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  855. atrFontFormat) ;
  856. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  857. fontformat) ;
  858. pStatic->snapShotTable[dwI].dwNbytes = sizeof(FONTFORMAT) ;
  859. pStatic->snapShotTable[dwI].dwDefaultValue = UNUSED_ITEM ;
  860. // UNUSED_ITEM must be used as default - used by other code.
  861. pStatic->snapShotTable[dwI].dwFlags = 0 ; // required if the printer
  862. // supports font downloading.
  863. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  864. dwI++ ;
  865. *
  866. ***/
  867. //
  868. // font simulation
  869. //
  870. pStatic->snapShotTable[dwI].pstrKeyword = "*DiffFontsPerByteMode?" ;
  871. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  872. atrDiffFontsPerByteMode) ;
  873. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  874. bDiffFontsPerByteMode) ;
  875. pStatic->snapShotTable[dwI].dwNbytes = sizeof(BOOL) ;
  876. pStatic->snapShotTable[dwI].dwDefaultValue = FALSE ;
  877. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  878. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  879. dwI++ ;
  880. //
  881. // rectangle area fill
  882. //
  883. pStatic->snapShotTable[dwI].pstrKeyword = "*CursorXAfterRectFill" ;
  884. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  885. atrCursorXAfterRectFill) ;
  886. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  887. cxafterfill) ;
  888. pStatic->snapShotTable[dwI].dwNbytes = sizeof(CURSORXAFTERRECTFILL) ;
  889. pStatic->snapShotTable[dwI].dwDefaultValue = CXARF_AT_RECT_X_ORIGIN ;
  890. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  891. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  892. dwI++ ;
  893. pStatic->snapShotTable[dwI].pstrKeyword = "*CursorYAfterRectFill" ;
  894. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  895. atrCursorYAfterRectFill) ;
  896. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  897. cyafterfill) ;
  898. pStatic->snapShotTable[dwI].dwNbytes = sizeof(CURSORYAFTERRECTFILL) ;
  899. pStatic->snapShotTable[dwI].dwDefaultValue = CYARF_AT_RECT_Y_ORIGIN ;
  900. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  901. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  902. dwI++ ;
  903. pStatic->snapShotTable[dwI].pstrKeyword = "*MinGrayFill" ;
  904. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  905. atrMinGrayFill) ;
  906. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  907. dwMinGrayFill) ;
  908. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  909. pStatic->snapShotTable[dwI].dwDefaultValue = 1 ;
  910. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  911. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  912. dwI++ ;
  913. pStatic->snapShotTable[dwI].pstrKeyword = "*MaxGrayFill" ;
  914. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  915. atrMaxGrayFill) ;
  916. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  917. dwMaxGrayFill) ;
  918. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  919. pStatic->snapShotTable[dwI].dwDefaultValue = 100 ;
  920. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  921. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  922. dwI++ ;
  923. // end of SSTI_GLOBALS section
  924. pStatic->snapShotTable[dwI].dwNbytes = 0 ;
  925. dwI++ ;
  926. // beginning of SSTI_UPDATE_GLOBALS section
  927. pStatic->snapShotTable[dwI].pstrKeyword = "*MaxMultipleRowBytes" ;
  928. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  929. atrMaxMultipleRowBytes) ;
  930. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  931. dwMaxMultipleRowBytes) ;
  932. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  933. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  934. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  935. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  936. dwI++ ;
  937. pStatic->snapShotTable[dwI].pstrKeyword = "*TextHalftoneThreshold" ;
  938. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  939. atrTextHalftoneThreshold) ;
  940. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  941. dwTextHalftoneThreshold) ;
  942. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  943. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  944. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  945. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  946. dwI++ ;
  947. pStatic->snapShotTable[dwI].pstrKeyword = "*FontFormat" ;
  948. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  949. atrFontFormat) ;
  950. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(GLOBALS,
  951. fontformat) ;
  952. pStatic->snapShotTable[dwI].dwNbytes = sizeof(FONTFORMAT) ;
  953. pStatic->snapShotTable[dwI].dwDefaultValue = UNUSED_ITEM ;
  954. // UNUSED_ITEM must be used as default - used by other code.
  955. pStatic->snapShotTable[dwI].dwFlags = 0 ; // required if the printer
  956. // supports font downloading.
  957. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  958. dwI++ ;
  959. // end of SSTI_UPDATE_GLOBALS section
  960. pStatic->snapShotTable[dwI].dwNbytes = 0 ;
  961. dwI++ ;
  962. // beginning of SSTI_UIINFO section
  963. pStatic->snapShotTable[dwI].pstrKeyword = "*ResourceDLL" ;
  964. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  965. atrResourceDLL) ;
  966. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(UIINFO,
  967. loResourceName) ;
  968. pStatic->snapShotTable[dwI].dwNbytes = sizeof(PTRREF) ;
  969. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  970. pStatic->snapShotTable[dwI].dwFlags = SSF_OFFSETONLY ;
  971. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  972. dwI++ ;
  973. pStatic->snapShotTable[dwI].pstrKeyword = "*rcPersonalityID" ;
  974. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  975. atrRcPersonalityID) ;
  976. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(UIINFO,
  977. loPersonality) ;
  978. pStatic->snapShotTable[dwI].dwNbytes = sizeof(RESREF) ;
  979. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  980. pStatic->snapShotTable[dwI].dwFlags = SSF_SETRCID | SSF_STRINGID;
  981. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  982. dwI++ ;
  983. pStatic->snapShotTable[dwI].pstrKeyword = "*Personality" ;
  984. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  985. atrPersonality) ;
  986. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(UIINFO,
  987. loPersonality) ;
  988. pStatic->snapShotTable[dwI].dwNbytes = sizeof(PTRREF) ;
  989. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  990. pStatic->snapShotTable[dwI].dwFlags = SSF_DONT_USEDEFAULT |
  991. SSF_OFFSETONLY | SSF_NON_LOCALIZABLE;
  992. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  993. dwI++ ;
  994. // special processing dwSpecVersion - done.
  995. pStatic->snapShotTable[dwI].pstrKeyword = "*MaxCopies" ;
  996. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  997. atrMaxCopies) ;
  998. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(UIINFO,
  999. dwMaxCopies) ;
  1000. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  1001. pStatic->snapShotTable[dwI].dwDefaultValue = 1 ;
  1002. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  1003. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  1004. dwI++ ;
  1005. pStatic->snapShotTable[dwI].pstrKeyword = "*rcPrinterIconID" ;
  1006. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  1007. atrPrinterIcon) ; // new keyword.
  1008. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(UIINFO,
  1009. loPrinterIcon) ;
  1010. pStatic->snapShotTable[dwI].dwNbytes = sizeof(RESREF) ;
  1011. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  1012. pStatic->snapShotTable[dwI].dwFlags = SSF_ICONID ;
  1013. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  1014. dwI++ ;
  1015. pStatic->snapShotTable[dwI].pstrKeyword = "*FontCartSlots" ;
  1016. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  1017. atrFontCartSlots) ;
  1018. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(UIINFO,
  1019. dwCartridgeSlotCount) ;
  1020. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  1021. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  1022. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  1023. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  1024. dwI++ ;
  1025. pStatic->snapShotTable[dwI].pstrKeyword = "*HelpFile" ;
  1026. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  1027. atrHelpFile) ;
  1028. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(UIINFO,
  1029. loHelpFileName) ;
  1030. pStatic->snapShotTable[dwI].dwNbytes = sizeof(PTRREF) ;
  1031. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  1032. pStatic->snapShotTable[dwI].dwFlags = SSF_OFFSETONLY ;
  1033. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  1034. dwI++ ;
  1035. pStatic->snapShotTable[dwI].pstrKeyword = "*MasterUnits" ;
  1036. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  1037. atrMasterUnits) ;
  1038. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(UIINFO,
  1039. ptMasterUnits) ;
  1040. pStatic->snapShotTable[dwI].dwNbytes = sizeof(POINT) ;
  1041. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  1042. pStatic->snapShotTable[dwI].dwFlags = SSF_REQUIRED ;
  1043. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  1044. dwI++ ;
  1045. pStatic->snapShotTable[dwI].pstrKeyword = "*PrintRate" ;
  1046. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  1047. atrPrintRate) ;
  1048. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(UIINFO,
  1049. dwPrintRate) ;
  1050. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  1051. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  1052. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  1053. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  1054. dwI++ ;
  1055. pStatic->snapShotTable[dwI].pstrKeyword = "*PrintRateUnit" ;
  1056. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  1057. atrPrintRateUnit) ;
  1058. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(UIINFO,
  1059. dwPrintRateUnit) ;
  1060. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  1061. pStatic->snapShotTable[dwI].dwDefaultValue = INVALID_INDEX ;
  1062. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  1063. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  1064. dwI++ ;
  1065. pStatic->snapShotTable[dwI].pstrKeyword = "*PrintRatePPM" ;
  1066. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  1067. atrPrintRatePPM) ;
  1068. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(UIINFO,
  1069. dwPrintRatePPM) ;
  1070. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  1071. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  1072. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  1073. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  1074. dwI++ ;
  1075. pStatic->snapShotTable[dwI].pstrKeyword = "*LETTER_SIZE_EXISTS? synthesized" ;
  1076. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  1077. atrLetterSizeExists) ;
  1078. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(UIINFO,
  1079. dwFlags) ;
  1080. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  1081. pStatic->snapShotTable[dwI].dwDefaultValue = FLAG_LETTER_SIZE_EXISTS ;
  1082. pStatic->snapShotTable[dwI].dwFlags = SSF_BITFIELD_DEF_FALSE ;
  1083. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  1084. dwI++ ;
  1085. pStatic->snapShotTable[dwI].pstrKeyword = "*A4_SIZE_EXISTS? synthesized" ;
  1086. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  1087. atrA4SizeExists) ;
  1088. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(UIINFO,
  1089. dwFlags) ;
  1090. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  1091. pStatic->snapShotTable[dwI].dwDefaultValue = FLAG_A4_SIZE_EXISTS ;
  1092. pStatic->snapShotTable[dwI].dwFlags = SSF_BITFIELD_DEF_FALSE ;
  1093. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  1094. dwI++ ;
  1095. // end of SSTI_UIINFO section
  1096. pStatic->snapShotTable[dwI].dwNbytes = 0 ;
  1097. dwI++ ;
  1098. // beginning of SSTI_UPDATE_UIINFO section
  1099. pStatic->snapShotTable[dwI].pstrKeyword = "*OutputOrderReversed? (global)" ;
  1100. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  1101. atrOutputOrderReversed) ;
  1102. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(UIINFO,
  1103. dwFlags) ;
  1104. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  1105. pStatic->snapShotTable[dwI].dwDefaultValue = FLAG_REVERSE_PRINT ;
  1106. pStatic->snapShotTable[dwI].dwFlags = SSF_BITFIELD_DEF_FALSE ;
  1107. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  1108. dwI++ ;
  1109. pStatic->snapShotTable[dwI].pstrKeyword = "*ReverseBandOrderForEvenPages?" ;
  1110. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  1111. atrReverseBandOrderForEvenPages) ;
  1112. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(UIINFO,
  1113. dwFlags) ;
  1114. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  1115. pStatic->snapShotTable[dwI].dwDefaultValue = FLAG_REVERSE_BAND_ORDER ;
  1116. pStatic->snapShotTable[dwI].dwFlags = SSF_BITFIELD_DEF_FALSE ;
  1117. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  1118. dwI++ ;
  1119. pStatic->snapShotTable[dwI].pstrKeyword = "*DraftQualitySettings" ;
  1120. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  1121. atrDraftQualitySettings) ;
  1122. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(UIINFO,
  1123. liDraftQualitySettings) ;
  1124. pStatic->snapShotTable[dwI].dwNbytes = sizeof(LISTINDEX) ;
  1125. pStatic->snapShotTable[dwI].dwDefaultValue = END_OF_LIST ;
  1126. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  1127. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  1128. dwI++ ;
  1129. pStatic->snapShotTable[dwI].pstrKeyword = "*BetterQualitySettings" ;
  1130. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  1131. atrBetterQualitySettings) ;
  1132. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(UIINFO,
  1133. liBetterQualitySettings) ;
  1134. pStatic->snapShotTable[dwI].dwNbytes = sizeof(LISTINDEX) ;
  1135. pStatic->snapShotTable[dwI].dwDefaultValue = END_OF_LIST ;
  1136. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  1137. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  1138. dwI++ ;
  1139. pStatic->snapShotTable[dwI].pstrKeyword = "*BestQualitySettings" ;
  1140. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  1141. atrBestQualitySettings) ;
  1142. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(UIINFO,
  1143. liBestQualitySettings) ;
  1144. pStatic->snapShotTable[dwI].dwNbytes = sizeof(LISTINDEX) ;
  1145. pStatic->snapShotTable[dwI].dwDefaultValue = END_OF_LIST ;
  1146. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  1147. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  1148. dwI++ ;
  1149. pStatic->snapShotTable[dwI].pstrKeyword = "*DefaultQuality" ;
  1150. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  1151. atrDefaultQuality) ;
  1152. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(UIINFO,
  1153. defaultQuality) ;
  1154. pStatic->snapShotTable[dwI].dwNbytes = sizeof(QUALITYSETTING) ;
  1155. pStatic->snapShotTable[dwI].dwDefaultValue = QS_BEST ;
  1156. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  1157. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  1158. dwI++ ;
  1159. pStatic->snapShotTable[dwI].pstrKeyword = "*ChangeColorModeOnDoc?" ;
  1160. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(GLOBALATTRIB,
  1161. atrChangeColorModeDoc) ;
  1162. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(UIINFO,
  1163. bChangeColorModeOnDoc) ;
  1164. pStatic->snapShotTable[dwI].dwNbytes = sizeof(BOOL) ;
  1165. pStatic->snapShotTable[dwI].dwDefaultValue = TRUE ;
  1166. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  1167. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  1168. dwI++ ;
  1169. // end of SSTI_UPDATE_UIINFO section
  1170. return(dwI) ;
  1171. }
  1172. DWORD DwInitSnapShotTable2(
  1173. PBYTE pubnRaw,
  1174. DWORD dwI)
  1175. {
  1176. PSTATICFIELDS pStatic ;
  1177. // PMINIRAWBINARYDATA pmrbd ;
  1178. pStatic = (PSTATICFIELDS)pubnRaw ;
  1179. if(!pStatic->snapShotTable)
  1180. return(0) ; // should already be initialized!
  1181. // end of SSTI_UPDATE_UIINFO section
  1182. pStatic->snapShotTable[dwI].dwNbytes = 0 ;
  1183. dwI++ ;
  1184. // beginning of SSTI_FEATURES section
  1185. // note: dwGID and dwOptionSize are handled directly.
  1186. pStatic->snapShotTable[dwI].pstrKeyword = "*Priority - synthesized" ;
  1187. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  1188. atrPriority) ;
  1189. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(FEATURE,
  1190. dwPriority) ;
  1191. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  1192. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  1193. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  1194. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  1195. dwI++ ;
  1196. pStatic->snapShotTable[dwI].pstrKeyword = "*FeatureType" ;
  1197. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  1198. atrFeatureType) ;
  1199. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(FEATURE,
  1200. dwFeatureType) ;
  1201. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  1202. pStatic->snapShotTable[dwI].dwDefaultValue = FT_DOCPROPERTY ;
  1203. // actually is required, but is optional for predefined GIDs.
  1204. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  1205. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  1206. pStatic->dwSSFeatureTypeIndex = dwI ; // DO NOT CUT AND PASTE !!!!
  1207. dwI++ ;
  1208. pStatic->snapShotTable[dwI].pstrKeyword = "*ConcealFromUI?" ;
  1209. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  1210. atrConcealFromUI) ;
  1211. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(FEATURE,
  1212. dwFlags) ;
  1213. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  1214. pStatic->snapShotTable[dwI].dwDefaultValue = FEATURE_FLAG_NOUI ;
  1215. pStatic->snapShotTable[dwI].dwFlags = SSF_BITFIELD_DEF_FALSE ;
  1216. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  1217. dwI++ ;
  1218. pStatic->snapShotTable[dwI].pstrKeyword = "*UpdateQualityMacro?" ;
  1219. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  1220. atrUpdateQualityMacro) ;
  1221. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(FEATURE,
  1222. dwFlags) ;
  1223. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  1224. pStatic->snapShotTable[dwI].dwDefaultValue = FEATURE_FLAG_UPDATESNAPSHOT ;
  1225. pStatic->snapShotTable[dwI].dwFlags = SSF_BITFIELD_DEF_FALSE ;
  1226. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  1227. dwI++ ;
  1228. pStatic->snapShotTable[dwI].pstrKeyword = "*rcNameID (Fea)" ;
  1229. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  1230. atrFeaRcNameID) ;
  1231. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(FEATURE,
  1232. loDisplayName) ;
  1233. pStatic->snapShotTable[dwI].dwNbytes = sizeof(RESREF) ;
  1234. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ; // Use this if not found
  1235. pStatic->snapShotTable[dwI].dwFlags = SSF_SETRCID | SSF_STRINGID;
  1236. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  1237. dwI++ ;
  1238. pStatic->snapShotTable[dwI].pstrKeyword = "*Name (Fea)" ;
  1239. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  1240. atrFeaDisplayName) ;
  1241. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(FEATURE,
  1242. loDisplayName) ;
  1243. pStatic->snapShotTable[dwI].dwNbytes = sizeof(RESREF) ;
  1244. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  1245. pStatic->snapShotTable[dwI].dwFlags = SSF_DONT_USEDEFAULT |
  1246. SSF_FAILIFZERO | SSF_OFFSETONLY | SSF_NON_LOCALIZABLE ;
  1247. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  1248. dwI++ ;
  1249. pStatic->snapShotTable[dwI].pstrKeyword = "*HelpIndex (Fea)" ;
  1250. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  1251. atrFeaHelpIndex) ;
  1252. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(FEATURE,
  1253. iHelpIndex) ;
  1254. pStatic->snapShotTable[dwI].dwNbytes = sizeof(INT) ;
  1255. pStatic->snapShotTable[dwI].dwDefaultValue = UNUSED_ITEM ;
  1256. pStatic->snapShotTable[dwI].dwFlags = SSF_OTHER_RESID ;
  1257. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  1258. dwI++ ;
  1259. pStatic->snapShotTable[dwI].pstrKeyword = "*FeaKeyWord - Synthesized" ;
  1260. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  1261. atrFeaKeyWord) ;
  1262. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(FEATURE,
  1263. loKeywordName) ;
  1264. pStatic->snapShotTable[dwI].dwNbytes = sizeof(PTRREF) ;
  1265. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  1266. pStatic->snapShotTable[dwI].dwFlags = SSF_REQUIRED | SSF_OFFSETONLY ;
  1267. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  1268. dwI++ ;
  1269. pStatic->snapShotTable[dwI].pstrKeyword = "*UIType" ;
  1270. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  1271. atrUIType) ;
  1272. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(FEATURE,
  1273. dwUIType) ;
  1274. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  1275. pStatic->snapShotTable[dwI].dwDefaultValue = UIT_PICKONE ;
  1276. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  1277. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  1278. dwI++ ;
  1279. // end of SSTI_FEATURES section
  1280. pStatic->snapShotTable[dwI].dwNbytes = 0 ;
  1281. dwI++ ;
  1282. // beginning of SSTI_UPDATE_FEATURES section
  1283. pStatic->snapShotTable[dwI].pstrKeyword = "*DefaultOption" ;
  1284. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  1285. atrDefaultOption) ;
  1286. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(FEATURE,
  1287. dwDefaultOptIndex) ;
  1288. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  1289. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  1290. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  1291. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  1292. pStatic->dwSSdefaultOptionIndex = dwI ;
  1293. dwI++ ;
  1294. pStatic->snapShotTable[dwI].pstrKeyword = "*rcIconID (Fea)" ;
  1295. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  1296. atrFeaRcIconID) ;
  1297. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(FEATURE,
  1298. loResourceIcon) ;
  1299. pStatic->snapShotTable[dwI].dwNbytes = sizeof(RESREF) ;
  1300. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  1301. pStatic->snapShotTable[dwI].dwFlags = SSF_ICONID ;
  1302. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  1303. dwI++ ;
  1304. pStatic->snapShotTable[dwI].pstrKeyword = "*rcPromptMsgID" ;
  1305. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  1306. atrFeaRcPromptMsgID) ;
  1307. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(FEATURE,
  1308. loPromptMessage) ;
  1309. pStatic->snapShotTable[dwI].dwNbytes = sizeof(RESREF) ;
  1310. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  1311. pStatic->snapShotTable[dwI].dwFlags = SSF_OTHER_RESID ;
  1312. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  1313. dwI++ ;
  1314. // end of SSTI_UPDATE_FEATURES section
  1315. pStatic->snapShotTable[dwI].dwNbytes = 0 ;
  1316. dwI++ ;
  1317. // beginning of SSTI_OPTIONS section
  1318. pStatic->snapShotTable[dwI].pstrKeyword = "*OptKeyWord - synth" ;
  1319. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  1320. atrOptKeyWord ) ;
  1321. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(OPTION,
  1322. loKeywordName) ;
  1323. pStatic->snapShotTable[dwI].dwNbytes = sizeof(PTRREF) ;
  1324. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  1325. pStatic->snapShotTable[dwI].dwFlags = SSF_OFFSETONLY;
  1326. pStatic->snapShotTable[dwI].dwGIDflags = 0xffffffff ;
  1327. dwI++ ;
  1328. pStatic->snapShotTable[dwI].pstrKeyword = "*rcNameID (Opt)" ;
  1329. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  1330. atrOptRcNameID) ;
  1331. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(OPTION,
  1332. loDisplayName) ;
  1333. pStatic->snapShotTable[dwI].dwNbytes = sizeof(RESREF) ;
  1334. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ; // Use this if not found
  1335. pStatic->snapShotTable[dwI].dwFlags = SSF_SETRCID | SSF_STRINGID;
  1336. pStatic->snapShotTable[dwI].dwGIDflags = 0xffffffff ;
  1337. dwI++ ;
  1338. pStatic->snapShotTable[dwI].pstrKeyword = "*Name (Opt)" ;
  1339. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  1340. atrOptDisplayName) ;
  1341. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(OPTION,
  1342. loDisplayName) ;
  1343. pStatic->snapShotTable[dwI].dwNbytes = sizeof(RESREF) ;
  1344. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  1345. pStatic->snapShotTable[dwI].dwFlags = SSF_DONT_USEDEFAULT |
  1346. SSF_FAILIFZERO | SSF_OFFSETONLY | SSF_NON_LOCALIZABLE ;
  1347. pStatic->snapShotTable[dwI].dwGIDflags = 0xffffffff ;
  1348. dwI++ ;
  1349. pStatic->snapShotTable[dwI].pstrKeyword = "*HelpIndex (Opt)" ;
  1350. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  1351. atrOptHelpIndex) ;
  1352. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(OPTION,
  1353. iHelpIndex) ;
  1354. pStatic->snapShotTable[dwI].dwNbytes = sizeof(INT) ;
  1355. pStatic->snapShotTable[dwI].dwDefaultValue = UNUSED_ITEM ;
  1356. pStatic->snapShotTable[dwI].dwFlags = SSF_OTHER_RESID ;
  1357. pStatic->snapShotTable[dwI].dwGIDflags = 0xffffffff ;
  1358. dwI++ ;
  1359. pStatic->snapShotTable[dwI].pstrKeyword = "*rcPromptTime (Opt)" ;
  1360. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  1361. atrOptRcPromptTime) ;
  1362. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(OPTION,
  1363. dwPromptTime) ;
  1364. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  1365. pStatic->snapShotTable[dwI].dwDefaultValue = PROMPT_UISETUP ;
  1366. // Required if rcPromptMsgID exists.
  1367. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  1368. pStatic->snapShotTable[dwI].dwGIDflags = 0xffffffff ;
  1369. dwI++ ;
  1370. pStatic->snapShotTable[dwI].pstrKeyword = "*DisabledFeatures" ;
  1371. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  1372. atrDisabledFeatures) ;
  1373. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(OPTION,
  1374. liDisabledFeatures) ;
  1375. pStatic->snapShotTable[dwI].dwNbytes = sizeof(LISTINDEX) ;
  1376. pStatic->snapShotTable[dwI].dwDefaultValue = END_OF_LIST ;
  1377. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  1378. pStatic->snapShotTable[dwI].dwGIDflags = 0xffffffff ;
  1379. dwI++ ;
  1380. // write the CommandIndex into pOption->dwCmdIndex
  1381. // the Invocation field is not used.
  1382. pStatic->snapShotTable[dwI].pstrKeyword = "*Command (CmdSelect)" ;
  1383. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  1384. atrCommandIndex) ;
  1385. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(OPTION,
  1386. dwCmdIndex) ;
  1387. // Invocation) + offsetof(INVOCATION, dwCount) ;
  1388. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  1389. pStatic->snapShotTable[dwI].dwDefaultValue = UNUSED_ITEM ;
  1390. pStatic->snapShotTable[dwI].dwFlags = SSF_HEAPOFFSET ;
  1391. pStatic->snapShotTable[dwI].dwGIDflags = 0xffffffff ;
  1392. dwI++ ;
  1393. // --- option specific entries ----
  1394. pStatic->snapShotTable[dwI].pstrKeyword = "*DPI" ;
  1395. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  1396. atrDPI) ;
  1397. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(RESOLUTION,
  1398. iXdpi) ;
  1399. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  1400. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  1401. pStatic->snapShotTable[dwI].dwFlags = SSF_REQUIRED ;
  1402. pStatic->snapShotTable[dwI].dwGIDflags = GIDF_RESOLUTION ;
  1403. dwI++ ;
  1404. pStatic->snapShotTable[dwI].pstrKeyword = "*DPI" ;
  1405. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  1406. atrDPI);
  1407. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(RESOLUTION,
  1408. iYdpi) ;
  1409. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  1410. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  1411. pStatic->snapShotTable[dwI].dwFlags = SSF_REQUIRED | SSF_SECOND_DWORD ;
  1412. pStatic->snapShotTable[dwI].dwGIDflags = GIDF_RESOLUTION ;
  1413. dwI++ ;
  1414. pStatic->snapShotTable[dwI].pstrKeyword = "*OptionID" ;
  1415. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  1416. atrOptIDvalue) ;
  1417. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(RESOLUTION,
  1418. dwResolutionID) ;
  1419. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  1420. pStatic->snapShotTable[dwI].dwDefaultValue = RES_ID_IGNORE ;
  1421. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  1422. pStatic->snapShotTable[dwI].dwGIDflags = GIDF_RESOLUTION ;
  1423. dwI++ ;
  1424. // -----
  1425. pStatic->snapShotTable[dwI].pstrKeyword = "*rcHTPatternID" ;
  1426. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  1427. atrRcHTPatternID) ;
  1428. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(HALFTONING,
  1429. dwRCpatternID) ;
  1430. pStatic->snapShotTable[dwI].dwNbytes = sizeof(INT) ;
  1431. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  1432. pStatic->snapShotTable[dwI].dwFlags = SSF_OTHER_RESID ;
  1433. // SSF_REQUIRED for OEM defined patterns.
  1434. pStatic->snapShotTable[dwI].dwGIDflags = GIDF_HALFTONING;
  1435. dwI++ ;
  1436. pStatic->snapShotTable[dwI].pstrKeyword = "*HTPatternSize" ;
  1437. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  1438. atrHTPatternSize) ;
  1439. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(HALFTONING,
  1440. HalftonePatternSize) ;
  1441. pStatic->snapShotTable[dwI].dwNbytes = sizeof(POINT) ;
  1442. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  1443. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  1444. // SSF_REQUIRED for OEM defined patterns.
  1445. pStatic->snapShotTable[dwI].dwGIDflags = GIDF_HALFTONING ;
  1446. dwI++ ;
  1447. pStatic->snapShotTable[dwI].pstrKeyword = "*HTNumPatterns" ;
  1448. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  1449. atrHTNumPatterns) ;
  1450. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(HALFTONING,
  1451. dwHTNumPatterns) ;
  1452. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  1453. pStatic->snapShotTable[dwI].dwDefaultValue = 1 ;
  1454. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  1455. pStatic->snapShotTable[dwI].dwGIDflags = GIDF_HALFTONING ;
  1456. dwI++ ;
  1457. pStatic->snapShotTable[dwI].pstrKeyword = "*HTCallbackID" ;
  1458. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  1459. atrHTCallbackID) ;
  1460. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(HALFTONING,
  1461. dwHTCallbackID) ;
  1462. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  1463. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  1464. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  1465. pStatic->snapShotTable[dwI].dwGIDflags = GIDF_HALFTONING ;
  1466. dwI++ ;
  1467. pStatic->snapShotTable[dwI].pstrKeyword = "*Luminance" ;
  1468. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  1469. atrLuminance) ;
  1470. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(HALFTONING,
  1471. iLuminance) ;
  1472. pStatic->snapShotTable[dwI].dwNbytes = sizeof(INT) ;
  1473. pStatic->snapShotTable[dwI].dwDefaultValue = 100 ;
  1474. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  1475. pStatic->snapShotTable[dwI].dwGIDflags = GIDF_HALFTONING ;
  1476. dwI++ ;
  1477. pStatic->snapShotTable[dwI].pstrKeyword = "*dwHalftoneID - synth" ;
  1478. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  1479. atrOptIDvalue) ;
  1480. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(HALFTONING,
  1481. dwHTID) ;
  1482. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  1483. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  1484. pStatic->snapShotTable[dwI].dwFlags = SSF_REQUIRED ;
  1485. pStatic->snapShotTable[dwI].dwGIDflags = GIDF_HALFTONING ;
  1486. dwI++ ;
  1487. // ------
  1488. pStatic->snapShotTable[dwI].pstrKeyword = "*dwDuplexID - synth" ;
  1489. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  1490. atrOptIDvalue) ;
  1491. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(DUPLEX,
  1492. dwDuplexID) ;
  1493. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  1494. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  1495. pStatic->snapShotTable[dwI].dwFlags = SSF_REQUIRED ;
  1496. pStatic->snapShotTable[dwI].dwGIDflags = GIDF_DUPLEX ;
  1497. dwI++ ;
  1498. // ------
  1499. pStatic->snapShotTable[dwI].pstrKeyword = "*dwRotationAngle - synth" ;
  1500. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  1501. atrOptIDvalue) ;
  1502. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(ORIENTATION,
  1503. dwRotationAngle) ;
  1504. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  1505. pStatic->snapShotTable[dwI].dwDefaultValue = ROTATE_NONE ;
  1506. pStatic->snapShotTable[dwI].dwFlags = SSF_REQUIRED ;
  1507. pStatic->snapShotTable[dwI].dwGIDflags = GIDF_ORIENTATION ;
  1508. dwI++ ;
  1509. // ------
  1510. pStatic->snapShotTable[dwI].pstrKeyword = "*dwPageProtectID - synth" ;
  1511. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  1512. atrOptIDvalue) ;
  1513. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(PAGEPROTECT,
  1514. dwPageProtectID) ;
  1515. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  1516. pStatic->snapShotTable[dwI].dwDefaultValue = PAGEPRO_OFF ;
  1517. pStatic->snapShotTable[dwI].dwFlags = SSF_REQUIRED ;
  1518. pStatic->snapShotTable[dwI].dwGIDflags = GIDF_PAGEPROTECTION ;
  1519. dwI++ ;
  1520. // -----
  1521. pStatic->snapShotTable[dwI].pstrKeyword = "*PageDimensions" ;
  1522. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  1523. atrPageDimensions) ;
  1524. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(PAGESIZE,
  1525. szPaperSize) ;
  1526. pStatic->snapShotTable[dwI].dwNbytes = sizeof(SIZE) ;
  1527. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  1528. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  1529. // not required for userdefined pagesize.
  1530. pStatic->snapShotTable[dwI].dwGIDflags = GIDF_PAGESIZE ;
  1531. dwI++ ;
  1532. pStatic->snapShotTable[dwI].pstrKeyword = "*dwPaperSizeID - synth" ;
  1533. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  1534. atrOptIDvalue) ;
  1535. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(PAGESIZE,
  1536. dwPaperSizeID) ;
  1537. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  1538. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  1539. pStatic->snapShotTable[dwI].dwFlags = SSF_REQUIRED ;
  1540. pStatic->snapShotTable[dwI].dwGIDflags = GIDF_PAGESIZE ;
  1541. dwI++ ;
  1542. // ------- special case INPUTSLOT
  1543. pStatic->snapShotTable[dwI].pstrKeyword = "*dwPaperSourceID - synth" ;
  1544. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  1545. atrOptIDvalue) ;
  1546. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(INPUTSLOT,
  1547. dwPaperSourceID) ;
  1548. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  1549. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  1550. pStatic->snapShotTable[dwI].dwFlags = SSF_REQUIRED ;
  1551. pStatic->snapShotTable[dwI].dwGIDflags = GIDF_INPUTSLOT ;
  1552. dwI++ ;
  1553. #if 0
  1554. dead keyword
  1555. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  1556. atrPaperFeed) ;
  1557. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(INPUTSLOT,
  1558. dwBinAdjust) ;
  1559. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  1560. pStatic->snapShotTable[dwI].dwDefaultValue = DCBA_FACEUPNONE ;
  1561. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  1562. pStatic->snapShotTable[dwI].dwGIDflags = GIDF_INPUTSLOT ;
  1563. dwI++ ;
  1564. #endif
  1565. // ------
  1566. pStatic->snapShotTable[dwI].pstrKeyword = "*dwMediaTypeID - synth" ;
  1567. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  1568. atrOptIDvalue) ;
  1569. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(MEDIATYPE,
  1570. dwMediaTypeID) ;
  1571. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  1572. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  1573. pStatic->snapShotTable[dwI].dwFlags = SSF_REQUIRED ;
  1574. pStatic->snapShotTable[dwI].dwGIDflags = GIDF_MEDIATYPE ;
  1575. dwI++ ;
  1576. // -----
  1577. pStatic->snapShotTable[dwI].pstrKeyword = "*dwCollateID - synth" ;
  1578. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  1579. atrOptIDvalue) ;
  1580. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(COLLATE,
  1581. dwCollateID) ;
  1582. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  1583. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  1584. pStatic->snapShotTable[dwI].dwFlags = SSF_REQUIRED ;
  1585. pStatic->snapShotTable[dwI].dwGIDflags = GIDF_COLLATE ;
  1586. dwI++ ;
  1587. // -----
  1588. // -----
  1589. pStatic->snapShotTable[dwI].pstrKeyword = "*MemoryConfigMB" ;
  1590. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  1591. atrMemoryConfigMB) ;
  1592. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(MEMOPTION,
  1593. dwInstalledMem) ;
  1594. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  1595. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  1596. pStatic->snapShotTable[dwI].dwFlags = SSF_MB_TO_BYTES ;
  1597. pStatic->snapShotTable[dwI].dwGIDflags = GIDF_MEMOPTION ;
  1598. dwI++ ;
  1599. pStatic->snapShotTable[dwI].pstrKeyword = "*MemoryConfigMB" ;
  1600. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  1601. atrMemoryConfigMB) ;
  1602. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(MEMOPTION,
  1603. dwFreeMem) ;
  1604. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  1605. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  1606. pStatic->snapShotTable[dwI].dwFlags = SSF_SECOND_DWORD | SSF_MB_TO_BYTES ;
  1607. pStatic->snapShotTable[dwI].dwGIDflags = GIDF_MEMOPTION ;
  1608. dwI++ ;
  1609. pStatic->snapShotTable[dwI].pstrKeyword = "*MemoryConfigKB" ;
  1610. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  1611. atrMemoryConfigKB) ;
  1612. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(MEMOPTION,
  1613. dwInstalledMem) ;
  1614. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  1615. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  1616. pStatic->snapShotTable[dwI].dwFlags = SSF_KB_TO_BYTES |
  1617. SSF_DONT_USEDEFAULT | SSF_FAILIFZERO ;
  1618. pStatic->snapShotTable[dwI].dwGIDflags = GIDF_MEMOPTION ;
  1619. dwI++ ;
  1620. pStatic->snapShotTable[dwI].pstrKeyword = "*MemoryConfigKB" ;
  1621. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  1622. atrMemoryConfigKB) ;
  1623. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(MEMOPTION,
  1624. dwFreeMem) ;
  1625. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  1626. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  1627. pStatic->snapShotTable[dwI].dwFlags = SSF_SECOND_DWORD |
  1628. SSF_KB_TO_BYTES | SSF_DONT_USEDEFAULT | SSF_FAILIFZERO ;
  1629. pStatic->snapShotTable[dwI].dwGIDflags = GIDF_MEMOPTION ;
  1630. dwI++ ;
  1631. // ------
  1632. pStatic->snapShotTable[dwI].pstrKeyword = "*OutputOrderReversed? (option level)" ;
  1633. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  1634. atrOutputOrderReversed) ;
  1635. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(OUTPUTBIN,
  1636. bOutputOrderReversed) ;
  1637. pStatic->snapShotTable[dwI].dwNbytes = sizeof(BOOL) ;
  1638. pStatic->snapShotTable[dwI].dwDefaultValue = UNUSED_ITEM ;
  1639. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  1640. pStatic->snapShotTable[dwI].dwGIDflags = GIDF_OUTPUTBIN ;
  1641. dwI++ ;
  1642. // end of SSTI_OPTIONS section
  1643. pStatic->snapShotTable[dwI].dwNbytes = 0 ;
  1644. dwI++ ;
  1645. // beginning of SSTI_UPDATE_OPTIONS section
  1646. pStatic->snapShotTable[dwI].pstrKeyword = "*rcIconID (Opt)" ;
  1647. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  1648. atrOptRcIconID) ;
  1649. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(OPTION,
  1650. loResourceIcon) ;
  1651. pStatic->snapShotTable[dwI].dwNbytes = sizeof(INT) ;
  1652. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  1653. pStatic->snapShotTable[dwI].dwFlags = SSF_ICONID ;
  1654. pStatic->snapShotTable[dwI].dwGIDflags = 0xffffffff ;
  1655. dwI++ ;
  1656. pStatic->snapShotTable[dwI].pstrKeyword = "*rcPromptMsgID (Opt)" ;
  1657. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  1658. atrOptRcPromptMsgID) ;
  1659. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(OPTION,
  1660. loPromptMessage) ;
  1661. pStatic->snapShotTable[dwI].dwNbytes = sizeof(INT) ;
  1662. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  1663. pStatic->snapShotTable[dwI].dwFlags = SSF_OTHER_RESID ;
  1664. pStatic->snapShotTable[dwI].dwGIDflags = 0xffffffff ;
  1665. dwI++ ;
  1666. pStatic->snapShotTable[dwI].pstrKeyword = "*PageProtectMem (Opt)" ;
  1667. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  1668. atrPageProtectMem) ;
  1669. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(PAGESIZE,
  1670. dwPageProtectionMemory) ;
  1671. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  1672. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  1673. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  1674. // required if there is a page protect feature
  1675. pStatic->snapShotTable[dwI].dwGIDflags = GIDF_PAGESIZE ;
  1676. dwI++ ;
  1677. // end of SSTI_UPDATE_OPTIONS section
  1678. pStatic->snapShotTable[dwI].dwNbytes = 0 ;
  1679. dwI++ ;
  1680. // beginning of SSTI_OPTIONEX section
  1681. pStatic->snapShotTable[dwI].pstrKeyword = "*DPI" ;
  1682. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  1683. atrDPI) ;
  1684. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(RESOLUTIONEX,
  1685. ptGrxDPI) ;
  1686. pStatic->snapShotTable[dwI].dwNbytes = sizeof(POINT) ;
  1687. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  1688. pStatic->snapShotTable[dwI].dwFlags = SSF_REQUIRED ;
  1689. pStatic->snapShotTable[dwI].dwGIDflags = GIDF_RESOLUTION ;
  1690. dwI++ ;
  1691. pStatic->snapShotTable[dwI].pstrKeyword = "*TextDPI" ;
  1692. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  1693. atrTextDPI) ;
  1694. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(RESOLUTIONEX,
  1695. ptTextDPI) ;
  1696. pStatic->snapShotTable[dwI].dwNbytes = sizeof(POINT) ;
  1697. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  1698. pStatic->snapShotTable[dwI].dwFlags = SSF_REQUIRED ;
  1699. pStatic->snapShotTable[dwI].dwGIDflags = GIDF_RESOLUTION ;
  1700. dwI++ ;
  1701. pStatic->snapShotTable[dwI].pstrKeyword = "*MinStripBlankPixels" ;
  1702. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  1703. atrMinStripBlankPixels) ;
  1704. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(RESOLUTIONEX,
  1705. dwMinStripBlankPixels) ;
  1706. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  1707. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  1708. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  1709. // required if *StripBlanks is not NONE.
  1710. pStatic->snapShotTable[dwI].dwGIDflags = GIDF_RESOLUTION ;
  1711. dwI++ ;
  1712. pStatic->snapShotTable[dwI].pstrKeyword = "*RedDeviceGamma" ;
  1713. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  1714. atrRedDeviceGamma) ;
  1715. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(RESOLUTIONEX,
  1716. dwRedDeviceGamma) ;
  1717. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  1718. pStatic->snapShotTable[dwI].dwDefaultValue = UNUSED_ITEM ;
  1719. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  1720. // required if *StripBlanks is not NONE.
  1721. pStatic->snapShotTable[dwI].dwGIDflags = GIDF_RESOLUTION ;
  1722. dwI++ ;
  1723. pStatic->snapShotTable[dwI].pstrKeyword = "*GreenDeviceGamma" ;
  1724. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  1725. atrGreenDeviceGamma) ;
  1726. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(RESOLUTIONEX,
  1727. dwGreenDeviceGamma) ;
  1728. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  1729. pStatic->snapShotTable[dwI].dwDefaultValue = UNUSED_ITEM ;
  1730. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  1731. // required if *StripBlanks is not NONE.
  1732. pStatic->snapShotTable[dwI].dwGIDflags = GIDF_RESOLUTION ;
  1733. dwI++ ;
  1734. pStatic->snapShotTable[dwI].pstrKeyword = "*BlueDeviceGamma" ;
  1735. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  1736. atrBlueDeviceGamma) ;
  1737. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(RESOLUTIONEX,
  1738. dwBlueDeviceGamma) ;
  1739. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  1740. pStatic->snapShotTable[dwI].dwDefaultValue = UNUSED_ITEM ;
  1741. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  1742. // required if *StripBlanks is not NONE.
  1743. pStatic->snapShotTable[dwI].dwGIDflags = GIDF_RESOLUTION ;
  1744. dwI++ ;
  1745. pStatic->snapShotTable[dwI].pstrKeyword = "*PinsPerPhysPass" ;
  1746. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  1747. atrPinsPerPhysPass) ;
  1748. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(RESOLUTIONEX,
  1749. dwPinsPerPhysPass) ;
  1750. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  1751. pStatic->snapShotTable[dwI].dwDefaultValue = 1 ;
  1752. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  1753. pStatic->snapShotTable[dwI].dwGIDflags = GIDF_RESOLUTION ;
  1754. dwI++ ;
  1755. pStatic->snapShotTable[dwI].pstrKeyword = "*PinsPerLogPass" ;
  1756. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  1757. atrPinsPerLogPass) ;
  1758. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(RESOLUTIONEX,
  1759. dwPinsPerLogPass) ;
  1760. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  1761. pStatic->snapShotTable[dwI].dwDefaultValue = 1 ;
  1762. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  1763. pStatic->snapShotTable[dwI].dwGIDflags = GIDF_RESOLUTION ;
  1764. dwI++ ;
  1765. pStatic->snapShotTable[dwI].pstrKeyword = "*SpotDiameter" ;
  1766. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  1767. atrSpotDiameter) ;
  1768. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(RESOLUTIONEX,
  1769. dwSpotDiameter) ;
  1770. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  1771. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  1772. pStatic->snapShotTable[dwI].dwFlags = SSF_REQUIRED ;
  1773. pStatic->snapShotTable[dwI].dwGIDflags = GIDF_RESOLUTION ;
  1774. dwI++ ;
  1775. pStatic->snapShotTable[dwI].pstrKeyword = "*RequireUniDir?" ;
  1776. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  1777. atrRequireUniDir) ;
  1778. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(RESOLUTIONEX,
  1779. bRequireUniDir) ;
  1780. pStatic->snapShotTable[dwI].dwNbytes = sizeof(BOOL) ;
  1781. pStatic->snapShotTable[dwI].dwDefaultValue = FALSE ;
  1782. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  1783. pStatic->snapShotTable[dwI].dwGIDflags = GIDF_RESOLUTION ;
  1784. dwI++ ;
  1785. // ---- _COLORMODEEX
  1786. pStatic->snapShotTable[dwI].pstrKeyword = "*Color?" ;
  1787. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  1788. atrColor) ;
  1789. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(COLORMODEEX,
  1790. bColor) ;
  1791. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  1792. pStatic->snapShotTable[dwI].dwDefaultValue = TRUE ;
  1793. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  1794. pStatic->snapShotTable[dwI].dwGIDflags = GIDF_COLORMODE ;
  1795. dwI++ ;
  1796. pStatic->snapShotTable[dwI].pstrKeyword = "*DevNumOfPlanes" ;
  1797. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  1798. atrDevNumOfPlanes) ;
  1799. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(COLORMODEEX,
  1800. dwPrinterNumOfPlanes) ;
  1801. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  1802. pStatic->snapShotTable[dwI].dwDefaultValue = 1 ;
  1803. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  1804. pStatic->snapShotTable[dwI].dwGIDflags = GIDF_COLORMODE ;
  1805. dwI++ ;
  1806. pStatic->snapShotTable[dwI].pstrKeyword = "*DevBPP" ;
  1807. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  1808. atrDevBPP) ;
  1809. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(COLORMODEEX,
  1810. dwPrinterBPP) ;
  1811. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  1812. pStatic->snapShotTable[dwI].dwDefaultValue = 1 ;
  1813. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  1814. pStatic->snapShotTable[dwI].dwGIDflags = GIDF_COLORMODE ;
  1815. dwI++ ;
  1816. pStatic->snapShotTable[dwI].pstrKeyword = "*ColorPlaneOrder" ;
  1817. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  1818. atrColorPlaneOrder) ;
  1819. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(COLORMODEEX,
  1820. liColorPlaneOrder) ;
  1821. pStatic->snapShotTable[dwI].dwNbytes = sizeof(LISTINDEX) ;
  1822. pStatic->snapShotTable[dwI].dwDefaultValue = END_OF_LIST ;
  1823. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  1824. // SSF_REQUIRED only if NumPlanes > 1.
  1825. pStatic->snapShotTable[dwI].dwGIDflags = GIDF_COLORMODE ;
  1826. dwI++ ;
  1827. pStatic->snapShotTable[dwI].pstrKeyword = "*DrvBPP" ;
  1828. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  1829. atrDrvBPP) ;
  1830. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(COLORMODEEX,
  1831. dwDrvBPP) ;
  1832. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  1833. pStatic->snapShotTable[dwI].dwDefaultValue = 1 ;
  1834. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  1835. pStatic->snapShotTable[dwI].dwGIDflags = GIDF_COLORMODE ;
  1836. dwI++ ;
  1837. pStatic->snapShotTable[dwI].pstrKeyword = "*IPCallbackID" ;
  1838. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  1839. atrIPCallbackID) ;
  1840. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(COLORMODEEX,
  1841. dwIPCallbackID) ;
  1842. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  1843. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  1844. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  1845. pStatic->snapShotTable[dwI].dwGIDflags = GIDF_COLORMODE ;
  1846. dwI++ ;
  1847. pStatic->snapShotTable[dwI].pstrKeyword = "*RasterMode" ;
  1848. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  1849. atrRasterMode) ;
  1850. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(COLORMODEEX,
  1851. dwRasterMode) ;
  1852. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  1853. pStatic->snapShotTable[dwI].dwDefaultValue = RASTMODE_INDEXED ;
  1854. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  1855. pStatic->snapShotTable[dwI].dwGIDflags = GIDF_COLORMODE ;
  1856. dwI++ ;
  1857. pStatic->snapShotTable[dwI].pstrKeyword = "*PaletteSize" ;
  1858. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  1859. atrPaletteSize) ;
  1860. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(COLORMODEEX,
  1861. dwPaletteSize ) ;
  1862. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  1863. pStatic->snapShotTable[dwI].dwDefaultValue = 2 ;
  1864. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  1865. pStatic->snapShotTable[dwI].dwGIDflags = GIDF_COLORMODE ;
  1866. dwI++ ;
  1867. pStatic->snapShotTable[dwI].pstrKeyword = "*PaletteProgrammable?" ;
  1868. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  1869. atrPaletteProgrammable) ;
  1870. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(COLORMODEEX,
  1871. bPaletteProgrammable) ;
  1872. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  1873. pStatic->snapShotTable[dwI].dwDefaultValue = BT_FALSE ;
  1874. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  1875. pStatic->snapShotTable[dwI].dwGIDflags = GIDF_COLORMODE ;
  1876. dwI++ ;
  1877. // ----- _PAGESIZEEX
  1878. // note if set to 0,0 assume is same as papersize subject
  1879. // to margin restrictions.
  1880. pStatic->snapShotTable[dwI].pstrKeyword = "*PrintableArea" ;
  1881. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  1882. atrPrintableSize) ;
  1883. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(PAGESIZEEX,
  1884. szImageArea) ;
  1885. pStatic->snapShotTable[dwI].dwNbytes = sizeof(SIZEL) ;
  1886. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  1887. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  1888. pStatic->snapShotTable[dwI].dwGIDflags = GIDF_PAGESIZE ;
  1889. dwI++ ;
  1890. pStatic->snapShotTable[dwI].pstrKeyword = "*PrintableOrigin" ;
  1891. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  1892. atrPrintableOrigin) ;
  1893. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(PAGESIZEEX,
  1894. ptImageOrigin) ;
  1895. pStatic->snapShotTable[dwI].dwNbytes = sizeof(POINT) ;
  1896. pStatic->snapShotTable[dwI].dwDefaultValue = UNUSED_ITEM ;
  1897. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  1898. pStatic->snapShotTable[dwI].dwGIDflags = GIDF_PAGESIZE ;
  1899. dwI++ ;
  1900. // *CursorOrigin see BspecialProcessOption
  1901. pStatic->snapShotTable[dwI].pstrKeyword = "*MinSize" ;
  1902. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  1903. atrMinSize) ;
  1904. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(PAGESIZEEX,
  1905. ptMinSize) ;
  1906. pStatic->snapShotTable[dwI].dwNbytes = sizeof(POINT) ;
  1907. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  1908. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  1909. // only SSF_REQUIRED for custompage;
  1910. pStatic->snapShotTable[dwI].dwGIDflags = GIDF_PAGESIZE ;
  1911. pStatic->dwSSPaperSizeMinSizeIndex = dwI ;
  1912. dwI++ ;
  1913. pStatic->snapShotTable[dwI].pstrKeyword = "*MaxSize" ;
  1914. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  1915. atrMaxSize) ;
  1916. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(PAGESIZEEX,
  1917. ptMaxSize) ;
  1918. pStatic->snapShotTable[dwI].dwNbytes = sizeof(POINT) ;
  1919. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  1920. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  1921. pStatic->snapShotTable[dwI].dwGIDflags = GIDF_PAGESIZE ;
  1922. pStatic->dwSSPaperSizeMaxSizeIndex = dwI ;
  1923. dwI++ ;
  1924. pStatic->snapShotTable[dwI].pstrKeyword = "*TopMargin" ;
  1925. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  1926. atrTopMargin) ;
  1927. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(PAGESIZEEX,
  1928. dwTopMargin) ;
  1929. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  1930. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  1931. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  1932. pStatic->snapShotTable[dwI].dwGIDflags = GIDF_PAGESIZE ;
  1933. dwI++ ;
  1934. pStatic->snapShotTable[dwI].pstrKeyword = "*BottomMargin" ;
  1935. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  1936. atrBottomMargin) ;
  1937. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(PAGESIZEEX,
  1938. dwBottomMargin) ;
  1939. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  1940. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  1941. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  1942. pStatic->snapShotTable[dwI].dwGIDflags = GIDF_PAGESIZE ;
  1943. dwI++ ;
  1944. pStatic->snapShotTable[dwI].pstrKeyword = "*MaxPrintableWidth" ;
  1945. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  1946. atrMaxPrintableWidth) ;
  1947. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(PAGESIZEEX,
  1948. dwMaxPrintableWidth) ;
  1949. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  1950. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  1951. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  1952. pStatic->snapShotTable[dwI].dwGIDflags = GIDF_PAGESIZE ;
  1953. dwI++ ;
  1954. pStatic->snapShotTable[dwI].pstrKeyword = "*MinLeftMargin" ;
  1955. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  1956. atrMinLeftMargin) ;
  1957. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(PAGESIZEEX,
  1958. dwMinLeftMargin) ;
  1959. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  1960. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  1961. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  1962. pStatic->snapShotTable[dwI].dwGIDflags = GIDF_PAGESIZE ;
  1963. dwI++ ;
  1964. pStatic->snapShotTable[dwI].pstrKeyword = "*CenterPrintable?" ;
  1965. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  1966. atrCenterPrintable) ;
  1967. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(PAGESIZEEX,
  1968. bCenterPrintArea) ;
  1969. pStatic->snapShotTable[dwI].dwNbytes = sizeof(BOOL) ;
  1970. pStatic->snapShotTable[dwI].dwDefaultValue = FALSE ;
  1971. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  1972. pStatic->snapShotTable[dwI].dwGIDflags = GIDF_PAGESIZE ;
  1973. dwI++ ;
  1974. pStatic->snapShotTable[dwI].pstrKeyword = "*RotateSize?" ;
  1975. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  1976. atrRotateSize) ;
  1977. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(PAGESIZEEX,
  1978. bRotateSize) ;
  1979. pStatic->snapShotTable[dwI].dwNbytes = sizeof(BOOL) ;
  1980. pStatic->snapShotTable[dwI].dwDefaultValue = FALSE ;
  1981. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  1982. pStatic->snapShotTable[dwI].dwGIDflags = GIDF_PAGESIZE ;
  1983. dwI++ ;
  1984. pStatic->snapShotTable[dwI].pstrKeyword = "*PortRotationAngle" ;
  1985. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  1986. atrPortRotationAngle) ;
  1987. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(PAGESIZEEX,
  1988. dwPortRotationAngle) ;
  1989. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  1990. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  1991. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  1992. pStatic->snapShotTable[dwI].dwGIDflags = GIDF_PAGESIZE ;
  1993. dwI++ ;
  1994. pStatic->snapShotTable[dwI].pstrKeyword = "*CustCursorOriginX" ;
  1995. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  1996. atrCustCursorOriginX) ;
  1997. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(PAGESIZEEX,
  1998. strCustCursorOriginX) ;
  1999. pStatic->snapShotTable[dwI].dwNbytes = sizeof(INVOCATION) ;
  2000. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  2001. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  2002. pStatic->snapShotTable[dwI].dwGIDflags = GIDF_PAGESIZE ;
  2003. dwI++ ;
  2004. pStatic->snapShotTable[dwI].pstrKeyword = "*CustCursorOriginY" ;
  2005. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  2006. atrCustCursorOriginY) ;
  2007. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(PAGESIZEEX,
  2008. strCustCursorOriginY) ;
  2009. pStatic->snapShotTable[dwI].dwNbytes = sizeof(INVOCATION) ;
  2010. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  2011. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  2012. pStatic->snapShotTable[dwI].dwGIDflags = GIDF_PAGESIZE ;
  2013. dwI++ ;
  2014. pStatic->snapShotTable[dwI].pstrKeyword = "*CustPrintableOriginX" ;
  2015. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  2016. atrCustPrintableOriginX) ;
  2017. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(PAGESIZEEX,
  2018. strCustPrintableOriginX) ;
  2019. pStatic->snapShotTable[dwI].dwNbytes = sizeof(INVOCATION) ;
  2020. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  2021. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  2022. pStatic->snapShotTable[dwI].dwGIDflags = GIDF_PAGESIZE ;
  2023. dwI++ ;
  2024. pStatic->snapShotTable[dwI].pstrKeyword = "*CustPrintableOriginY" ;
  2025. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  2026. atrCustPrintableOriginY) ;
  2027. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(PAGESIZEEX,
  2028. strCustPrintableOriginY) ;
  2029. pStatic->snapShotTable[dwI].dwNbytes = sizeof(INVOCATION) ;
  2030. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  2031. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  2032. pStatic->snapShotTable[dwI].dwGIDflags = GIDF_PAGESIZE ;
  2033. dwI++ ;
  2034. pStatic->snapShotTable[dwI].pstrKeyword = "*CustPrintableSizeX" ;
  2035. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  2036. atrCustPrintableSizeX) ;
  2037. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(PAGESIZEEX,
  2038. strCustPrintableSizeX) ;
  2039. pStatic->snapShotTable[dwI].dwNbytes = sizeof(INVOCATION) ;
  2040. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  2041. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  2042. pStatic->snapShotTable[dwI].dwGIDflags = GIDF_PAGESIZE ;
  2043. dwI++ ;
  2044. pStatic->snapShotTable[dwI].pstrKeyword = "*CustPrintableSizeY" ;
  2045. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  2046. atrCustPrintableSizeY) ;
  2047. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(PAGESIZEEX,
  2048. strCustPrintableSizeY) ;
  2049. pStatic->snapShotTable[dwI].dwNbytes = sizeof(INVOCATION) ;
  2050. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  2051. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  2052. pStatic->snapShotTable[dwI].dwGIDflags = GIDF_PAGESIZE ;
  2053. dwI++ ;
  2054. // -----
  2055. #if 0
  2056. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  2057. atrFeedMargins) ;
  2058. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(INPUTSLOTEX,
  2059. sTopMargin) ;
  2060. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  2061. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  2062. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  2063. pStatic->snapShotTable[dwI].dwGIDflags = GIDF_INPUTSLOT ;
  2064. dwI++ ;
  2065. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  2066. atrFeedMargins) ;
  2067. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(INPUTSLOTEX,
  2068. sBottomMargin) ;
  2069. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  2070. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  2071. pStatic->snapShotTable[dwI].dwFlags = SSF_SECOND_DWORD ;
  2072. pStatic->snapShotTable[dwI].dwGIDflags = GIDF_INPUTSLOT ;
  2073. dwI++ ;
  2074. #endif
  2075. // end of SSTI_OPTIONEX section
  2076. pStatic->snapShotTable[dwI].dwNbytes = 0 ;
  2077. dwI++ ;
  2078. // beginning of SSTI_UPDATE_OPTIONEX section
  2079. // end of SSTI_UPDATE_OPTIONEX section
  2080. pStatic->snapShotTable[dwI].dwNbytes = 0 ;
  2081. dwI++ ;
  2082. // beginning of SSTI_SPECIAL section
  2083. // contains entries requiring special processing.
  2084. pStatic->snapShotTable[dwI].pstrKeyword = "*dwSSTableCmdIndex - synth" ;
  2085. pStatic->snapShotTable[dwI].dwSrcOffset = 0 ;
  2086. // not needed.
  2087. pStatic->snapShotTable[dwI].dwDestOffset = 0 ;
  2088. // not needed.
  2089. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  2090. pStatic->snapShotTable[dwI].dwDefaultValue = UNUSED_ITEM ;
  2091. pStatic->snapShotTable[dwI].dwFlags = SSF_HEAPOFFSET ;
  2092. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  2093. pStatic->dwSSTableCmdIndex = dwI ;
  2094. dwI++ ;
  2095. // this entry is actually used to guide the copy into the
  2096. // sequenced command list.
  2097. pStatic->snapShotTable[dwI].pstrKeyword = "*dwSSCmdSelectIndex - synth" ;
  2098. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  2099. atrCommandIndex ) ;
  2100. pStatic->snapShotTable[dwI].dwDestOffset = 0 ;
  2101. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  2102. pStatic->snapShotTable[dwI].dwDefaultValue = UNUSED_ITEM ;
  2103. pStatic->snapShotTable[dwI].dwFlags = SSF_HEAPOFFSET ;
  2104. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  2105. pStatic->dwSSCmdSelectIndex = dwI ;
  2106. dwI++ ;
  2107. #if 0
  2108. don't initialize this field, leave for amanda's personal use.
  2109. // Extract atrMargins convert to ImageableArea, place in rcImgArea.
  2110. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  2111. atrMargins ) ;
  2112. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(PAGESIZE,
  2113. rcImgArea ) ;
  2114. pStatic->snapShotTable[dwI].dwNbytes = sizeof(RECT) ;
  2115. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  2116. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  2117. pStatic->snapShotTable[dwI].dwGIDflags = GIDF_PAGESIZE ;
  2118. // pmrbd->dwSSPaperSizeMarginsIndex = dwI ;
  2119. dwI++ ;
  2120. #endif
  2121. // special check needed: if missing set to same as
  2122. // printable origin. see BspecialProcessOption
  2123. pStatic->snapShotTable[dwI].pstrKeyword = "*CursorOrigin" ;
  2124. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  2125. atrCursorOrigin) ;
  2126. pStatic->snapShotTable[dwI].dwDestOffset = offsetof(PAGESIZEEX,
  2127. ptPrinterCursorOrig) ;
  2128. pStatic->snapShotTable[dwI].dwNbytes = sizeof(POINT) ;
  2129. pStatic->snapShotTable[dwI].dwDefaultValue = 0 ;
  2130. pStatic->snapShotTable[dwI].dwFlags = SSF_RETURN_UNINITIALIZED ;
  2131. pStatic->snapShotTable[dwI].dwGIDflags = GIDF_PAGESIZE ;
  2132. pStatic->dwSSPaperSizeCursorOriginIndex = dwI ;
  2133. dwI++ ;
  2134. // constraints info is not copied into the snapshot.
  2135. pStatic->snapShotTable[dwI].pstrKeyword = "*Constraints" ;
  2136. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  2137. atrConstraints) ;
  2138. pStatic->snapShotTable[dwI].dwDestOffset = 0 ;
  2139. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  2140. pStatic->snapShotTable[dwI].dwDefaultValue = END_OF_LIST ;
  2141. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  2142. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  2143. pStatic->dwSSConstraintsIndex = dwI ;
  2144. dwI++ ;
  2145. pStatic->snapShotTable[dwI].pstrKeyword = "*InvalidCombination" ;
  2146. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  2147. atrInvalidCombos) ;
  2148. pStatic->snapShotTable[dwI].dwDestOffset = 0 ;
  2149. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  2150. pStatic->snapShotTable[dwI].dwDefaultValue = END_OF_LIST ;
  2151. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  2152. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  2153. pStatic->dwSSInvalidCombosIndex = dwI ;
  2154. dwI++ ;
  2155. #ifdef GMACROS
  2156. pStatic->snapShotTable[dwI].pstrKeyword = "*DependentSettings" ;
  2157. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  2158. atrDependentSettings) ;
  2159. pStatic->snapShotTable[dwI].dwDestOffset = 0 ;
  2160. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  2161. pStatic->snapShotTable[dwI].dwDefaultValue = END_OF_LIST ;
  2162. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  2163. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  2164. pStatic->dwSSDepSettingsIndex = dwI ;
  2165. dwI++ ;
  2166. pStatic->snapShotTable[dwI].pstrKeyword = "*UIChangeTriggersMacro" ;
  2167. pStatic->snapShotTable[dwI].dwSrcOffset = offsetof(DFEATURE_OPTIONS,
  2168. atrUIChangeTriggersMacro) ;
  2169. pStatic->snapShotTable[dwI].dwDestOffset = 0 ;
  2170. pStatic->snapShotTable[dwI].dwNbytes = sizeof(DWORD) ;
  2171. pStatic->snapShotTable[dwI].dwDefaultValue = END_OF_LIST ;
  2172. pStatic->snapShotTable[dwI].dwFlags = 0 ;
  2173. pStatic->snapShotTable[dwI].dwGIDflags = 0 ;
  2174. pStatic->dwSSUIChangeTriggersMacroIndex = dwI ;
  2175. dwI++ ;
  2176. #endif
  2177. // end of SSTI_SPECIAL section
  2178. pStatic->snapShotTable[dwI].dwNbytes = 0 ;
  2179. dwI++ ;
  2180. return(dwI) ;
  2181. }