Source code of Windows XP (NT5)
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.

538 lines
19 KiB

  1. /*
  2. * File: tom.odh
  3. *
  4. * Fragment of odl file that defines the TOM interfaces and data structures
  5. */
  6. interface ITextSelection; // Forward declarations
  7. interface ITextRange;
  8. interface ITextFont;
  9. interface ITextPara;
  10. interface ITextStoryRanges;
  11. typedef enum
  12. {
  13. // Quad State
  14. tomFalse = 0,
  15. tomTrue = -1,
  16. tomUndefined = -9999999,
  17. tomToggle = -9999998,
  18. tomAutoColor = -9999997,
  19. tomDefault = -9999996,
  20. // Undo suspension
  21. tomSuspend = -9999995,
  22. tomResume = -9999994,
  23. tomApplyNow = 0, // TOM 1.1
  24. tomApplyLater = 1, // TOM 1.1
  25. tomTrackParms = 2, // TOM 1.1
  26. tomCacheParms = 3, // TOM 1.1
  27. // Counts to reach story start or end in any units
  28. tomBackward = 0xc0000001,
  29. tomForward = 0x3fffffff,
  30. tomMove = 0,
  31. tomExtend = 1,
  32. // SelectionType
  33. tomNoSelection = 0,
  34. tomSelectionIP = 1,
  35. tomSelectionNormal = 2,
  36. tomSelectionFrame = 3,
  37. tomSelectionColumn = 4,
  38. tomSelectionRow = 5,
  39. tomSelectionBlock = 6,
  40. tomSelectionInlineShape = 7,
  41. tomSelectionShape = 8,
  42. // Selection flags
  43. tomSelStartActive = 1,
  44. tomSelAtEOL = 2,
  45. tomSelOvertype = 4,
  46. tomSelActive = 8,
  47. tomSelReplace = 16,
  48. // Point from selection parameters
  49. tomEnd = 0, // use End of selection (GetPoint method)
  50. tomStart = 32, // use Start of selection (can't conflict
  51. tomCollapseEnd = 0, // with text align flags, which use low 5
  52. tomCollapseStart = 1, // bits). Extra values also included
  53. // Underline
  54. tomNone = 0,
  55. tomSingle = 1,
  56. tomWords = 2,
  57. tomDouble = 3,
  58. tomDotted = 4,
  59. tomDash = 5,
  60. tomDashDot = 6,
  61. tomDashDotDot = 7,
  62. tomWave = 8,
  63. tomThick = 9,
  64. tomHair = 10,
  65. // Line Spacing
  66. tomLineSpaceSingle = 0,
  67. tomLineSpace1pt5 = 1,
  68. tomLineSpaceDouble = 2,
  69. tomLineSpaceAtLeast = 3,
  70. tomLineSpaceExactly = 4,
  71. tomLineSpaceMultiple = 5,
  72. // Paragraph, Numbering, and Tab Alignment
  73. tomAlignLeft = 0,
  74. tomAlignCenter = 1,
  75. tomAlignRight = 2,
  76. tomAlignJustify = 3,
  77. tomAlignDecimal = 3,
  78. tomAlignBar = 4,
  79. // Tab leader
  80. tomSpaces = 0,
  81. tomDots = 1,
  82. tomDashes = 2,
  83. tomLines = 3,
  84. tomThickLines = 4,
  85. tomEquals = 5,
  86. // Tab index
  87. tomTabBack = -3, // Positive numbers are tab index
  88. tomTabNext = -2, // These are relative indices
  89. tomTabHere = -1,
  90. // Numbering
  91. tomListNone = 0,
  92. tomListBullet = 1,
  93. tomListNumberAsArabic = 2,
  94. tomListNumberAsLCLetter = 3,
  95. tomListNumberAsUCLetter = 4,
  96. tomListNumberAsLCRoman = 5,
  97. tomListNumberAsUCRoman = 6,
  98. tomListNumberAsSequence = 7, // NumberingStart gives first Unicode to use
  99. tomListParentheses = 0x10000,
  100. tomListPeriod = 0x20000,
  101. tomListPlain = 0x30000,
  102. // Units
  103. tomCharacter = 1, // character
  104. tomWord = 2, // word
  105. tomSentence = 3, // sentence
  106. tomParagraph = 4, // paragraph
  107. tomLine = 5, // line (on display)
  108. tomStory = 6, // entire story
  109. tomScreen = 7, // window end (or start) (for Ctrl PgUp/PgDn)
  110. tomSection = 8, // section
  111. tomColumn = 9, // table column if in table
  112. tomRow = 10, // table row
  113. tomWindow = 11, // windowful (for PgUp/PgDn)
  114. tomCell = 12, // table cell
  115. tomCharFormat = 13, // run of constant character formatting
  116. tomParaFormat = 14, // run of constant paragraph formatting
  117. tomTable = 15, // table
  118. tomObject = 16, // embedded object
  119. tomPage = 17, // page (in page views)
  120. // Find flags
  121. tomMatchWord = 2, // Match whole words
  122. tomMatchCase = 4, // Match case
  123. tomMatchPattern = 8, // Match pattern
  124. // Story type
  125. tomUnknownStory = 0,
  126. tomMainTextStory = 1,
  127. tomFootnotesStory = 2,
  128. tomEndnotesStory = 3,
  129. tomCommentsStory = 4,
  130. tomTextFrameStory = 5,
  131. tomEvenPagesHeaderStory = 6,
  132. tomPrimaryHeaderStory = 7,
  133. tomEvenPagesFooterStory = 8,
  134. tomPrimaryFooterStory = 9,
  135. tomFirstPageHeaderStory = 10,
  136. tomFirstPageFooterStory = 11,
  137. // Animations
  138. tomNoAnimation = 0,
  139. tomLasVegasLights = 1,
  140. tomBlinkingBackground = 2,
  141. tomSparkleText = 3,
  142. tomMarchingBlackAnts = 4,
  143. tomMarchingRedAnts = 5,
  144. tomShimmer = 6,
  145. tomWipeDown = 7,
  146. tomWipeRight = 8,
  147. tomAnimationMax = 8,
  148. // Change Case
  149. tomLowerCase = 0,
  150. tomUpperCase = 1,
  151. tomTitleCase = 2,
  152. tomSentenceCase = 4,
  153. tomToggleCase = 5,
  154. // File
  155. tomReadOnly = 0x0100, // Open only for reading
  156. tomShareDenyRead = 0x0200, // Other programs cannot read
  157. tomShareDenyWrite = 0x0400, // Other programs cannot write
  158. tomPasteFile = 0x1000, // Replace selection with file
  159. tomCreateNew = 0x0010, // Create new if one doesn't exist
  160. tomCreateAlways = 0x0020, // Create new file destroying existing
  161. tomOpenExisting = 0x0030, // Open existing file; else fail
  162. tomOpenAlways = 0x0040, // Open if there, else create new
  163. tomTruncateExisting = 0x0050, // Open existing file, but with 0 length
  164. tomRTF = 0x0001, // Open as RTF
  165. tomText = 0x0002, // Open as text (Ansi or Unicode)
  166. tomHTML = 0x0003, // Open as HTML
  167. tomWordDocument = 0x0004, // Open as Word document
  168. // Attributes
  169. tomBold = 0x80000001,
  170. tomItalic = 0x80000002,
  171. tomUnderline = 0x80000004,
  172. tomStrikeout = 0x80000008,
  173. tomProtected = 0x80000010,
  174. tomLink = 0x80000020,
  175. tomSmallCaps = 0x80000040,
  176. tomAllCaps = 0x80000080,
  177. tomHidden = 0x80000100,
  178. tomOutline = 0x80000200,
  179. tomShadow = 0x80000400,
  180. tomEmboss = 0x80000800,
  181. tomImprint = 0x80001000,
  182. tomDisabled = 0x80002000,
  183. tomRevised = 0x80004000
  184. } tomConstants;
  185. [odl, uuid(8CC497C0-A1DF-11ce-8098-00AA0047BE5D), version(1.0), dual, nonextensible]
  186. interface ITextDocument : IDispatch
  187. {
  188. // Properties
  189. [id(0), propget] HRESULT Name ([out, retval] BSTR *pName);
  190. [id(1), propget] HRESULT Selection ([out, retval] ITextSelection **ppSel);
  191. [id(2), propget] HRESULT StoryCount ([out, retval] long *pCount);
  192. [id(3), propget] HRESULT StoryRanges ([out, retval] ITextStoryRanges **ppStories);
  193. [id(4), propget] HRESULT Saved ([out, retval] long *pValue);
  194. [id(4), propput] HRESULT Saved ([in] long Value);
  195. [id(5), propget] HRESULT DefaultTabStop ([out, retval] float *pValue);
  196. [id(5), propput] HRESULT DefaultTabStop ([in] float Value);
  197. // Methods
  198. [id(6)] HRESULT New ();
  199. [id(7)] HRESULT Open ([in] VARIANT *pVar, [in] long Flags, [in] long CodePage);
  200. [id(8)] HRESULT Save ([in] VARIANT *pVar, [in] long Flags, [in] long CodePage);
  201. [id(9)] HRESULT Freeze ([out, retval] long *pCount);
  202. [id(10)] HRESULT Unfreeze ([out, retval] long *pCount);
  203. [id(11)] HRESULT BeginEditCollection ();
  204. [id(12)] HRESULT EndEditCollection ();
  205. [id(13)] HRESULT Undo ([in] long Count, [out, retval] long *prop);
  206. [id(14)] HRESULT Redo ([in] long Count, [out, retval] long *prop);
  207. [id(15)] HRESULT Range ([in] long cp1, [in] long cp2, [out, retval] ITextRange **ppRange);
  208. [id(16)] HRESULT RangeFromPoint ([in] long x, [in] long y,
  209. [out, retval] ITextRange **ppRange);
  210. }
  211. [odl, uuid(8CC497C2-A1DF-11ce-8098-00AA0047BE5D), version(1.0), dual, nonextensible]
  212. interface ITextRange : IDispatch // Start and limit end positions
  213. {
  214. // Range Properties
  215. [id( 0), propget] HRESULT Text ([out,retval] BSTR *pbstr);
  216. [id( 0), propput] HRESULT Text ([in] BSTR bstr);
  217. [id(0x201), propget] HRESULT Char ([out, retval] long *pch);
  218. [id(0x201), propput] HRESULT Char ([in] long ch);
  219. [id(0x202), propget] HRESULT Duplicate ([out, retval] ITextRange **ppRange);
  220. [id(0x203), propget] HRESULT FormattedText ([out, retval] ITextRange **ppRange);
  221. [id(0x203), propput] HRESULT FormattedText ([in] ITextRange *pRange);
  222. [id(0x204), propget] HRESULT Start ([out, retval] long *pcpFirst);
  223. [id(0x204), propput] HRESULT Start ([in] long cpFirst);
  224. [id(0x205), propget] HRESULT End ([out, retval] long *pcpLim);
  225. [id(0x205), propput] HRESULT End ([in] long cpLim);
  226. [id(0x206), propget] HRESULT Font ([out, retval] ITextFont **pFont);
  227. [id(0x206), propput] HRESULT Font ([in] ITextFont *pFont);
  228. [id(0x207), propget] HRESULT Para ([out, retval] ITextPara **pPara);
  229. [id(0x207), propput] HRESULT Para ([in] ITextPara *pPara);
  230. [id(0x208), propget] HRESULT StoryLength ([out, retval] long *pcch);
  231. [id(0x209), propget] HRESULT StoryType ([out, retval] long *pValue);
  232. // Range Methods
  233. [id(0x210)] HRESULT Collapse ([in] long bStart);
  234. [id(0x211)] HRESULT Expand ([in] long Unit, [out, retval] long *pDelta);
  235. [id(0x212)] HRESULT GetIndex ([in] long Unit, [out, retval] long *pIndex);
  236. [id(0x213)] HRESULT SetIndex ([in] long Unit, [in] long Index, [in] long Extend);
  237. [id(0x214)] HRESULT SetRange ([in] long cpActive, [in] long cpOther);
  238. [id(0x215)] HRESULT InRange ([in] ITextRange *pRange, [out, retval] long *pb);
  239. [id(0x216)] HRESULT InStory ([in] ITextRange *pRange, [out, retval] long *pb);
  240. [id(0x217)] HRESULT IsEqual ([in] ITextRange *pRange, [out, retval] long *pb);
  241. [id(0x218)] HRESULT Select ();
  242. [id(0x219)] HRESULT StartOf ([in] long Unit, [in] long Extend,
  243. [out, retval] long *pDelta);
  244. [id(0x220)] HRESULT EndOf ([in] long Unit, [in] long Extend,
  245. [out, retval] long *pDelta);
  246. [id(0x221)] HRESULT Move ([in] long Unit,
  247. [in] long Count, [out, retval] long *pDelta);
  248. [id(0x222)] HRESULT MoveStart ([in] long Unit,
  249. [in] long Count, [out, retval] long *pDelta);
  250. [id(0x223)] HRESULT MoveEnd ([in] long Unit,
  251. [in] long Count, [out, retval] long *pDelta);
  252. [id(0x224)] HRESULT MoveWhile ([in] VARIANT *Cset,
  253. [in] long Count, [out, retval] long *pDelta);
  254. [id(0x225)] HRESULT MoveStartWhile ([in] VARIANT *Cset,
  255. [in] long Count, [out, retval] long *pDelta);
  256. [id(0x226)] HRESULT MoveEndWhile ([in] VARIANT *Cset,
  257. [in] long Count, [out, retval] long *pDelta);
  258. [id(0x227)] HRESULT MoveUntil ([in] VARIANT *Cset,
  259. [in] long Count, [out, retval] long *pDelta);
  260. [id(0x228)] HRESULT MoveStartUntil ([in] VARIANT *Cset,
  261. [in] long Count, [out, retval] long *pDelta);
  262. [id(0x229)] HRESULT MoveEndUntil ([in] VARIANT *Cset,
  263. [in] long Count, [out, retval] long *pDelta);
  264. [id(0x230)] HRESULT FindText ( [in] BSTR bstr, [in] long cch,
  265. [in] long Flags, [out, retval] long *pLength);
  266. [id(0x231)] HRESULT FindTextStart ( [in] BSTR bstr, [in] long cch,
  267. [in] long Flags, [out, retval] long *pLength);
  268. [id(0x232)] HRESULT FindTextEnd ( [in] BSTR bstr, [in] long cch,
  269. [in] long Flags, [out, retval] long *pLength);
  270. [id(0x233)] HRESULT Delete ([in] long Unit, [in] long Count,
  271. [out, retval] long *pDelta);
  272. [id(0x234)] HRESULT Cut ([out] VARIANT *pVar);
  273. [id(0x235)] HRESULT Copy ([out] VARIANT *pVar);
  274. [id(0x236)] HRESULT Paste ([in] VARIANT *pVar, [in] long Format);
  275. [id(0x237)] HRESULT CanPaste ([in] VARIANT *pVar, [in] long Format,
  276. [out, retval] long *pb);
  277. [id(0x238)] HRESULT CanEdit ([out, retval] long *pbCanEdit);
  278. [id(0x239)] HRESULT ChangeCase ([in] long Type);
  279. [id(0x240)] HRESULT GetPoint ([in] long Type, [out] long *px, [out] long *py);
  280. [id(0x241)] HRESULT SetPoint ([in] long x, [in] long y, [in] long Type, [in] long Extend);
  281. [id(0x242)] HRESULT ScrollIntoView ([in] long Value);
  282. [id(0x243)] HRESULT GetEmbeddedObject ([out, retval] IUnknown **ppv);
  283. }
  284. [odl, uuid(8CC497C1-A1DF-11ce-8098-00AA0047BE5D), version(1.0), dual, nonextensible]
  285. interface ITextSelection : ITextRange
  286. {
  287. [id(0x101), propget] HRESULT Flags ([out,retval] long *pFlags);
  288. [id(0x101), propput] HRESULT Flags ([in] LONG Flags);
  289. [id(0x102), propget] HRESULT Type ([out, retval] long *pType);
  290. [id(0x103)] HRESULT MoveLeft([in] long Unit, [in] long Count, [in] long Extend,
  291. [out, retval] long *pDelta);
  292. [id(0x104)] HRESULT MoveRight([in] long Unit, [in] long Count, [in] long Extend,
  293. [out, retval] long *pDelta);
  294. [id(0x105)] HRESULT MoveUp ([in] long Unit, [in] long Count, [in] long Extend,
  295. [out, retval] long *pDelta);
  296. [id(0x106)] HRESULT MoveDown([in] long Unit, [in] long Count, [in] long Extend,
  297. [out, retval] long *pDelta);
  298. [id(0x107)] HRESULT HomeKey ([in] long Unit, [in] long Extend,
  299. [out, retval] long *pDelta);
  300. [id(0x108)] HRESULT EndKey ([in] long Unit, [in] long Extend,
  301. [out, retval] long *pDelta);
  302. [id(0x109)] HRESULT TypeText ([in] BSTR bstr);
  303. }
  304. [odl, uuid(8CC497C3-A1DF-11ce-8098-00AA0047BE5D), version(1.0), dual, nonextensible]
  305. interface ITextFont : IDispatch
  306. {
  307. // Common format properties and methods
  308. [id( 0), propget] HRESULT Duplicate ([out, retval] ITextFont **ppFont);
  309. [id( 0), propput] HRESULT Duplicate ([in] ITextFont *pFont);
  310. [id(0x301)] HRESULT CanChange ([out, retval] long *pB);
  311. [id(0x302)] HRESULT IsEqual ([in] ITextFont *pFont, [out, retval] long *pB);
  312. [id(0x303)] HRESULT Reset ([in] long Value);
  313. [id(0x304), propget] HRESULT Style ([out, retval] long *pValue);
  314. [id(0x304), propput] HRESULT Style ([in] long Value);
  315. // Character format properties and methods
  316. [id(0x305), propget] HRESULT AllCaps ([out, retval] long *pValue);
  317. [id(0x305), propput] HRESULT AllCaps ([in] long Value);
  318. [id(0x306), propget] HRESULT Animation ([out, retval] long *pValue);
  319. [id(0x306), propput] HRESULT Animation ([in] long Value);
  320. [id(0x307), propget] HRESULT BackColor ([out, retval] long *pValue);
  321. [id(0x307), propput] HRESULT BackColor ([in] long Value);
  322. [id(0x308), propget] HRESULT Bold ([out, retval] long *pValue);
  323. [id(0x308), propput] HRESULT Bold ([in] long Value);
  324. [id(0x309), propget] HRESULT Emboss ([out, retval] long *pValue);
  325. [id(0x309), propput] HRESULT Emboss ([in] long Value);
  326. [id(0x310), propget] HRESULT ForeColor ([out, retval] long *pValue);
  327. [id(0x310), propput] HRESULT ForeColor ([in] long Value);
  328. [id(0x311), propget] HRESULT Hidden ([out, retval] long *pValue);
  329. [id(0x311), propput] HRESULT Hidden ([in] long Value);
  330. [id(0x312), propget] HRESULT Engrave ([out, retval] long *pValue);
  331. [id(0x312), propput] HRESULT Engrave ([in] long Value);
  332. [id(0x313), propget] HRESULT Italic ([out, retval] long *pValue);
  333. [id(0x313), propput] HRESULT Italic ([in] long Value);
  334. [id(0x314), propget] HRESULT Kerning ([out, retval] float *pValue);
  335. [id(0x314), propput] HRESULT Kerning ([in] float Value);
  336. [id(0x315), propget] HRESULT LanguageID ([out, retval] long *pValue);
  337. [id(0x315), propput] HRESULT LanguageID ([in] long Value);
  338. [id(0x316), propget] HRESULT Name ([out, retval] BSTR *pbstr);
  339. [id(0x316), propput] HRESULT Name ([in] BSTR bstr);
  340. [id(0x317), propget] HRESULT Outline ([out, retval] long *pValue);
  341. [id(0x317), propput] HRESULT Outline ([in] long Value);
  342. [id(0x318), propget] HRESULT Position ([out, retval] float *pValue);
  343. [id(0x318), propput] HRESULT Position ([in] float Value);
  344. [id(0x319), propget] HRESULT Protected ([out, retval] long *pValue);
  345. [id(0x319), propput] HRESULT Protected ([in] long Value);
  346. [id(0x320), propget] HRESULT Shadow ([out, retval] long *pValue);
  347. [id(0x320), propput] HRESULT Shadow ([in] long Value);
  348. [id(0x321), propget] HRESULT Size ([out, retval] float *pValue);
  349. [id(0x321), propput] HRESULT Size ([in] float Value);
  350. [id(0x322), propget] HRESULT SmallCaps ([out, retval] long *pValue);
  351. [id(0x322), propput] HRESULT SmallCaps ([in] long Value);
  352. [id(0x323), propget] HRESULT Spacing ([out, retval] float *pValue);
  353. [id(0x323), propput] HRESULT Spacing ([in] float Value);
  354. [id(0x324), propget] HRESULT StrikeThrough ([out, retval] long *pValue);
  355. [id(0x324), propput] HRESULT StrikeThrough ([in] long Value);
  356. [id(0x325), propget] HRESULT Subscript ([out, retval] long *pValue);
  357. [id(0x325), propput] HRESULT Subscript ([in] long Value);
  358. [id(0x326), propget] HRESULT Superscript ([out, retval] long *pValue);
  359. [id(0x326), propput] HRESULT Superscript ([in] long Value);
  360. [id(0x327), propget] HRESULT Underline ([out, retval] long *pValue);
  361. [id(0x327), propput] HRESULT Underline ([in] long Value);
  362. [id(0x328), propget] HRESULT Weight ([out, retval] long *pValue);
  363. [id(0x328), propput] HRESULT Weight ([in] long Value);
  364. }
  365. [odl, uuid(8CC497C4-A1DF-11ce-8098-00AA0047BE5D), version(1.0), dual, nonextensible]
  366. interface ITextPara : IDispatch
  367. {
  368. // Common format properties and methods
  369. [id( 0), propget] HRESULT Duplicate ([out, retval] ITextPara **ppPara);
  370. [id( 0), propput] HRESULT Duplicate ([in] ITextPara *pPara);
  371. [id(0x401)] HRESULT CanChange ([out, retval] long *pB);
  372. [id(0x402)] HRESULT IsEqual ([in] ITextPara *pPara, [out, retval] long *pB);
  373. [id(0x403)] HRESULT Reset ([in] long Value);
  374. [id(0x404), propget] HRESULT Style ([out, retval] long *pValue);
  375. [id(0x404), propput] HRESULT Style ([in] long Value);
  376. // Paragraph format properties and methods
  377. [id(0x405), propget] HRESULT Alignment ([out,retval] long *pValue);
  378. [id(0x405), propput] HRESULT Alignment ([in] long Value);
  379. [id(0x406), propget] HRESULT Hyphenation ([out, retval] long *pValue);
  380. [id(0x406), propput] HRESULT Hyphenation ([in] long Value);
  381. [id(0x407), propget] HRESULT FirstLineIndent ([out, retval] float *pValue);
  382. [id(0x408), propget] HRESULT KeepTogether ([out, retval] long *pValue);
  383. [id(0x408), propput] HRESULT KeepTogether ([in] long Value);
  384. [id(0x409), propget] HRESULT KeepWithNext ([out, retval] long *pValue);
  385. [id(0x409), propput] HRESULT KeepWithNext ([in] long Value);
  386. [id(0x410), propget] HRESULT LeftIndent ([out, retval] float *pValue);
  387. [id(0x411), propget] HRESULT LineSpacing ([out, retval] float *pValue);
  388. [id(0x412), propget] HRESULT LineSpacingRule ([out, retval] long *pValue);
  389. [id(0x413), propget] HRESULT ListAlignment ([out, retval] long *pValue);
  390. [id(0x413), propput] HRESULT ListAlignment ([in] long Value);
  391. [id(0x414), propget] HRESULT ListLevelIndex ([out, retval] long *pValue);
  392. [id(0x414), propput] HRESULT ListLevelIndex ([in] long Value);
  393. [id(0x415), propget] HRESULT ListStart ([out, retval] long *pValue);
  394. [id(0x415), propput] HRESULT ListStart ([in] long Value);
  395. [id(0x416), propget] HRESULT ListTab ([out, retval] float *pValue);
  396. [id(0x416), propput] HRESULT ListTab ([in] float Value);
  397. [id(0x417), propget] HRESULT ListType ([out, retval] long *pValue);
  398. [id(0x417), propput] HRESULT ListType ([in] long Value);
  399. [id(0x418), propget] HRESULT NoLineNumber ([out, retval] long *pValue);
  400. [id(0x418), propput] HRESULT NoLineNumber ([in] long Value);
  401. [id(0x419), propget] HRESULT PageBreakBefore ([out, retval] long *pValue);
  402. [id(0x419), propput] HRESULT PageBreakBefore ([in] long Value);
  403. [id(0x420), propget] HRESULT RightIndent ([out, retval] float *pValue);
  404. [id(0x420), propput] HRESULT RightIndent ([in] float Value);
  405. [id(0x421)] HRESULT SetIndents ([in] float StartIndent,
  406. [in] float LeftIndent, [in] float RightIndent);
  407. [id(0x422)] HRESULT SetLineSpacing ([in] long LineSpacingRule,
  408. [in] float LineSpacing);
  409. [id(0x423), propget] HRESULT SpaceAfter ([out, retval] float *pValue);
  410. [id(0x423), propput] HRESULT SpaceAfter ([in] float Value);
  411. [id(0x424), propget] HRESULT SpaceBefore ([out, retval] float *pValue);
  412. [id(0x424), propput] HRESULT SpaceBefore ([in] float Value);
  413. [id(0x425), propget] HRESULT WidowControl ([out, retval] long *pValue);
  414. [id(0x425), propput] HRESULT WidowControl ([in] long Value);
  415. // Tab methods and property
  416. [id(0x426), propget] HRESULT TabCount ([out, retval] long *pCount);
  417. [id(0x427)] HRESULT AddTab ([in] float tbPos, [in] long tbAlign,
  418. [in] long tbLeader);
  419. [id(0x428)] HRESULT ClearAllTabs ();
  420. [id(0x429)] HRESULT DeleteTab ([in] float tbPos);
  421. [id(0x430)] HRESULT GetTab ([in] long iTab, [out] float *ptbPos,
  422. [out] long *ptbAlign, [out] long *ptbLeader);
  423. }
  424. [odl, uuid(8CC497C5-A1DF-11ce-8098-00AA0047BE5D), version(1.0), dual, nonextensible]
  425. interface ITextStoryRanges : IDispatch
  426. {
  427. [id(-4), restricted] HRESULT _NewEnum ([out, retval] IUnknown **ppunkEnum);
  428. [id(0)] HRESULT Item ([in] long Index, [out, retval] ITextRange **ppRange);
  429. [id(2), propget] HRESULT Count ([out, retval] long *pCount);
  430. }