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.
 
 
 
 
 
 

651 lines
23 KiB

/*
* File: tom.idl
*
* idl file that defines the TOM interfaces and data structures
*/
#include <olectl.h>
import "oaidl.idl";
import "ocidl.idl";
interface ITextSelection; // Forward declarations
interface ITextRange;
interface ITextFont;
interface ITextPara;
interface ITextStoryRanges;
interface ITextMsgFilter;
interface ITextDocument2;
[uuid(8CC497C9-A1DF-11ce-8098-00AA0047BE5D), version(1.0)]
library tom {
importlib("stdole2.tlb");
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
tomClientCoord = 256, // use Client Coordinates (GetPoint method)
// default is to use system coordinates
// 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,
tomAlignInterWord = 3,
tomAlignInterLetter = 4,
tomAlignScaled = 5,
tomAlignGlyphs = 6,
tomAlignSnapGrid = 7,
// 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,
// Caret Type
tomNormalCaret = 0x0000, // Default caret
tomKoreanBlockCaret = 0x0001, // Korean block caret
// Client Rect
tomIncludeInset = 0x0001, // include inset (GetClientRect)
// GetPreferredFont Option values
tomIgnoreCurrentFont = 0x0000,
tomMatchFontCharset = 0x0001,
tomMatchFontSignature = 0x0002,
// Special value used in SetLanguageID/GetLanguageID to
// Set/Get font charset and pitch/family
tomCharset = 0x80000000,
// GetFEFlags
tomRE10Mode = 0x0001,
tomNoIME = 0x00080000,
tomSelfIME = 0x00040000
} tomConstants;
interface ITextDocument;
interface ITextRange;
interface ITextSelection;
interface ITextFont;
interface ITextPara;
interface ITextStoryRanges;
interface ITextDocument2;
interface ITextMsgFilter;
}
[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);
}
[uuid(01c25500-4268-11d1-883a-3c8b00c10000), version(1.0), dual, nonextensible]
interface ITextDocument2 : ITextDocument
{
[id(21), helpstring("method AttachMsgFilter")]
HRESULT AttachMsgFilter([in] IUnknown *pFilter);
[id(22), helpstring("method SetEffectColor")]
HRESULT SetEffectColor([in] long Index, [in] COLORREF cr);
[id(23), helpstring("method GetEffectColor")]
HRESULT GetEffectColor([in] long Index, [out] COLORREF *pcr);
[id(24), propget, helpstring("method GetCaretType")]
HRESULT CaretType ([out, retval] long *pCaretType);
[id(24), propput, helpstring("method SetCaretType")]
HRESULT CaretType ([in] long CaretType);
[id(25), helpstring("method GetImmContext")]
HRESULT GetImmContext([out, retval] long *pContext);
[id(26), helpstring("method ReleaseImmContext")]
HRESULT ReleaseImmContext([in] long Context);
[id(27), helpstring("method GetPreferredFont")]
HRESULT GetPreferredFont([in] long cp, [in] long CodePage, [in] long Option,
[in] long curCodepage, [in] long curFontSize, [out] BSTR *pbstr,
[out] long *pPitchAndFamily, [out] long *pNewFontSize );
[id(28), propget, helpstring("method GetNotificationMode")]
HRESULT NotificationMode([out, retval] long *pMode);
[id(28), propput, helpstring("method SetNotificationMode")]
HRESULT NotificationMode([in] long Mode);
[id(29), helpstring("method GetClientRect")]
HRESULT GetClientRect([in] long Type,
[out] long *pLeft,
[out] long *pTop,
[out] long *pRight,
[out] long *pBottom);
[id(30), propget, helpstring("method GetSelectionEx")]
HRESULT SelectionEx([out, retval] ITextSelection **ppSel);
[id(31), helpstring("method GetWindow")]
HRESULT GetWindow([out] long *phWnd);
[id(32), helpstring("method GetFEFlags")]
HRESULT GetFEFlags([out] long *pFlags);
[id(33), helpstring("method UpdateWindow")]
HRESULT UpdateWindow(void);
[id(34), helpstring("method CheckTextLimit")]
HRESULT CheckTextLimit(long cch, long *pcch);
[id(35), helpstring("method IMEInProgress")]
HRESULT IMEInProgress(long Mode);
[id(36), helpstring("method SysBeep")]
HRESULT SysBeep(void);
[id(37), helpstring("method Update")]
HRESULT Update([in] long Mode);
[id(38), helpstring("method Notify")]
HRESULT Notify([in] long Notify);
}
[uuid(a3787420-4267-11d1-883a-3c8b00c10000), version(1.0),nonextensible]
interface ITextMsgFilter : IUnknown
{
[id(1), helpstring("method AttachDocument")]
HRESULT AttachDocument([in] HWND hwnd, [in] ITextDocument2 *pTextDoc);
[id(2), helpstring("method HandleMessage")]
HRESULT HandleMessage([in,out] UINT *pmsg, [in,out] WPARAM *pwparam, [in,out] LPARAM *plparam, [out] LRESULT *plres);
[id(3), helpstring("method AttachMsgFilter")]
HRESULT AttachMsgFilter([in] ITextMsgFilter *pMsgFilter);
}