/* * File: tom.odh * * Fragment of odl file that defines the TOM interfaces and data structures */ interface ITextSelection; // Forward declarations interface ITextRange; interface ITextFont; interface ITextPara; interface ITextStoryRanges; typedef enum { // Quad State tomFalse = 0, tomTrue = -1, tomUndefined = -9999999, tomToggle = -9999998, tomAutoColor = -9999997, tomDefault = -9999996, // Undo suspension tomSuspend = -9999995, tomResume = -9999994, tomApplyNow = 0, // TOM 1.1 tomApplyLater = 1, // TOM 1.1 tomTrackParms = 2, // TOM 1.1 tomCacheParms = 3, // TOM 1.1 // Counts to reach story start or end in any units tomBackward = 0xc0000001, tomForward = 0x3fffffff, tomMove = 0, tomExtend = 1, // SelectionType tomNoSelection = 0, tomSelectionIP = 1, tomSelectionNormal = 2, tomSelectionFrame = 3, tomSelectionColumn = 4, tomSelectionRow = 5, tomSelectionBlock = 6, tomSelectionInlineShape = 7, tomSelectionShape = 8, // Selection flags tomSelStartActive = 1, tomSelAtEOL = 2, tomSelOvertype = 4, tomSelActive = 8, tomSelReplace = 16, // Point from selection parameters tomEnd = 0, // use End of selection (GetPoint method) tomStart = 32, // use Start of selection (can't conflict tomCollapseEnd = 0, // with text align flags, which use low 5 tomCollapseStart = 1, // bits). Extra values also included // Underline tomNone = 0, tomSingle = 1, tomWords = 2, tomDouble = 3, tomDotted = 4, tomDash = 5, tomDashDot = 6, tomDashDotDot = 7, tomWave = 8, tomThick = 9, tomHair = 10, // Line Spacing tomLineSpaceSingle = 0, tomLineSpace1pt5 = 1, tomLineSpaceDouble = 2, tomLineSpaceAtLeast = 3, tomLineSpaceExactly = 4, tomLineSpaceMultiple = 5, // Paragraph, Numbering, and Tab Alignment tomAlignLeft = 0, tomAlignCenter = 1, tomAlignRight = 2, tomAlignJustify = 3, tomAlignDecimal = 3, tomAlignBar = 4, // Tab leader tomSpaces = 0, tomDots = 1, tomDashes = 2, tomLines = 3, tomThickLines = 4, tomEquals = 5, // Tab index tomTabBack = -3, // Positive numbers are tab index tomTabNext = -2, // These are relative indices tomTabHere = -1, // Numbering tomListNone = 0, tomListBullet = 1, tomListNumberAsArabic = 2, tomListNumberAsLCLetter = 3, tomListNumberAsUCLetter = 4, tomListNumberAsLCRoman = 5, tomListNumberAsUCRoman = 6, tomListNumberAsSequence = 7, // NumberingStart gives first Unicode to use tomListParentheses = 0x10000, tomListPeriod = 0x20000, tomListPlain = 0x30000, // Units tomCharacter = 1, // character tomWord = 2, // word tomSentence = 3, // sentence tomParagraph = 4, // paragraph tomLine = 5, // line (on display) tomStory = 6, // entire story tomScreen = 7, // window end (or start) (for Ctrl PgUp/PgDn) tomSection = 8, // section tomColumn = 9, // table column if in table tomRow = 10, // table row tomWindow = 11, // windowful (for PgUp/PgDn) tomCell = 12, // table cell tomCharFormat = 13, // run of constant character formatting tomParaFormat = 14, // run of constant paragraph formatting tomTable = 15, // table tomObject = 16, // embedded object // Find flags tomMatchWord = 2, // Match whole words tomMatchCase = 4, // Match case tomMatchPattern = 8, // Match pattern // Story type tomUnknownStory = 0, tomMainTextStory = 1, tomFootnotesStory = 2, tomEndnotesStory = 3, tomCommentsStory = 4, tomTextFrameStory = 5, tomEvenPagesHeaderStory = 6, tomPrimaryHeaderStory = 7, tomEvenPagesFooterStory = 8, tomPrimaryFooterStory = 9, tomFirstPageHeaderStory = 10, tomFirstPageFooterStory = 11, // Animations tomNoAnimation = 0, tomLasVegasLights = 1, tomBlinkingBackground = 2, tomSparkleText = 3, tomMarchingBlackAnts = 4, tomMarchingRedAnts = 5, tomShimmer = 6, tomWipeDown = 7, tomWipeRight = 8, tomAnimationMax = 8, // Change Case tomLowerCase = 0, tomUpperCase = 1, tomTitleCase = 2, tomSentenceCase = 4, tomToggleCase = 5, // File tomReadOnly = 0x0100, // Open only for reading tomShareDenyRead = 0x0200, // Other programs cannot read tomShareDenyWrite = 0x0400, // Other programs cannot write tomPasteFile = 0x1000, // Replace selection with file tomCreateNew = 0x0010, // Create new if one doesn't exist tomCreateAlways = 0x0020, // Create new file destroying existing tomOpenExisting = 0x0030, // Open existing file; else fail tomOpenAlways = 0x0040, // Open if there, else create new tomTruncateExisting = 0x0050, // Open existing file, but with 0 length tomRTF = 0x0001, // Open as RTF tomText = 0x0002, // Open as text (Ansi or Unicode) tomHTML = 0x0003, // Open as HTML tomWordDocument = 0x0004, // Open as Word document // Attributes tomBold = 0x80000001, tomItalic = 0x80000002, tomUnderline = 0x80000004, tomStrikeout = 0x80000008, tomProtected = 0x80000010, tomLink = 0x80000020, tomSmallCaps = 0x80000040, tomAllCaps = 0x80000080, tomHidden = 0x80000100, tomOutline = 0x80000200, tomShadow = 0x80000400, tomEmboss = 0x80000800, tomImprint = 0x80001000, tomDisabled = 0x80002000, tomRevised = 0x80004000 } tomConstants; [odl, uuid(8CC497C0-A1DF-11ce-8098-00AA0047BE5D), version(1.0), dual, nonextensible] interface ITextDocument : IDispatch { // Properties [id(0), propget] HRESULT Name ([out, retval] BSTR *pName); [id(1), propget] HRESULT Selection ([out, retval] ITextSelection **ppSel); [id(2), propget] HRESULT StoryCount ([out, retval] long *pCount); [id(3), propget] HRESULT StoryRanges ([out, retval] ITextStoryRanges **ppStories); [id(4), propget] HRESULT Saved ([out, retval] long *pValue); [id(4), propput] HRESULT Saved ([in] long Value); [id(5), propget] HRESULT DefaultTabStop ([out, retval] float *pValue); [id(5), propput] HRESULT DefaultTabStop ([in] float Value); // Methods [id(6)] HRESULT New (); [id(7)] HRESULT Open ([in] VARIANT *pVar, [in] long Flags, [in] long CodePage); [id(8)] HRESULT Save ([in] VARIANT *pVar, [in] long Flags, [in] long CodePage); [id(9)] HRESULT Freeze ([out, retval] long *pCount); [id(10)] HRESULT Unfreeze ([out, retval] long *pCount); [id(11)] HRESULT BeginEditCollection (); [id(12)] HRESULT EndEditCollection (); [id(13)] HRESULT Undo ([in] long Count, [out, retval] long *prop); [id(14)] HRESULT Redo ([in] long Count, [out, retval] long *prop); [id(15)] HRESULT Range ([in] long cp1, [in] long cp2, [out, retval] ITextRange **ppRange); [id(16)] HRESULT RangeFromPoint ([in] long x, [in] long y, [out, retval] ITextRange **ppRange); } [odl, uuid(8CC497C2-A1DF-11ce-8098-00AA0047BE5D), version(1.0), dual, nonextensible] interface ITextRange : IDispatch // Start and limit end positions { // Range Properties [id( 0), propget] HRESULT Text ([out,retval] BSTR *pbstr); [id( 0), propput] HRESULT Text ([in] BSTR bstr); [id(0x201), propget] HRESULT Char ([out, retval] long *pch); [id(0x201), propput] HRESULT Char ([in] long ch); [id(0x202), propget] HRESULT Duplicate ([out, retval] ITextRange **ppRange); [id(0x203), propget] HRESULT FormattedText ([out, retval] ITextRange **ppRange); [id(0x203), propput] HRESULT FormattedText ([in] ITextRange *pRange); [id(0x204), propget] HRESULT Start ([out, retval] long *pcpFirst); [id(0x204), propput] HRESULT Start ([in] long cpFirst); [id(0x205), propget] HRESULT End ([out, retval] long *pcpLim); [id(0x205), propput] HRESULT End ([in] long cpLim); [id(0x206), propget] HRESULT Font ([out, retval] ITextFont **pFont); [id(0x206), propput] HRESULT Font ([in] ITextFont *pFont); [id(0x207), propget] HRESULT Para ([out, retval] ITextPara **pPara); [id(0x207), propput] HRESULT Para ([in] ITextPara *pPara); [id(0x208), propget] HRESULT StoryLength ([out, retval] long *pcch); [id(0x209), propget] HRESULT StoryType ([out, retval] long *pValue); // Range Methods [id(0x210)] HRESULT Collapse ([in] long bStart); [id(0x211)] HRESULT Expand ([in] long Unit, [out, retval] long *pDelta); [id(0x212)] HRESULT GetIndex ([in] long Unit, [out, retval] long *pIndex); [id(0x213)] HRESULT SetIndex ([in] long Unit, [in] long Index, [in] long Extend); [id(0x214)] HRESULT SetRange ([in] long cpActive, [in] long cpOther); [id(0x215)] HRESULT InRange ([in] ITextRange *pRange, [out, retval] long *pb); [id(0x216)] HRESULT InStory ([in] ITextRange *pRange, [out, retval] long *pb); [id(0x217)] HRESULT IsEqual ([in] ITextRange *pRange, [out, retval] long *pb); [id(0x218)] HRESULT Select (); [id(0x219)] HRESULT StartOf ([in] long Unit, [in] long Extend, [out, retval] long *pDelta); [id(0x220)] HRESULT EndOf ([in] long Unit, [in] long Extend, [out, retval] long *pDelta); [id(0x221)] HRESULT Move ([in] long Unit, [in] long Count, [out, retval] long *pDelta); [id(0x222)] HRESULT MoveStart ([in] long Unit, [in] long Count, [out, retval] long *pDelta); [id(0x223)] HRESULT MoveEnd ([in] long Unit, [in] long Count, [out, retval] long *pDelta); [id(0x224)] HRESULT MoveWhile ([in] VARIANT *Cset, [in] long Count, [out, retval] long *pDelta); [id(0x225)] HRESULT MoveStartWhile ([in] VARIANT *Cset, [in] long Count, [out, retval] long *pDelta); [id(0x226)] HRESULT MoveEndWhile ([in] VARIANT *Cset, [in] long Count, [out, retval] long *pDelta); [id(0x227)] HRESULT MoveUntil ([in] VARIANT *Cset, [in] long Count, [out, retval] long *pDelta); [id(0x228)] HRESULT MoveStartUntil ([in] VARIANT *Cset, [in] long Count, [out, retval] long *pDelta); [id(0x229)] HRESULT MoveEndUntil ([in] VARIANT *Cset, [in] long Count, [out, retval] long *pDelta); [id(0x230)] HRESULT FindText ( [in] BSTR bstr, [in] long cch, [in] long Flags, [out, retval] long *pLength); [id(0x231)] HRESULT FindTextStart ( [in] BSTR bstr, [in] long cch, [in] long Flags, [out, retval] long *pLength); [id(0x232)] HRESULT FindTextEnd ( [in] BSTR bstr, [in] long cch, [in] long Flags, [out, retval] long *pLength); [id(0x233)] HRESULT Delete ([in] long Unit, [in] long Count, [out, retval] long *pDelta); [id(0x234)] HRESULT Cut ([out] VARIANT *pVar); [id(0x235)] HRESULT Copy ([out] VARIANT *pVar); [id(0x236)] HRESULT Paste ([in] VARIANT *pVar, [in] long Format); [id(0x237)] HRESULT CanPaste ([in] VARIANT *pVar, [in] long Format, [out, retval] long *pb); [id(0x238)] HRESULT CanEdit ([out, retval] long *pbCanEdit); [id(0x239)] HRESULT ChangeCase ([in] long Type); [id(0x240)] HRESULT GetPoint ([in] long Type, [out] long *px, [out] long *py); [id(0x241)] HRESULT SetPoint ([in] long x, [in] long y, [in] long Type, [in] long Extend); [id(0x242)] HRESULT ScrollIntoView ([in] long Value); [id(0x243)] HRESULT GetEmbeddedObject ([out, retval] IUnknown **ppv); } [odl, uuid(8CC497C1-A1DF-11ce-8098-00AA0047BE5D), version(1.0), dual, nonextensible] interface ITextSelection : ITextRange { [id(0x101), propget] HRESULT Flags ([out,retval] long *pFlags); [id(0x101), propput] HRESULT Flags ([in] LONG Flags); [id(0x102), propget] HRESULT Type ([out, retval] long *pType); [id(0x103)] HRESULT MoveLeft([in] long Unit, [in] long Count, [in] long Extend, [out, retval] long *pDelta); [id(0x104)] HRESULT MoveRight([in] long Unit, [in] long Count, [in] long Extend, [out, retval] long *pDelta); [id(0x105)] HRESULT MoveUp ([in] long Unit, [in] long Count, [in] long Extend, [out, retval] long *pDelta); [id(0x106)] HRESULT MoveDown([in] long Unit, [in] long Count, [in] long Extend, [out, retval] long *pDelta); [id(0x107)] HRESULT HomeKey ([in] long Unit, [in] long Extend, [out, retval] long *pDelta); [id(0x108)] HRESULT EndKey ([in] long Unit, [in] long Extend, [out, retval] long *pDelta); [id(0x109)] HRESULT TypeText ([in] BSTR bstr); } [odl, uuid(8CC497C3-A1DF-11ce-8098-00AA0047BE5D), version(1.0), dual, nonextensible] interface ITextFont : IDispatch { // Common format properties and methods [id( 0), propget] HRESULT Duplicate ([out, retval] ITextFont **ppFont); [id( 0), propput] HRESULT Duplicate ([in] ITextFont *pFont); [id(0x301)] HRESULT CanChange ([out, retval] long *pB); [id(0x302)] HRESULT IsEqual ([in] ITextFont *pFont, [out, retval] long *pB); [id(0x303)] HRESULT Reset ([in] long Value); [id(0x304), propget] HRESULT Style ([out, retval] long *pValue); [id(0x304), propput] HRESULT Style ([in] long Value); // Character format properties and methods [id(0x305), propget] HRESULT AllCaps ([out, retval] long *pValue); [id(0x305), propput] HRESULT AllCaps ([in] long Value); [id(0x306), propget] HRESULT Animation ([out, retval] long *pValue); [id(0x306), propput] HRESULT Animation ([in] long Value); [id(0x307), propget] HRESULT BackColor ([out, retval] long *pValue); [id(0x307), propput] HRESULT BackColor ([in] long Value); [id(0x308), propget] HRESULT Bold ([out, retval] long *pValue); [id(0x308), propput] HRESULT Bold ([in] long Value); [id(0x309), propget] HRESULT Emboss ([out, retval] long *pValue); [id(0x309), propput] HRESULT Emboss ([in] long Value); [id(0x310), propget] HRESULT ForeColor ([out, retval] long *pValue); [id(0x310), propput] HRESULT ForeColor ([in] long Value); [id(0x311), propget] HRESULT Hidden ([out, retval] long *pValue); [id(0x311), propput] HRESULT Hidden ([in] long Value); [id(0x312), propget] HRESULT Engrave ([out, retval] long *pValue); [id(0x312), propput] HRESULT Engrave ([in] long Value); [id(0x313), propget] HRESULT Italic ([out, retval] long *pValue); [id(0x313), propput] HRESULT Italic ([in] long Value); [id(0x314), propget] HRESULT Kerning ([out, retval] float *pValue); [id(0x314), propput] HRESULT Kerning ([in] float Value); [id(0x315), propget] HRESULT LanguageID ([out, retval] long *pValue); [id(0x315), propput] HRESULT LanguageID ([in] long Value); [id(0x316), propget] HRESULT Name ([out, retval] BSTR *pbstr); [id(0x316), propput] HRESULT Name ([in] BSTR bstr); [id(0x317), propget] HRESULT Outline ([out, retval] long *pValue); [id(0x317), propput] HRESULT Outline ([in] long Value); [id(0x318), propget] HRESULT Position ([out, retval] float *pValue); [id(0x318), propput] HRESULT Position ([in] float Value); [id(0x319), propget] HRESULT Protected ([out, retval] long *pValue); [id(0x319), propput] HRESULT Protected ([in] long Value); [id(0x320), propget] HRESULT Shadow ([out, retval] long *pValue); [id(0x320), propput] HRESULT Shadow ([in] long Value); [id(0x321), propget] HRESULT Size ([out, retval] float *pValue); [id(0x321), propput] HRESULT Size ([in] float Value); [id(0x322), propget] HRESULT SmallCaps ([out, retval] long *pValue); [id(0x322), propput] HRESULT SmallCaps ([in] long Value); [id(0x323), propget] HRESULT Spacing ([out, retval] float *pValue); [id(0x323), propput] HRESULT Spacing ([in] float Value); [id(0x324), propget] HRESULT StrikeThrough ([out, retval] long *pValue); [id(0x324), propput] HRESULT StrikeThrough ([in] long Value); [id(0x325), propget] HRESULT Subscript ([out, retval] long *pValue); [id(0x325), propput] HRESULT Subscript ([in] long Value); [id(0x326), propget] HRESULT Superscript ([out, retval] long *pValue); [id(0x326), propput] HRESULT Superscript ([in] long Value); [id(0x327), propget] HRESULT Underline ([out, retval] long *pValue); [id(0x327), propput] HRESULT Underline ([in] long Value); [id(0x328), propget] HRESULT Weight ([out, retval] long *pValue); [id(0x328), propput] HRESULT Weight ([in] long Value); } [odl, uuid(8CC497C4-A1DF-11ce-8098-00AA0047BE5D), version(1.0), dual, nonextensible] interface ITextPara : IDispatch { // Common format properties and methods [id( 0), propget] HRESULT Duplicate ([out, retval] ITextPara **ppPara); [id( 0), propput] HRESULT Duplicate ([in] ITextPara *pPara); [id(0x401)] HRESULT CanChange ([out, retval] long *pB); [id(0x402)] HRESULT IsEqual ([in] ITextPara *pPara, [out, retval] long *pB); [id(0x403)] HRESULT Reset ([in] long Value); [id(0x404), propget] HRESULT Style ([out, retval] long *pValue); [id(0x404), propput] HRESULT Style ([in] long Value); // Paragraph format properties and methods [id(0x405), propget] HRESULT Alignment ([out,retval] long *pValue); [id(0x405), propput] HRESULT Alignment ([in] long Value); [id(0x406), propget] HRESULT Hyphenation ([out, retval] long *pValue); [id(0x406), propput] HRESULT Hyphenation ([in] long Value); [id(0x407), propget] HRESULT FirstLineIndent ([out, retval] float *pValue); [id(0x408), propget] HRESULT KeepTogether ([out, retval] long *pValue); [id(0x408), propput] HRESULT KeepTogether ([in] long Value); [id(0x409), propget] HRESULT KeepWithNext ([out, retval] long *pValue); [id(0x409), propput] HRESULT KeepWithNext ([in] long Value); [id(0x410), propget] HRESULT LeftIndent ([out, retval] float *pValue); [id(0x411), propget] HRESULT LineSpacing ([out, retval] float *pValue); [id(0x412), propget] HRESULT LineSpacingRule ([out, retval] long *pValue); [id(0x413), propget] HRESULT ListAlignment ([out, retval] long *pValue); [id(0x413), propput] HRESULT ListAlignment ([in] long Value); [id(0x414), propget] HRESULT ListLevelIndex ([out, retval] long *pValue); [id(0x414), propput] HRESULT ListLevelIndex ([in] long Value); [id(0x415), propget] HRESULT ListStart ([out, retval] long *pValue); [id(0x415), propput] HRESULT ListStart ([in] long Value); [id(0x416), propget] HRESULT ListTab ([out, retval] float *pValue); [id(0x416), propput] HRESULT ListTab ([in] float Value); [id(0x417), propget] HRESULT ListType ([out, retval] long *pValue); [id(0x417), propput] HRESULT ListType ([in] long Value); [id(0x418), propget] HRESULT NoLineNumber ([out, retval] long *pValue); [id(0x418), propput] HRESULT NoLineNumber ([in] long Value); [id(0x419), propget] HRESULT PageBreakBefore ([out, retval] long *pValue); [id(0x419), propput] HRESULT PageBreakBefore ([in] long Value); [id(0x420), propget] HRESULT RightIndent ([out, retval] float *pValue); [id(0x420), propput] HRESULT RightIndent ([in] float Value); [id(0x421)] HRESULT SetIndents ([in] float StartIndent, [in] float LeftIndent, [in] float RightIndent); [id(0x422)] HRESULT SetLineSpacing ([in] long LineSpacingRule, [in] float LineSpacing); [id(0x423), propget] HRESULT SpaceAfter ([out, retval] float *pValue); [id(0x423), propput] HRESULT SpaceAfter ([in] float Value); [id(0x424), propget] HRESULT SpaceBefore ([out, retval] float *pValue); [id(0x424), propput] HRESULT SpaceBefore ([in] float Value); [id(0x425), propget] HRESULT WidowControl ([out, retval] long *pValue); [id(0x425), propput] HRESULT WidowControl ([in] long Value); // Tab methods and property [id(0x426), propget] HRESULT TabCount ([out, retval] long *pCount); [id(0x427)] HRESULT AddTab ([in] float tbPos, [in] long tbAlign, [in] long tbLeader); [id(0x428)] HRESULT ClearAllTabs (); [id(0x429)] HRESULT DeleteTab ([in] float tbPos); [id(0x430)] HRESULT GetTab ([in] long iTab, [out] float *ptbPos, [out] long *ptbAlign, [out] long *ptbLeader); } [odl, uuid(8CC497C5-A1DF-11ce-8098-00AA0047BE5D), version(1.0), dual, nonextensible] interface ITextStoryRanges : IDispatch { [id(-4), restricted] HRESULT _NewEnum ([out, retval] IUnknown **ppunkEnum); [id(0)] HRESULT Item ([in] long Index, [out, retval] ITextRange **ppRange); [id(2), propget] HRESULT Count ([out, retval] long *pCount); }