home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / msdn_vcb / samples / vc98 / sdk / winui / shell / fparser / sodefs.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-04-25  |  29.8 KB  |  1,198 lines

  1. /*-------------------------------------------------------------------
  2. |    OS Dependent Area
  3. */
  4.  
  5. #ifndef SODEFS_H
  6. #define SODEFS_H
  7.  
  8. #ifdef WIN16
  9. #define SO_ENTRYSC    
  10. #define SO_ENTRYMOD    __export __far __cdecl
  11. typedef unsigned long    SOINT32U;
  12. typedef signed long    SOINT32S;
  13. #endif /*WIN16*/
  14.  
  15. #ifdef WIN32
  16. #define SO_ENTRYSC    __declspec(dllexport)
  17. #define SO_ENTRYMOD    __cdecl
  18. typedef unsigned long    SOINT32U;
  19. typedef signed long    SOINT32S;
  20. #define HUGE    
  21. #endif /*WIN32*/
  22.  
  23. /*-------------------------------------------------------------------
  24. |    OS Independent Area
  25. */
  26.  
  27. #define SO_BEGINTOKEN        0xFF
  28.  
  29. #define SO_CHARATTR            0
  30. #define SO_SPECIALCHAR        1
  31. #define SO_CHARHEIGHT        2
  32. #define SO_BREAK                3
  33. #define SO_PARAALIGN            4
  34. #define SO_PARAINDENT        5
  35. #define SO_TABSTOPS            6
  36. #define SO_MARGINS            7
  37. #define SO_BEGINSUB            8
  38. #define SO_ENDSUB                9
  39.  
  40. #define SO_CHARX                12
  41. #define SO_TAGBEGIN            13
  42. #define SO_TAGEND                14
  43.  
  44. #define SO_PARASPACING        15
  45. #define SO_CHARFONTBYID     16
  46. #define SO_CHARFONTBYNAME    17
  47.  
  48. #define SO_TABLE                18
  49. #define SO_TABLEEND            21
  50.  
  51. #define SO_GRAPHICOBJECT    22
  52.  
  53. #define SO_GOTOPOSITION     23
  54. #define SO_DRAWLINE            24
  55.  
  56. #define SO_ENDOFCHUNK        0xFE
  57.  
  58.  
  59. #define SO_TEXTCELL            10        /* these two #defines should be in the chunker stuff */
  60. #define SO_DATACELL            11
  61. #define SO_EMPTYCELL            15
  62.  
  63.  
  64. #define SO_CHTAB                    1
  65. #define SO_CHUNKNOWN                2
  66. #define SO_CHSHYPHEN                3
  67. #define SO_CHHPAGE                4
  68. #define SO_CHHLINE                5
  69. #define SO_CHHSPACE                6
  70. #define SO_CHHHYPHEN                7
  71. #define SO_CHPAGENUMBER         8
  72. #define SO_CHDATE                    9
  73. #define SO_CHTIME                    10
  74. #define SO_CHCELLTAB                11
  75.  
  76.  
  77. /* NOTE:  There is code in chunker.c that relies on the fact that */
  78. /* the value of the largest #define for a character attribute will */
  79. /* not exceed 15. */
  80.  
  81. #define SO_BOLD                 2
  82. #define SO_ITALIC                    3
  83. #define SO_UNDERLINE                4
  84. #define SO_DUNDERLINE            5
  85. #define SO_SMALLCAPS                6
  86. #define SO_OUTLINE                7
  87. #define SO_SHADOW                    8
  88. #define SO_CAPS                     9
  89. #define SO_SUBSCRIPT                10
  90. #define SO_SUPERSCRIPT            11
  91. #define SO_STRIKEOUT                12
  92. #define SO_WORDUNDERLINE        13
  93. #define SO_DOTUNDERLINE         14
  94.  
  95. #define SO_ON                        1
  96. #define SO_OFF                        0
  97.  
  98. #define SO_YES                        1
  99. #define SO_NO                        0
  100.  
  101. #define SO_STOP                 1
  102. #define SO_CONTINUE                0
  103.  
  104. #define SO_ALIGNLEFT                1
  105. #define SO_ALIGNRIGHT            2
  106. #define SO_ALIGNCENTER            3
  107. #define SO_ALIGNJUSTIFY         4
  108.  
  109. #define SO_TABLEFT                1
  110. #define SO_TABRIGHT                2
  111. #define SO_TABCENTER                3
  112. #define SO_TABCHAR                4
  113. #define SO_TABEMPTY                5
  114.  
  115. #define SO_HEADER                    1
  116. #define SO_FOOTER                    2
  117. #define SO_FOOTNOTE                3
  118. #define SO_COMMENT                4
  119.  
  120. #define SO_LEFT                 1
  121. #define SO_RIGHT                    2
  122. #define SO_BOTH                 3
  123.  
  124. #define SO_WORDPROCESSOR        120
  125. #define SO_SPREADSHEET            121
  126. #define SO_DATABASE                122
  127.  
  128. #define SO_PARAGRAPHS            0
  129. #define SO_CELLS                    1
  130. #define SO_FIELDS                2
  131. #define SO_BITMAP                4
  132. #define SO_ARCHIVE                5
  133. #define SO_VECTOR                6
  134.  
  135. #define SO_PARABREAK            1
  136. #define SO_EOFBREAK                2
  137. #define SO_SECTIONBREAK     3
  138. #define SO_CELLBREAK            4
  139. #define SO_RECORDBREAK            5
  140. #define SO_SUBDOCBEGINBREAK    6
  141. #define SO_SUBDOCENDBREAK        7
  142. #define SO_SCANLINEBREAK        8
  143. #define SO_ARCHIVEBREAK     9
  144. #define SO_VECTORBREAK            10
  145. #define     SO_TABLEROWBREAK        19
  146. #define     SO_TABLECELLBREAK        20
  147.  
  148.  
  149. #define SOERROR_GENERAL     0
  150. #define SOERROR_BADFILE     1
  151. #define SOERROR_EOF                2
  152.  
  153. #define SO_CELLLEFT                0
  154. #define SO_CELLRIGHT            1
  155. #define SO_CELLCENTER            2
  156. #define SO_CELLFILL                3
  157.  
  158. #define SO_CELLBOLD                1
  159. #define SO_CELLITALIC            2
  160. #define SO_CELLUNDERLINE        4
  161. #define SO_CELLSTRIKEOUT        8
  162.  
  163. #define SO_CELLINT32S            0
  164. #define SO_CELLINT32U            1
  165. #define SO_CELLIEEE4I            2
  166. #define SO_CELLIEEE4M            3
  167. #define SO_CELLIEEE8I            4
  168. #define SO_CELLIEEE8M            5
  169. #define SO_CELLIEEE10I            6
  170. #define SO_CELLIEEE10M            7
  171. #define SO_CELLBCD8I            8
  172. #define SO_CELLEMPTY            9
  173. #define SO_CELLERROR            10
  174. #define SO_FIELDTEXTFIX     11
  175. #define SO_FIELDTEXTVAR     12
  176.  
  177.  
  178. #define SO_CELLNUMBER            0
  179. #define SO_CELLDOLLARS            1
  180. #define SO_CELLPERCENT            2
  181. #define SO_CELLEXPONENT     3
  182. #define SO_CELLDECIMAL            4
  183. #define SO_CELLDATETIME     5
  184. #define SO_CELLDATE                6
  185. #define SO_CELLTIME                7
  186. #define SO_CELLBOOL                8
  187.  
  188. #define SO_CELLNEG_MINUS            0
  189. #define SO_CELLNEG_PAREN            BIT0
  190. #define SO_CELLNEG_MINUSRED        BIT1
  191. #define SO_CELLNEG_PARENRED        BIT2
  192.  
  193.  
  194. #define SO_CELL1000SEP_NONE        0
  195. #define SO_CELL1000SEP_COMMA        BIT3
  196.  
  197. /* MASK = 0xF0, bits 4,5,6,7 */
  198. #define SO_CELLMULT_MASK        0xF0
  199.  
  200. #define SO_CELLMULT_1            0
  201. #define SO_CELLMULT_01            0x10
  202. #define SO_CELLMULT_5000        0x20
  203. #define SO_CELLMULT_500     0x30
  204. #define SO_CELLMULT_05            0x40
  205. #define SO_CELLMULT_005     0x50
  206. #define SO_CELLMULT_0005        0x60
  207. #define SO_CELLMULT_00005        0x70
  208. #define SO_CELLMULT_0625        0x80
  209. #define SO_CELLMULT_015625    0x90
  210. #define SO_CELLMULT_0001        0xA0
  211.  
  212. #define SO_CELLDATESEP_SLASH    BIT8
  213. #define SO_CELLDATESEP_MINUS    BIT9
  214. #define SO_CELLDATESEP_PERIOD    BIT10
  215. #define SO_CELLDATESEP_SPACE    BIT11
  216. #define SO_CELLDATESEP_NONE        0
  217.  
  218. #define SO_CELLMONTH_FULL        BIT12
  219. #define SO_CELLMONTH_ABBREV        BIT13
  220. #define SO_CELLMONTH_NUMBER        BIT14
  221. #define SO_CELLMONTH_NONE        0
  222.  
  223. #define SO_CELLYEAR_FULL        BIT15L
  224. #define SO_CELLYEAR_ABBREV        BIT16L
  225. #define SO_CELLYEAR_NONE        0
  226.  
  227. #define SO_HHMMBIT            BIT17L
  228. #define SO_HHMMSSBIT            BIT18L
  229. #define SO_AMPMBIT            BIT19L
  230. #define SO_HMSBIT                BIT20L
  231.  
  232. #define SO_CELLTIME_HHMM24        SO_HHMMBIT
  233. #define SO_CELLTIME_HHMMSS24    SO_HHMMSSBIT
  234. #define SO_CELLTIME_HHMMAM        (SO_HHMMBIT | SO_AMPMBIT)
  235. #define SO_CELLTIME_HHMMSSAM    (SO_HHMMSSBIT | SO_AMPMBIT)
  236. #define SO_CELLTIME_HHMMHMS        (SO_HHMMBIT | SO_HMSBIT)
  237. #define SO_CELLTIME_HHMMSSHMS    (SO_HHMMSSBIT | SO_HMSBIT)
  238. #define SO_CELLTIME_NONE        0
  239.  
  240. #define SO_CELLDAY_NUMBER        BIT21L
  241. #define SO_CELLDAY_NONE     0
  242.  
  243. #define SO_CELLDAYOFWEEK_FULL    BIT22L
  244. #define SO_CELLDAYOFWEEK_ABBREV BIT23L
  245. #define SO_CELLDAYOFWEEK_NONE    0
  246.  
  247. /* The following values are stored in consecutive 3-bit pieces of an integer. */
  248.  
  249. /* MASK = 0x07 */
  250. #define SO_CELLDAYOFWEEK_SHIFT    0
  251. #define SO_CELLDAYOFWEEK_MASK    0x07
  252. #define SO_CELLDAYOFWEEK_1        1
  253. #define SO_CELLDAYOFWEEK_2        2
  254. #define SO_CELLDAYOFWEEK_3        3
  255. #define SO_CELLDAYOFWEEK_4        4
  256. #define SO_CELLDAYOFWEEK_5        5
  257.                                     
  258. /* MASK = 0x38 */
  259. #define SO_CELLMONTH_SHIFT    3
  260. #define SO_CELLMONTH_MASK        0x38
  261. #define SO_CELLMONTH_1            8    /* (1<<3) */
  262. #define SO_CELLMONTH_2            16    /* (2<<3) */
  263. #define SO_CELLMONTH_3            24    /* (3<<3) */
  264. #define SO_CELLMONTH_4            32    /* (4<<3) */
  265. #define SO_CELLMONTH_5            40    /* (5<<3) */
  266.  
  267. /* MASK = 0x1C0 */
  268. #define SO_CELLDAY_SHIFT        6
  269. #define SO_CELLDAY_MASK     0x1C0
  270. #define SO_CELLDAY_1            64        /* (1<<6) */
  271. #define SO_CELLDAY_2            128    /* (2<<6) */
  272. #define SO_CELLDAY_3            192    /* (3<<6) */
  273. #define SO_CELLDAY_4            256    /* (4<<6) */
  274. #define SO_CELLDAY_5            320    /* (5<<6) */
  275.  
  276. /* MASK = 0xE00 */
  277. #define SO_CELLYEAR_SHIFT        9
  278. #define SO_CELLYEAR_MASK        0xE00
  279. #define SO_CELLYEAR_1            512    /* (1<<9) */
  280. #define SO_CELLYEAR_2            1024    /* (2<<9) */
  281. #define SO_CELLYEAR_3            1536    /* (3<<9) */
  282. #define SO_CELLYEAR_4            2048    /* (4<<9) */
  283. #define SO_CELLYEAR_5            2560  /* (5<<9) */
  284.  
  285. /* MASK = 0x7000 */
  286. #define SO_CELLTIME_SHIFT        12
  287. #define SO_CELLTIME_MASK        0x7000
  288. #define SO_CELLTIME_1            4096  /* (1<<12) */
  289. #define SO_CELLTIME_2            8192  /* (2<<12) */
  290. #define SO_CELLTIME_3            12288 /* (3<<12) */
  291. #define SO_CELLTIME_4            16384 /* (4<<12) */
  292. #define SO_CELLTIME_5            20480 /* (5<<12) */
  293.  
  294.  
  295. /*
  296.  | Character sets.
  297. */
  298.  
  299. #define SO_PC                1
  300. #define SO_WINDOWS        3
  301. #define SO_DBCS            5
  302.  
  303.     /*
  304.     |     SOSetDateBase FLAGS
  305.     */
  306.  
  307. #define SO_LOTUSHELL    0x0001
  308.  
  309.     /*
  310.     |     SOGetInfo Ids
  311.     */
  312.  
  313. #define SOINFO_COLUMNRANGE  1
  314. #define SOINFO_STARTRECORD  2
  315.  
  316.     /*
  317.     |     SOPutCharX & SOPutSpecialCHarX FLAGS
  318.     */
  319.  
  320. #define SO_COUNTBIT            0x0001
  321. #define SO_LIMITEDITBIT 0x0002
  322. #define SO_HIDDENBIT        0x0004
  323.  
  324. #define SO_COUNT            SO_COUNTBIT
  325. #define SO_NOCOUNT        SO_LIMITEDITBIT
  326. #define SO_LIMITEDIT        SO_LIMITEDITBIT
  327. #define SO_DELETE            SO_COUNTBIT
  328. #define SO_NODELETE            0
  329. #define SO_HIDDEN            (SO_HIDDENBIT | SO_LIMITEDITBIT)
  330. #define SO_NOHIDDEN        0x0000
  331.  
  332.  
  333.     /*
  334.     |     font family
  335.     */
  336.  
  337. #define SO_FAMILYUNKNOWN        1
  338. #define SO_FAMILYROMAN            2
  339. #define SO_FAMILYSWISS            3
  340. #define SO_FAMILYMODERN     4
  341. #define SO_FAMILYSCRIPT     5
  342. #define SO_FAMILYDECORATIVE    6
  343. #define SO_FAMILYSYMBOL     7
  344.  
  345. #define SO_FAMILYWINDOWS        0x1000
  346.  
  347. #define SO_CHARSET_SHIFTJIS        0x2000
  348. #define SO_CHARSET_HANGEUL        0x4000
  349. #define SO_CHARSET_CHINESEBIG5    0x8000
  350.  
  351.     /*
  352.     |     line spacing types
  353.     */
  354.  
  355. #define SO_HEIGHTAUTO            1
  356. #define SO_HEIGHTATLEAST        2
  357. #define SO_HEIGHTEXACTLY        3
  358.  
  359.     /*
  360.     |     position flags
  361.     */
  362. #define SOPOS_FROMLEFTEDGE        0x01
  363. #define SOPOS_FROMTOPEDGE        0x02
  364. #define SOPOS_FROMBASELINE        0x04
  365.  
  366. typedef struct SOPAGEPOSITIONtag
  367. {
  368.     DWORD         dwFlags;
  369.     LONG         lXOffset;
  370.     LONG         lYOffset;
  371. } SOPAGEPOSITION, VWPTR * PSOPAGEPOSITION;
  372.  
  373.     /*
  374.     |     Bitmap filter definitions
  375.     */
  376.  
  377. /* wImageFlags */
  378. #define SO_BOTTOMTOTOP        0x0001
  379. #define SO_GRAYSCALE        0x0002
  380. #define SO_BLACKANDWHITE    0x0004
  381. #define SO_COLORPALETTE 0x0008
  382. #define SO_RGBCOLOR            0x0010
  383. #define SO_BGRCOLOR            0x0020
  384. #define SO_WHITEZERO        0x0040
  385.  
  386.  
  387.  
  388.     /*
  389.     |     Archive filter definitions
  390.     */
  391.  
  392. #define SO_ARCENDOFRECORD            0xFFFF
  393.  
  394. #define SOARC_FILENAME                1
  395. #define SOARC_FILEDATE                2
  396. #define SOARC_FILETIME                3
  397. #define SOARC_FILEPATH                4
  398. #define SOARC_COMPRESSIONTYPE        5
  399. #define SOARC_FILECOMMENT            6
  400. #define SOARC_FILEMODDATE            7
  401. #define SOARC_FILEMODTIME            8
  402. #define SOARC_FILESIZE                9
  403. #define SOARC_FILECOMPRESSSIZE    10
  404. #define SOARC_FILECRC                11
  405. #define SOARC_BUFFERSIZE            12
  406. #define SOARC_CHECKSUM                13
  407. #define SOARC_FILEOS                    14
  408. #define SOARC_ENCRYPTED             15
  409.  
  410.  
  411.     /*
  412.     |     Vector graphics stuff.
  413.     */
  414.  
  415. /*
  416. | Macros
  417. */
  418.  
  419. #ifdef WINDOWS
  420. #define SORGB(r,g,b) ((SOCOLORREF)(((BYTE)(r)|((DWORD)(BYTE)(g)<<8))|(((DWORD)(BYTE)(b))<<16)))
  421. #endif
  422.  
  423. #define SOPALETTERGB(r,g,b)   (0x02000000L | SORGB(r,g,b))
  424. #define SOPALETTEINDEX(i)     ((SOCOLORREF)(0x01000000L | (DWORD)(WORD)(i)))
  425. #define SOANGLETENTHS(n) ((SOANGLE)(n))
  426. #define SOSETRATIO(m,n) ((SORATIO)(((SORATIO)m<<16)|(SORATIO)(n)))
  427.  
  428. #define SOREDFROMRGB(rgb) (BYTE)(rgb&0x000000FF)
  429. #define SOGREENFROMRGB(rgb) (BYTE)((rgb&0x0000FF00)>>8)
  430. #define SOBLUEFROMRGB(rgb) (BYTE)((rgb&0x00FF0000)>>16)
  431.  
  432. typedef DWORD SOCOLORREF;
  433. typedef SHORT    SOANGLE;
  434. typedef DWORD SORATIO;
  435.  
  436. typedef struct SORECTtag
  437. {
  438.     SHORT     left;
  439.     SHORT     top;
  440.     SHORT     right;
  441.     SHORT     bottom;
  442. } SORECT, VWPTR *PSORECT;
  443.  
  444. typedef struct SOPOINTtag
  445. {
  446.     SHORT     x;
  447.     SHORT     y;
  448. } SOPOINT, VWPTR *PSOPOINT;
  449.  
  450.  
  451. #define SOLF_FACESIZE          32
  452. typedef struct SOLOGFONTtag
  453. {
  454.     SHORT     lfHeight;
  455.     SHORT     lfWidth;
  456.     SHORT     lfEscapement;
  457.     SHORT     lfOrientation;
  458.     SHORT     lfWeight;
  459.     BYTE    lfItalic;
  460.     BYTE    lfUnderline;
  461.     BYTE    lfStrikeOut;
  462.     BYTE    lfCharSet;
  463.     BYTE    lfOutPrecision;
  464.     BYTE    lfClipPrecision;
  465.     BYTE    lfQuality;
  466.     BYTE    lfPitchAndFamily;
  467.     CHAR    lfFaceName[SOLF_FACESIZE];
  468. } SOLOGFONT, VWPTR *PSOLOGFONT;
  469.  
  470. /* lfWeight values */
  471. #define SOLF_FW_NORMAL        400
  472. #define SOLF_FW_BOLD            700
  473.  
  474. /* lfCharSet */
  475. #define SOLF_ANSI_CHARSET            0
  476. #define SOLF_SYMBOL_CHARSET        2
  477. #define SOLF_OEM_CHARSET            255
  478.  
  479. /* lfOutPrecision */
  480. #define SOLF_OUT_DEFAULT_PRECIS 0
  481.  
  482. /* lfClipPrecision */
  483. #define SOLF_CLIP_DEFAULT_PRECIS    0
  484. #define SOLF_CLIP_LH_ANGLES        0x10
  485.  
  486. /* lfQuality */
  487. #define SOLF_DEFAULT_QUALITY        0
  488. #define SOLF_DRAFT_QUALITY            1
  489. #define SOLF_PROOF_QUALITY            2
  490.  
  491. /* PitchAndFamily pitch values (low 4 bits) */
  492. #define SOLF_DEFAULT_PITCH            0x00
  493. #define SOLF_FIXED_PITCH            0x01
  494. #define SOLF_VARIABLE_PITCH        0x02
  495.  
  496. /* PitchAndFamily family values (high 4 bits) */
  497. #define SOLF_FF_DECORATIVE            0x00
  498. #define SOLF_FF_DONTCARE            0x10
  499. #define SOLF_FF_MODERN                0x20
  500. #define SOLF_FF_ROMAN                0x30
  501. #define SOLF_FF_SCRIPT                0x40
  502. #define SOLF_FF_SWISS                0x50
  503.  
  504. typedef struct SOLOGPENtag
  505. {
  506.     SHORT     loPenStyle;
  507.     SOPOINT loWidth;
  508.     SOCOLORREF     loColor;
  509. } SOLOGPEN, VWPTR *PSOLOGPEN;
  510.  
  511. /* Pen Styles */
  512. #define SOPS_SOLID        0
  513. #define SOPS_DASH        1
  514. #define SOPS_DOT          2
  515. #define SOPS_DASHDOT             3
  516. #define SOPS_DASHDOTDOT       4
  517. #define SOPS_NULL        5
  518. #define SOPS_INSIDEFRAME        6
  519.  
  520. typedef struct SOLOGBRUSHtag
  521. {
  522.     WORD     lbStyle;
  523.     SOCOLORREF     lbColor;
  524.     SHORT     lbHatch;
  525. } SOLOGBRUSH, VWPTR *PSOLOGBRUSH;
  526.  
  527. /* Brush Styles */
  528. #define SOBS_SOLID        0
  529. #define SOBS_NULL            1
  530. #define SOBS_HOLLOW        SOBS_NULL
  531. #define SOBS_HATCHED         2
  532. #define SOBS_PATTERN         3
  533. #define SOBS_INDEXED         4
  534. #define SOBS_DIBPATTERN  5
  535.  
  536. /* Hatch Styles */
  537. #define SOHS_HORIZONTAL       0
  538. #define SOHS_VERTICAL            1
  539. #define SOHS_FDIAGONAL          2
  540. #define SOHS_BDIAGONAL          3
  541. #define SOHS_CROSS         4
  542. #define SOHS_DIAGCROSS          5
  543.  
  544.  
  545. typedef struct SOVECTORHEADERtag
  546. {
  547.     WORD     wStructSize;
  548.     SORECT  BoundingRect;
  549.     WORD     wHDpi;
  550.     WORD     wVDpi;
  551.     WORD     wImageFlags;
  552.     SOCOLORREF     BkgColor;
  553. } SOVECTORHEADER, VWPTR *PSOVECTORHEADER;
  554.  
  555. /* wImageFlags values */
  556. #define SO_VECTORRGBCOLOR            BIT0
  557. #define SO_VECTORCOLORPALETTE    BIT1
  558. #define SO_YISUP                        BIT2
  559. #define SO_XISLEFT                    BIT3
  560.  
  561. typedef struct SOARCINFOtag
  562. {
  563.         SORECT  Rect;
  564.         SOANGLE StartAngle;
  565.         SOANGLE EndAngle;
  566. } SOARCINFO, VWPTR *PSOARCINFO;
  567.  
  568. typedef struct SOTEXTINRECTtag
  569. {
  570.     SORECT  Rect;
  571.     WORD     wFormat;
  572.     SHORT     nTextLength;
  573. } SOTEXTINRECT, VWPTR *PSOTEXTINRECT;
  574.  
  575. /* wFormat values */
  576. #define SODT_TOP            0x0000
  577. #define SODT_LEFT        0x0000
  578. #define SODT_CENTER        0x0001
  579. #define SODT_RIGHT        0x0002
  580. #define SODT_VCENTER         0x0004
  581. #define SODT_BOTTOM        0x0008
  582. #define SODT_WORDBREAK     0x0010
  583. #define SODT_SINGLELINE  0x0020
  584. #define SODT_EXPANDTABS  0x0040
  585. #define SODT_TABSTOP         0x0080
  586. #define SODT_NOCLIP        0x0100
  587. #define SODT_EXTERNALLEADING  0x0200
  588. #define SODT_CALCRECT     0x0400
  589. #define SODT_NOPREFIX     0x0800
  590. #define SODT_INTERNAL     0x1000
  591.  
  592. /* PolyFillMode values */
  593. #define SOPF_ALTERNATE     1
  594. #define SOPF_WINDING     2
  595.  
  596. /* DrawMode values */
  597. #define SOR2_BLACK         1
  598. #define SOR2_NOTMERGEPEN      2
  599. #define SOR2_MASKNOTPEN       3
  600. #define SOR2_NOTCOPYPEN       4
  601. #define SOR2_MASKPENNOT       5
  602. #define SOR2_NOT          6
  603. #define SOR2_XORPEN          7
  604. #define SOR2_NOTMASKPEN       8
  605. #define SOR2_MASKPEN             9
  606. #define SOR2_NOTXORPEN          10
  607. #define SOR2_NOP          11
  608. #define SOR2_MERGENOTPEN      12
  609. #define SOR2_COPYPEN             13
  610. #define SOR2_MERGEPENNOT      14
  611. #define SOR2_MERGEPEN            15
  612. #define SOR2_WHITE         16
  613.  
  614. typedef struct SOTEXTATPOINTtag
  615. {
  616.     SOPOINT Point;
  617.     WORD     wFormat;
  618.     SHORT     nTextLength;
  619. } SOTEXTATPOINT, VWPTR *PSOTEXTATPOINT;
  620.  
  621. typedef struct SOTEXTATARCANGLEtag
  622. {
  623.     SOARCINFO     ArcInfo;
  624.     WORD     wFormat;
  625.     SHORT     nTextLength;
  626. } SOTEXTATARCANGLE, VWPTR *PSOTEXTATARCANGLE;
  627.  
  628. /* Text Alignment Options */
  629. #define SOTA_NOUPDATECP       0x0000
  630. #define SOTA_UPDATECP          0x0001
  631. #define SOTA_LEFT             0x0000
  632. #define SOTA_RIGHT             0x0002
  633. #define SOTA_CENTER                0x0006
  634. #define SOTA_TOP                0x0000
  635. #define SOTA_BOTTOM                0x0008
  636. #define SOTA_BASELINE          0x0018
  637.  
  638. typedef struct    SOSPOLYINFOtag
  639. {
  640.     WORD     wFormat;
  641.     SHORT     nPoints;
  642. } SOPOLYINFO, VWPTR *PSOPOLYINFO;
  643.  
  644. /* Poly object types */
  645. #define SOPT_POLYLINE                1
  646. #define SOPT_POLYGON                    2
  647. #define SOPT_BEZIEROPEN             3
  648. #define SOPT_BEZIERCLOSE            4
  649. #define SOPT_SPLINEOPEN             5
  650. #define SOPT_SPLINECLOSE            6
  651. #define SOPT_CPPOLYLINE             7    /* Current Point polys */
  652. #define SOPT_CPPOLYGON                8
  653.  
  654. /* Background mode values */
  655. #define SOBK_TRANSPARENT    1
  656. #define SOBK_OPAQUE            2
  657.  
  658.  
  659. typedef struct    SOCPTEXTATPOINTtag
  660. {
  661.     WORD     wFormat;
  662.     SHORT     nTextLength;
  663. } SOCPTEXTATPOINT,    VWPTR *PSOCPTEXTATPOINT;
  664.  
  665. typedef struct SOCPARCANGLEtag
  666. {
  667.     SOPOINT Center;
  668.     SOANGLE SweepAngle;
  669. } SOCPARCANGLE, VWPTR *PSOCPARCANGLE;
  670.  
  671. typedef struct SOCPPIEANGLEtag
  672. {
  673.     SOPOINT     Radius;
  674.     SOANGLE StartAngle;
  675.     SOANGLE SweepAngle;
  676. } SOCPPIEANGLE, VWPTR *PSOCPPIEANGLE;
  677.  
  678. typedef struct SOTRANSFORMtag
  679. {
  680.     WORD         wTransformFlags;
  681.     SOPOINT Origin;
  682.     SHORT         xOffset;
  683.     SHORT         yOffset;
  684.     SORATIO xScale;
  685.     SORATIO yScale;
  686.     SORATIO xSkew;
  687.     SORATIO ySkew;
  688.     SOANGLE RotationAngle;
  689. } SOTRANSFORM, VWPTR *PSOTRANSFORM;
  690.  
  691. /* Transformation flags */
  692. #define SOTF_NOTRANSFORM    BIT0
  693. #define SOTF_ROTATE            BIT1
  694. #define SOTF_XOFFSET            BIT2
  695. #define SOTF_YOFFSET            BIT3
  696. #define SOTF_XSCALE            BIT4
  697. #define SOTF_YSCALE            BIT5
  698. #define SOTF_XSKEW            BIT6
  699. #define SOTF_YSKEW            BIT7
  700.  
  701. /* Possible values for the clip mode */
  702. #define SO_DONOTCLIP        0
  703. #define SO_CLIPTOPATH    1
  704.  
  705. /* Possible values for the point relation attribute */
  706. #define SOPR_ABSOLUTE    0
  707. #define SOPR_RELATIVE    1
  708.  
  709. /* Possible values for the wDrawPathFlags */
  710. #define SODP_STROKE    BIT0
  711. #define SODP_FILL        BIT1
  712.  
  713. typedef struct SOGROUPINFOtag
  714. {
  715.     WORD         wStructSize;
  716.     SORECT  BoundingRect;
  717.     SHORT         nTransforms;
  718. } SOGROUPINFO, VWPTR *PSOGROUPINFO;
  719.  
  720. typedef struct SOPATHINFOtag
  721. {
  722.     WORD         wStructSize;
  723.     SORECT  BoundingRect;
  724.     SHORT         nTransforms;
  725. } SOPATHINFO, VWPTR *PSOPATHINFO;
  726.  
  727. #define SOFF_FIXUPBOUNDS        BIT0
  728.  
  729. typedef struct SOFRAMEINFOtag
  730. {
  731.     SORECT  BoundingRect;
  732.     WORD         wFlags;
  733.     WORD         OriginalWidth;
  734.     SOANGLE RotationAngle;
  735.     SOPOINT ReferencePoint;
  736. } SOFRAMEINFO, VWPTR *PSOFRAMEINFO;
  737.  
  738. typedef struct SOMPARAINDENTStag
  739. {
  740.     SHORT         FirstLineIndent;
  741.     SHORT         LeftIndent;
  742.     SHORT         RightIndent;
  743. } SOMPARAINDENTS, VWPTR *PSOMPARAINDENTS;
  744.  
  745. typedef struct SOMPARASPACINGtag
  746. {
  747.     WORD         LineSpaceAdjust;
  748.     WORD         ParaSpaceAdjust;
  749. } SOMPARASPACING, VWPTR *PSOMPARASPACING;
  750.  
  751. /* Maximum Points provided by a filter in one SOPOINTS object call */
  752. #define SOMAXPOINTS    128
  753.  
  754. /* SOVectorAttr Id's */
  755. #define SO_SELECTFONT        0x100
  756. #define SO_SELECTPEN            0x101
  757. #define SO_SELECTBRUSH        0x102
  758. #define SO_POLYFILLMODE     0x103
  759. #define SO_TEXTCHAREXTRA    0x104
  760. #define SO_DRAWMODE            0x105
  761. #define SO_TEXTCOLOR            0x106
  762. #define SO_BKMODE                0x107
  763. #define SO_BKCOLOR            0x108
  764. #define SO_OBJECTTRANSFORM    0x109
  765. #define SO_CLIPMODE            0x10A
  766. #define SO_POINTRELATION    0x10B
  767. #define SO_MPARAINDENT        0x10C
  768. #define SO_MPARAALIGN        0x10D
  769. #define SO_MPARASPACING     0x10E
  770.  
  771. /* SOVectorObject Id's */
  772. #define SO_ARC                0x300
  773. #define SO_CHORD                0x301
  774. #define SO_TEXTINRECT        0x302
  775. #define SO_ELLIPSE            0x303
  776. #define SO_FLOODFILL        0x304
  777. #define SO_LINE             0x305
  778. #define SO_PIE                0x306
  779. #define SO_STARTPOLY        0x307
  780. #define SO_ENDPOLY            0x308
  781. #define SO_RECTANGLE        0x309
  782. #define SO_BEGINPATH        0x30A
  783. #define SO_ENDPATH            0x30B
  784. #define SO_CLOSESUBPATH 0x30C
  785. #define SO_DRAWPATH            0x30D
  786. #define SO_BEGINGROUP        0x30E
  787. #define SO_ENDGROUP            0x30F
  788. #define SO_ROUNDRECT        0x310
  789. #define SO_SETPIXEL            0x311
  790. #define SO_TEXTATPOINT        0x312
  791. #define SO_POINTS            0x313
  792. #define SO_ARCANGLE            0x314
  793. #define SO_CHORDANGLE        0x315
  794. #define SO_PIEANGLE            0x316
  795. #define SO_CPSET                0x317
  796. #define SO_CPLINE            0x318
  797. #define SO_CPRECTANGLE        0x319
  798. #define SO_CPTEXTATPOINT    0x31A
  799. #define SO_CPELLIPSE        0x31B
  800. #define SO_CPARCTRIPLE        0x31C
  801. #define SO_CPARCANGLE        0x31D
  802. #define SO_CPPIEANGLE        0x31E
  803. #define SO_ARCCLOCKWISE 0x31F
  804. #define SO_ARCANGLECLOCKWISE    0x320
  805. #define SO_TEXTATARCANGLE        0x321
  806. #define SO_BEGINSYMBOL            0x322
  807. #define SO_ENDSYMBOL            0x323
  808. #define SO_BEGINTEXTFRAME        0x324
  809. #define SO_ENDTEXTFRAME     0x325
  810. #define SO_TEXTINPARA            0x326
  811. #define SO_PARAEND                0x327
  812.  
  813. #define    SO_ARCTRIPLE            0x328
  814. #define    SO_PIETRIPLE            0x329
  815. #define    SO_CHORDTRIPLE            0x32A
  816. #define    SO_ELLIPSERADII        0x32B
  817. #define    SO_ARCRADII                0x32C
  818. #define    SO_PIERADII                0x32D
  819. #define    SO_CHORDRADII            0x32E
  820.         
  821.  
  822. #define SO_VECTORENDOFCHUNK    0xFFFF
  823.  
  824.     /*
  825.     |     SO Header info
  826.     */
  827. #define SOHDR_ARCNUMFILES        1
  828. #define SOHDR_ARCCREATEDATE    2
  829. #define SOHDR_ARCMODTIME        3
  830. #define SOHDR_ARCTYPE            4
  831. #define SOHDR_ARCOS                5
  832. #define SOHDR_ARCCOMMENT        6
  833. #define SOHDR_ARCVERSION        7
  834.  
  835.  
  836.     /*
  837.     |  Bored-er definitions
  838.     */
  839.  
  840. #define SO_BORDERSINGLE     0x0000    // Default
  841. #define SO_BORDERNONE        0x0001
  842. #define SO_BORDERDOUBLE     0x0002
  843. #define SO_BORDERHAIRLINE    0x0004
  844. #define SO_BORDERTHICK        0x0008
  845. #define SO_BORDERSHADOW     0x0010
  846. #define SO_BORDERDOTTED     0x0020
  847. #define SO_BORDERPRIORITY    0x0040
  848.  
  849.     /*
  850.     |     Table stuff.
  851.     */
  852. #define SO_MERGELEFT            0x0001
  853. #define SO_MERGERIGHT            0x0002
  854. #define SO_MERGEABOVE            0x0004
  855. #define SO_MERGEBELOW            0x0008
  856.  
  857. typedef struct SOBORDERtag
  858. {
  859.     WORD             wWidth;     // Width of border in twips
  860.     SOCOLORREF     rgbColor;     // Color of border
  861.     WORD             wFlags;     // Specifies the type of border and the edges to which it applies.
  862.  
  863. } SOBORDER, VWPTR * PSOBORDER;
  864.  
  865.  
  866.  
  867. typedef struct SOTABLECELLINFOtag
  868. {
  869.     WORD             wWidth;             // Width of the cell, in twips
  870.     WORD             wMerge;             // Bitfield that indicates whether the cell should be merged with any of the cells around it.    Possible flags are SO_MERGELEFT, SO_MERGERIGHT, SO_MERGEABOVE, and SO_MERGEBELOW.
  871.     WORD             wShading;             // Intensity value for background shading, in range of 0-255, where a value of zero indicates that there is no background shading.
  872.     SOBORDER         LeftBorder;             // Specifies left border
  873.     SOBORDER         RightBorder;         // Specifies right border
  874.     SOBORDER         TopBorder;             // Specifies top border
  875.     SOBORDER         BottomBorder;         // Specifies bottom border
  876.  
  877. } SOTABLECELLINFO, VWPTR * PSOTABLECELLINFO, HUGE * HPSOTABLECELLINFO;
  878.  
  879.  
  880.     /*
  881.     |     SOTAB structure
  882.     */
  883.  
  884. typedef struct SOTABtag
  885.     {
  886.     WORD         wType;
  887.     WORD         wChar;
  888.     WORD         wLeader;
  889.     DWORD         dwOffset;
  890.     } SOTAB, VWPTR * PSOTAB;
  891.  
  892.     /*
  893.     |     SOFILTERINFO structure
  894.     */
  895.  
  896. typedef struct SOFILTERINFOtag
  897.     {
  898.     WORD         wFilterType;
  899.     WORD         wFilterCharSet;
  900.     CHAR         szFilterName[32];
  901.     } SOFILTERINFO, VWPTR * PSOFILTERINFO;
  902.  
  903.     /*
  904.     |     SOCOLUMN structure
  905.     */
  906.  
  907. typedef struct SOCOLUMNtag
  908. {
  909.     WORD         wStructSize;
  910.     LONG         dwWidth;
  911.     CHAR         szName[40];
  912. } SOCOLUMN, VWPTR * PSOCOLUMN;
  913.  
  914.     /*
  915.     |     SOFIELD structure
  916.     */
  917.  
  918. typedef struct SOFIELDtag
  919. {
  920.     WORD         wStructSize;
  921.     LONG         dwWidth;
  922.     CHAR         szName[40];
  923.     WORD         wStorage;
  924.     WORD         wDisplay;
  925.     DWORD         dwSubDisplay;
  926.     WORD         wPrecision;
  927.     WORD         wAlignment;
  928. } SOFIELD, VWPTR * PSOFIELD;
  929.  
  930.     /*
  931.     |     SOTEXTCELL structure
  932.     */
  933.  
  934. typedef struct SOTEXTCELLtag
  935. {
  936.     WORD         wStructSize;
  937.     WORD         wAlignment;
  938.     WORD         wAttribute;
  939. } SOTEXTCELL, VWPTR * PSOTEXTCELL;
  940.  
  941.     /*
  942.     |     SODATACELL structure
  943.     */
  944.  
  945. typedef union SONUMBERUNIONtag
  946.     {
  947.     SOINT32S      Int32S;
  948.     SOINT32U      Int32U;
  949.     BYTE          IEEE4[4];
  950.     BYTE          IEEE8[8];
  951.     BYTE          IEEE10[10];
  952.     BYTE          BCD8[8];
  953.     } SONUMBERUNION, VWPTR * PSONUMBERUNION;
  954.  
  955. typedef struct SODATACELLtag
  956. {
  957.     WORD         wStructSize;
  958.     WORD         wStorage;
  959.     WORD         wDisplay;
  960.     DWORD         dwSubDisplay;
  961.     WORD         wPrecision;
  962.     WORD         wAlignment;
  963.     WORD         wAttribute;
  964. /*
  965.     union
  966.     {
  967.         SOINT32S      Int32S;
  968.         SOINT32U      Int32U;
  969.         BYTE          IEEE4[4];
  970.         BYTE          IEEE8[8];
  971.         BYTE          IEEE10[10];
  972.         BYTE          BCD8[8];
  973.     } uStorage;
  974. */
  975.     SONUMBERUNION    uStorage;
  976. } SODATACELL, VWPTR * PSODATACELL;
  977.  
  978. typedef VOID FAR * SOFILE;
  979.  
  980. /* Bitmap graphics header */
  981. typedef struct tagSOBITMAPHEADER
  982. {
  983.     WORD         wStructSize;
  984.     WORD         wImageFlags;
  985.     WORD         wImageWidth;
  986.     WORD         wImageLength;
  987.     WORD         wTileWidth;
  988.     WORD         wTileLength;
  989.     WORD         wBitsPerPixel;
  990.     WORD         wNPlanes;
  991.     WORD         wHDpi;
  992.     WORD         wVDpi;
  993. /**
  994.     WORD         wEncoding;
  995.     WORD         wImageLeft;
  996.     WORD         wImageTop;
  997.     WORD         wHScreenSize;
  998.     WORD         wVScreenSize;
  999. **/
  1000. }    SOBITMAPHEADER, VWPTR * PSOBITMAPHEADER;
  1001.  
  1002. /*
  1003. |    Structure defined for the DO special function for ARCHIVE formats
  1004. */
  1005.  
  1006. typedef struct tagSODOSPECIALARC
  1007. {
  1008.     SOFILE  hOutFile;
  1009.     HANDLE  hFileName;
  1010.     LPSTR         lpFileName;
  1011.     WORD         wOptFlags;
  1012.     WORD         wRecordNum;
  1013.     DWORD         dwIndex;
  1014. } SODOSPECIALARC, VWPTR * PSODOSPECIALARC;
  1015.  
  1016.  
  1017. /*
  1018.  |
  1019.  | Embedded objects
  1020.  |
  1021. */
  1022.  
  1023.  
  1024.  
  1025. #define SO_MAINTAINASPECT    0x0001    // image aspect ratio is preserved
  1026. #define SO_CENTERIMAGE        0x0002    // if set, image is centered in its final rectangle.
  1027.  
  1028. #define SOOBJECT_GRAPHIC                0x0001
  1029. #define SOOBJECT_OLE                    0x0002
  1030. #define SOOBJECT_GRAPHIC_AND_OLE    0x0003
  1031.  
  1032. #define SOOBJECT_OLESTATIC            0x0001
  1033.  
  1034. typedef struct SOOBJECTLOCtag
  1035. {
  1036.     BOOL     bLink;
  1037.     BYTE     szFile[144];
  1038.     DWORD     dwOffset;
  1039.     DWORD     dwLength;
  1040. } SOOBJECTLOC, VWPTR * PSOOBJECTLOC;
  1041.  
  1042. typedef struct SOGRAPHICtag
  1043. {
  1044.     WORD         wId;
  1045.     DWORD         dwOrgHeight;
  1046.     DWORD         dwOrgWidth;
  1047.     LONG         lCropTop;
  1048.     LONG         lCropLeft;
  1049.     LONG         lCropBottom;
  1050.     LONG         lCropRight;
  1051.     DWORD         dwFinalHeight;
  1052.     DWORD         dwFinalWidth;
  1053.     SOBORDER     soLeftBorder;
  1054.     SOBORDER     soTopBorder;
  1055.     SOBORDER     soBottomBorder;
  1056.     SOBORDER     soRightBorder;
  1057.     DWORD         dwFlags;
  1058. } SOGRAPHIC, VWPTR * PSOGRAPHIC;
  1059.  
  1060. typedef struct SOGRAPHICOBJECTtag
  1061. {
  1062.     WORD             wStructSize;
  1063.     DWORD             dwFlags;
  1064.     DWORD             dwType;
  1065.     SOGRAPHIC     soGraphic;
  1066.     SOOBJECTLOC     soGraphicLoc;
  1067.     SOOBJECTLOC     soOLELoc;
  1068. } SOGRAPHICOBJECT, VWPTR * PSOGRAPHICOBJECT;
  1069.  
  1070.  
  1071. #define SOPUTCHAR                1
  1072. #define SOPUTCHARX                2
  1073. #define SOPUTSPECIALCHARX        3
  1074. #define SOPUTCHARATTR            4
  1075. #define SOPUTCHARHEIGHT     5
  1076. #define SOPUTPARAALIGN            6
  1077. #define SOPUTPARAINDENTS        7
  1078. #define SOSTARTTABSTOPS     8
  1079. #define SOENDTABSTOPS            9
  1080. #define SOPUTTABSTOP            10
  1081. #define SOPUTMARGINS            11
  1082. #define SOPUTSUBDOCINFO     12
  1083. #define SOPUTBREAK                13
  1084. #define SOPUTDATACELL            14
  1085. #define SOPUTTEXTCELL            15
  1086. #define SOPUTMORETEXT            16
  1087. #define SOPUTFIELD                17
  1088. #define SOPUTVARFIELD            18
  1089. #define SOPUTMOREVARFIELD        19
  1090. #define SOSTARTCOLUMNINFO        20
  1091. #define SOSTARTFIELDINFO        21
  1092. #define SOPUTCOLUMNINFO     22
  1093. #define SOPUTFIELDINFO            23
  1094. #define SOENDCOLUMNINFO     24
  1095. #define SOENDFIELDINFO            25
  1096. #define SOPUTSECTIONTYPE        26
  1097. #define SOPUTSECTIONNAME        27
  1098. #define SOSETDATEBASE            28
  1099. #define SOBAILOUT                29
  1100. #define SOTAGBEGIN                30
  1101. #define SOTAGEND                    31
  1102. #define SOGETINFO                32
  1103. #define SOPUTSTRING                33
  1104. #define SUUSERSAVEDATA            34
  1105. #define SUUSERRETRIEVEDATA    35
  1106. #define SOPUTBITMAPHEADER        36
  1107. #define SOSTARTPALETTE            37
  1108. #define SOPUTPALETTEENTRY        38
  1109. #define SOENDPALETTE            39
  1110. #define SOPUTSCANLINEDATA        40
  1111. #define SOSTARTFONTTABLE        41
  1112. #define SOPUTFONTTABLEENTRY    42
  1113. #define SOENDFONTTABLE            43
  1114. #define SOPUTCHARFONTBYID        44
  1115. #define SOPUTCHARFONTBYNAME    45
  1116. #define SOPUTPARASPACING        46
  1117. #define SOPUTARCHIVEFIELD        47
  1118. #define SOSTARTHDRINFO            48
  1119. #define SOENDHDRINFO            49
  1120. #define SOPUTHDRENTRY            50
  1121. #define SOPUTVECTORHEADER    51
  1122. #define SOVECTOROBJECT        52
  1123. #define SOVECTORATTR            53
  1124. #define SOBEGINTABLE            54
  1125. #define SOENDTABLE                55
  1126. #define SOPUTTABLEROWFORMAT    56
  1127. #define SOPUTTABLECELLINFO    57
  1128. #define SOPUTGRAPHICOBJECT    58
  1129. #define SOGOTOPOSITION            59
  1130. #define SODRAWLINE                60
  1131.  
  1132. typedef struct SORTNStag
  1133. {    
  1134.     VOID (SO_ENTRYMOD * SOPutChar            )(WORD, DWORD, DWORD);
  1135.     VOID (SO_ENTRYMOD * SOPutCharX      )(WORD, WORD, DWORD, DWORD);
  1136.     VOID (SO_ENTRYMOD * SOPutSpecialCharX )(WORD, WORD, DWORD, DWORD);
  1137.     VOID (SO_ENTRYMOD * SOPutCharAttr     )(WORD, WORD, DWORD, DWORD);
  1138.     VOID (SO_ENTRYMOD * SOPutCharHeight   )(WORD, DWORD, DWORD);
  1139.     VOID (SO_ENTRYMOD * SOPutParaAlign    )(WORD, DWORD, DWORD);
  1140.     VOID (SO_ENTRYMOD * SOPutParaIndents  )(DWORD, DWORD, DWORD, DWORD, DWORD);
  1141.     VOID (SO_ENTRYMOD * SOStartTabStops   )(DWORD, DWORD);
  1142.     VOID (SO_ENTRYMOD * SOEndTabStops     )(DWORD, DWORD);
  1143.     VOID (SO_ENTRYMOD * SOPutTabStop         )(PSOTAB, DWORD, DWORD);
  1144.     VOID (SO_ENTRYMOD * SOPutMargins         )(DWORD, DWORD, DWORD, DWORD);
  1145.     VOID (SO_ENTRYMOD * SOPutSubdocInfo   )(WORD, WORD, DWORD, DWORD);
  1146.     WORD (SO_ENTRYMOD * SOPutBreak      )(WORD, DWORD, DWORD, DWORD);
  1147.     VOID (SO_ENTRYMOD * SOPutTextCell     )(PSOTEXTCELL,WORD,CHAR VWPTR *,WORD,DWORD,DWORD);
  1148.     VOID (SO_ENTRYMOD * SOPutMoreText     )(WORD,CHAR VWPTR *,WORD,DWORD,DWORD);
  1149.     VOID (SO_ENTRYMOD * SOPutDataCell     )(PSODATACELL,DWORD,DWORD);
  1150.     VOID (SO_ENTRYMOD * SOPutField      )(VOID VWPTR *,DWORD,DWORD);
  1151.     VOID (SO_ENTRYMOD * SOPutVarField     )(VOID VWPTR *,WORD,WORD,DWORD,DWORD);
  1152.     VOID (SO_ENTRYMOD * SOPutMoreVarField )(VOID VWPTR *,WORD,WORD,DWORD,DWORD);
  1153.     VOID (SO_ENTRYMOD * SOStartColumnInfo )(DWORD,DWORD);
  1154.     VOID (SO_ENTRYMOD * SOStartFieldInfo  )(DWORD,DWORD);
  1155.     VOID (SO_ENTRYMOD * SOPutColumnInfo   )(PSOCOLUMN,DWORD,DWORD);
  1156.     VOID (SO_ENTRYMOD * SOPutFieldInfo    )(PSOFIELD,DWORD,DWORD);
  1157.     VOID (SO_ENTRYMOD * SOEndColumnInfo   )(DWORD,DWORD);
  1158.     VOID (SO_ENTRYMOD * SOEndFieldInfo    )(DWORD,DWORD);
  1159.     VOID (SO_ENTRYMOD * SOPutSectionType  )(WORD,DWORD,DWORD);
  1160.     VOID (SO_ENTRYMOD * SOPutSectionName  )(CHAR VWPTR *,DWORD,DWORD);
  1161.     VOID (SO_ENTRYMOD * SOSetDateBase     )(DWORD,WORD,DWORD,DWORD);
  1162.     VOID (SO_ENTRYMOD * SOBailOut            )(WORD,DWORD,DWORD);
  1163.     VOID (SO_ENTRYMOD * SOTagBegin      )(DWORD,DWORD,DWORD);
  1164.     VOID (SO_ENTRYMOD * SOTagEnd              )(DWORD,DWORD);
  1165.     VOID (SO_ENTRYMOD * SOGetInfo            )(WORD,VOID VWPTR *,DWORD,DWORD);
  1166.     VOID (SO_ENTRYMOD * SOPutString     )(LPSTR, WORD, DWORD, DWORD);
  1167.     WORD (SO_ENTRYMOD * SUUserSaveData    )(VOID VWPTR *,DWORD,DWORD);
  1168.     WORD (SO_ENTRYMOD * SUUserRetrieveData)(WORD,VOID VWPTR *,DWORD,DWORD);
  1169.     VOID (SO_ENTRYMOD * SOPutBitmapHeader )(PSOBITMAPHEADER, DWORD, DWORD);
  1170.     VOID (SO_ENTRYMOD * SOStartPalette    )(DWORD, DWORD);
  1171.     VOID (SO_ENTRYMOD * SOPutPaletteEntry )(CHAR,CHAR,CHAR,DWORD,DWORD);
  1172.     VOID (SO_ENTRYMOD * SOEndPalette         )(DWORD,DWORD);
  1173.     WORD (SO_ENTRYMOD * SOPutScanLineData )(VOID VWPTR *,DWORD,DWORD);
  1174.     VOID (SO_ENTRYMOD * SOStartFontTable     )(DWORD,DWORD);
  1175.     VOID (SO_ENTRYMOD * SOPutFontTableEntry)(DWORD,WORD,LPSTR,DWORD,DWORD);
  1176.     VOID (SO_ENTRYMOD * SOEndFontTable         )(DWORD,DWORD);
  1177.     VOID (SO_ENTRYMOD * SOPutCharFontById     )(DWORD,DWORD,DWORD);
  1178.     VOID (SO_ENTRYMOD * SOPutCharFontByName)(WORD,LPSTR,DWORD,DWORD);
  1179.     VOID (SO_ENTRYMOD * SOPutParaSpacing     )(WORD,DWORD,DWORD,DWORD,DWORD,DWORD);
  1180.     VOID (SO_ENTRYMOD * SOPutArchiveField     )(WORD,WORD,LPSTR,DWORD,DWORD);
  1181.     VOID (SO_ENTRYMOD * SOStartHdrInfo         )(DWORD,DWORD);
  1182.     VOID (SO_ENTRYMOD * SOEndHdrInfo             )(DWORD,DWORD);
  1183.     VOID (SO_ENTRYMOD * SOPutHdrEntry         )(LPSTR,LPSTR,WORD,DWORD,DWORD);
  1184.     VOID (SO_ENTRYMOD * SOPutVectorHeader     )(PSOVECTORHEADER,DWORD,DWORD);
  1185.     VOID (SO_ENTRYMOD * SOVectorObject         )(SHORT,WORD,VOID VWPTR *,DWORD,DWORD);
  1186.     VOID (SO_ENTRYMOD * SOVectorAttr         )(SHORT,WORD,VOID VWPTR *,DWORD,DWORD);
  1187.     VOID (SO_ENTRYMOD * SOBeginTable             )(DWORD,DWORD);
  1188.     VOID (SO_ENTRYMOD * SOEndTable          )(DWORD,DWORD);
  1189.     VOID (SO_ENTRYMOD * SOPutTableRowFormat)(LONG,WORD,WORD,WORD,WORD,WORD,DWORD,DWORD);
  1190.     VOID (SO_ENTRYMOD * SOPutTableCellInfo  )(PSOTABLECELLINFO,DWORD,DWORD);
  1191.     VOID (SO_ENTRYMOD * SOPutGraphicObject  )(PSOGRAPHICOBJECT,DWORD,DWORD);
  1192.     VOID (SO_ENTRYMOD * SOGoToPosition     )(PSOPAGEPOSITION,DWORD,DWORD);
  1193.     VOID (SO_ENTRYMOD * SODrawLine      )(PSOPAGEPOSITION,SOCOLORREF,WORD,DWORD,DWORD,DWORD,DWORD);
  1194. } SORTNS;
  1195.  
  1196. #endif /*SO_DEFS.H*/
  1197.  
  1198.