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.

219 lines
6.7 KiB

  1. #ifndef LSIMETH_DEFINED
  2. #define LSIMETH_DEFINED
  3. #include "lsdefs.h"
  4. #include "plscbk.h"
  5. #include "plsrun.h"
  6. #include "pilsobj.h"
  7. #include "plnobj.h"
  8. #include "pdobj.h"
  9. #include "pfmti.h"
  10. #include "pbrko.h"
  11. #include "pobjdim.h"
  12. #include "pdispi.h"
  13. #include "plsdocin.h"
  14. #include "pposichn.h"
  15. #include "plocchnk.h"
  16. #include "plsfgi.h"
  17. #include "pheights.h"
  18. #include "plsqin.h"
  19. #include "plsqout.h"
  20. #include "plssubl.h"
  21. #include "plschp.h"
  22. #include "lstflow.h"
  23. #include "lskjust.h"
  24. #include "breakrec.h"
  25. #include "brkcond.h"
  26. #include "brkkind.h"
  27. #include "fmtres.h"
  28. #include "mwcls.h"
  29. typedef struct
  30. {
  31. LSERR (WINAPI* pfnCreateILSObj)(POLS, PLSC, PCLSCBK, DWORD, PILSOBJ*);
  32. /* CreateILSObj
  33. * pols (IN):
  34. * plsc (IN): LS context
  35. * plscbk (IN): callbacks
  36. * idObj (IN): id of the object
  37. * &pilsobj (OUT): object ilsobj
  38. */
  39. LSERR (WINAPI* pfnDestroyILSObj)(PILSOBJ);
  40. /* DestroyILSObj
  41. * pilsobj (IN): object ilsobj
  42. */
  43. LSERR (WINAPI* pfnSetDoc)(PILSOBJ, PCLSDOCINF);
  44. /* SetDoc
  45. * pilsobj (IN): object ilsobj
  46. * lsdocinf (IN): initialization data at document level
  47. */
  48. LSERR (WINAPI* pfnCreateLNObj)(PCILSOBJ, PLNOBJ*);
  49. /* CreateLNObj
  50. * pilsobj (IN): object ilsobj
  51. * &plnobj (OUT): object lnobj
  52. */
  53. LSERR (WINAPI* pfnDestroyLNObj)(PLNOBJ);
  54. /* DestroyLNObj
  55. * plnobj (OUT): object lnobj
  56. */
  57. LSERR (WINAPI* pfnFmt)(PLNOBJ, PCFMTIN, FMTRES*);
  58. /* Fmt
  59. * plnobj (IN): object lnobj
  60. * pfmtin (IN): formatting input
  61. * &fmtres (OUT): formatting result
  62. */
  63. LSERR (WINAPI* pfnFmtResume)(PLNOBJ, const BREAKREC*, DWORD, PCFMTIN, FMTRES*);
  64. /* FmtResume
  65. * plnobj (IN): object lnobj
  66. * rgBreakRecord (IN): array of break records
  67. * nBreakRecord (IN): size of the break records array
  68. * pfmtin (IN): formatting input
  69. * &fmtres (OUT): formatting result
  70. */
  71. LSERR (WINAPI* pfnGetModWidthPrecedingChar)(PDOBJ, PLSRUN, PLSRUN, PCHEIGHTS, WCHAR, MWCLS, long*);
  72. /* GetModWidthPrecedingChar
  73. * pdobj (IN): dobj
  74. * plsrun (IN): plsrun of the object
  75. * plsrunText (IN): plsrun of the preceding char
  76. * heightsRef (IN): height info about character
  77. * wchar (IN): preceding character
  78. * mwcls (IN): ModWidth class of preceding character
  79. * &durChange (OUT): amount by which width of the preceding char is to be changed
  80. */
  81. LSERR (WINAPI* pfnGetModWidthFollowingChar)(PDOBJ, PLSRUN, PLSRUN, PCHEIGHTS, WCHAR, MWCLS, long*);
  82. /* GetModWidthPrecedingChar
  83. * pdobj (IN): dobj
  84. * plsrun (IN): plsrun of the object
  85. * plsrunText (IN): plsrun of the following char
  86. * heightsRef (IN): height info about character
  87. * wchar (IN): following character
  88. * mwcls (IN): ModWidth class of the following character
  89. * &durChange (OUT): amount by which width of the following char is to be changed
  90. */
  91. LSERR (WINAPI* pfnTruncateChunk)(PCLOCCHNK, PPOSICHNK);
  92. /* Truncate
  93. * plocchnk (IN): locchnk to truncate
  94. * posichnk (OUT): truncation point
  95. */
  96. LSERR (WINAPI* pfnFindPrevBreakChunk)(PCLOCCHNK, PCPOSICHNK, BRKCOND, PBRKOUT);
  97. /* FindPrevBreakChunk
  98. * plocchnk (IN): locchnk to break
  99. * pposichnk (IN): place to start looking for break
  100. * brkcond (IN): recommmendation about the break after chunk
  101. * &brkout (OUT): results of breaking
  102. */
  103. LSERR (WINAPI* pfnFindNextBreakChunk)(PCLOCCHNK, PCPOSICHNK, BRKCOND, PBRKOUT);
  104. /* FindNextBreakChunk
  105. * plocchnk (IN): locchnk to break
  106. * pposichnk (IN): place to start looking for break
  107. * brkcond (IN): recommmendation about the break before chunk
  108. * &brkout (OUT): results of breaking
  109. */
  110. LSERR (WINAPI* pfnForceBreakChunk)(PCLOCCHNK, PCPOSICHNK, PBRKOUT);
  111. /* ForceBreakChunk
  112. * plocchnk (IN): locchnk to break
  113. * pposichnk (IN): place to start looking for break
  114. * &brkout (OUT): results of breaking
  115. */
  116. LSERR (WINAPI* pfnSetBreak)(PDOBJ, BRKKIND, DWORD, BREAKREC*, DWORD*);
  117. /* SetBreak
  118. * pdobj (IN): dobj which is broken
  119. * brkkind (IN): Previous/Next/Force/Imposed was chosen
  120. * nBreakRecord (IN): size of array
  121. * rgBreakRecord (OUT): array of break records
  122. * nActualBreakRecord (OUT): actual number of used elements in array
  123. */
  124. LSERR (WINAPI* pfnGetSpecialEffectsInside)(PDOBJ, UINT*);
  125. /* GetSpecialEffects
  126. * pdobj (IN): dobj
  127. * &EffectsFlags (OUT): Special effects inside of this object
  128. */
  129. LSERR (WINAPI* pfnFExpandWithPrecedingChar)(PDOBJ, PLSRUN, PLSRUN, WCHAR, MWCLS, BOOL*);
  130. /* FExpandWithPrecedingChar
  131. * pdobj (IN): dobj
  132. * plsrun (IN): plsrun of the object
  133. * plsrunText (IN): plsrun of the preceding char
  134. * wchar (IN): preceding character
  135. * mwcls (IN): ModWidth class of preceding character
  136. * &fExpand (OUT): expand preceding character?
  137. */
  138. LSERR (WINAPI* pfnFExpandWithFollowingChar)(PDOBJ, PLSRUN, PLSRUN, WCHAR, MWCLS, BOOL*);
  139. /* FExpandWithFollowingChar
  140. * pdobj (IN): dobj
  141. * plsrun (IN): plsrun of the object
  142. * plsrunText (IN): plsrun of the following char
  143. * wchar (IN): following character
  144. * mwcls (IN): ModWidth class of the following character
  145. * &fExpand (OUT): expand object?
  146. */
  147. LSERR (WINAPI* pfnCalcPresentation)(PDOBJ, long, LSKJUST, BOOL);
  148. /* CalcPresentation
  149. * pdobj (IN): dobj
  150. * dup (IN): dup of dobj
  151. * lskj (IN): current justification mode
  152. * fLastVisibleOnLine (IN): this object is last visible object on line
  153. */
  154. LSERR (WINAPI* pfnQueryPointPcp)(PDOBJ, PCPOINTUV, PCLSQIN, PLSQOUT);
  155. /* QueryPointPcp
  156. * pdobj (IN): dobj to query
  157. * ppointuvQuery (IN): query point (uQuery,vQuery)
  158. * plsqin (IN): query input
  159. * plsqout (OUT): query output
  160. */
  161. LSERR (WINAPI* pfnQueryCpPpoint)(PDOBJ, LSDCP, PCLSQIN, PLSQOUT);
  162. /* QueryCpPpoint
  163. * pdobj (IN): dobj to query
  164. * dcp (IN): dcp for the query
  165. * plsqin (IN): query input
  166. * plsqout (OUT): query output
  167. */
  168. LSERR (WINAPI* pfnEnum)(PDOBJ, PLSRUN, PCLSCHP, LSCP, LSDCP, LSTFLOW, BOOL,
  169. BOOL, const POINT*, PCHEIGHTS, long);
  170. /* Enum object
  171. * pdobj (IN): dobj to enumerate
  172. * plsrun (IN): from DNODE
  173. * plschp (IN): from DNODE
  174. * cpFirst (IN): from DNODE
  175. * dcp (IN): from DNODE
  176. * lstflow (IN): text flow
  177. * fReverseOrder (IN): enumerate in reverse order
  178. * fGeometryNeeded (IN):
  179. * pptStart (IN): starting position, iff fGeometryNeeded
  180. * pheightsPres(IN): from DNODE, relevant iff fGeometryNeeded
  181. * dupRun(IN): from DNODE, relevant iff fGeometryNeeded
  182. */
  183. LSERR (WINAPI* pfnDisplay)(PDOBJ, PCDISPIN);
  184. /* Display
  185. * pdobj (IN): dobj to display
  186. * pdispin (IN): input display info
  187. */
  188. LSERR (WINAPI* pfnDestroyDObj)(PDOBJ);
  189. /* DestroyDObj
  190. * pdobj (IN): dobj to destroy
  191. */
  192. } LSIMETHODS;
  193. #endif /* LSIMETH_DEFINED */