/*** Autogenerated by WIDL 1.3.20 from tom.idl - Do not edit ***/

#include <rpc.h>
#include <rpcndr.h>

#ifndef __WIDL_TOM_H
#define __WIDL_TOM_H

/* Forward declarations */

#ifndef __ITextDocument_FWD_DEFINED__
#define __ITextDocument_FWD_DEFINED__
typedef interface ITextDocument ITextDocument;
#endif

#ifndef __ITextRange_FWD_DEFINED__
#define __ITextRange_FWD_DEFINED__
typedef interface ITextRange ITextRange;
#endif

#ifndef __ITextSelection_FWD_DEFINED__
#define __ITextSelection_FWD_DEFINED__
typedef interface ITextSelection ITextSelection;
#endif

#ifndef __ITextFont_FWD_DEFINED__
#define __ITextFont_FWD_DEFINED__
typedef interface ITextFont ITextFont;
#endif

#ifndef __ITextPara_FWD_DEFINED__
#define __ITextPara_FWD_DEFINED__
typedef interface ITextPara ITextPara;
#endif

#ifndef __ITextStoryRanges_FWD_DEFINED__
#define __ITextStoryRanges_FWD_DEFINED__
typedef interface ITextStoryRanges ITextStoryRanges;
#endif

/* Headers for imported files */

#include <oaidl.h>

#ifdef __cplusplus
extern "C" {
#endif

#ifdef WINE_NO_UNICODE_MACROS
#undef FindText
#endif
typedef enum tagTomConstants {
    tomFalse = 0,
    tomTrue = -1,
    tomUndefined = -9999999,
    tomToggle = -9999998,
    tomAutoColor = -9999997,
    tomDefault = -9999996,
    tomSuspend = -9999995,
    tomResume = -9999994,
    tomApplyNow = 0,
    tomApplyLater = 1,
    tomTrackParms = 2,
    tomCacheParms = 3,
    tomBackward = 0xc0000001,
    tomForward = 0x3fffffff,
    tomMove = 0,
    tomExtend = 1,
    tomNoSelection = 0,
    tomSelectionIP = 1,
    tomSelectionNormal = 2,
    tomSelectionFrame = 3,
    tomSelectionColumn = 4,
    tomSelectionRow = 5,
    tomSelectionBlock = 6,
    tomSelectionInlineShape = 7,
    tomSelectionShape = 8,
    tomSelStartActive = 1,
    tomSelAtEOL = 2,
    tomSelOvertype = 4,
    tomSelActive = 8,
    tomSelReplace = 16,
    tomEnd = 0,
    tomStart = 32,
    tomCollapseEnd = 0,
    tomCollapseStart = 1,
    tomClientCoord = 256,
    tomNone = 0,
    tomSingle = 1,
    tomWords = 2,
    tomDouble = 3,
    tomDotted = 4,
    tomDash = 5,
    tomDashDot = 6,
    tomDashDotDot = 7,
    tomWave = 8,
    tomThick = 9,
    tomHair = 10,
    tomLineSpaceSingle = 0,
    tomLineSpace1pt5 = 1,
    tomLineSpaceDouble = 2,
    tomLineSpaceAtLeast = 3,
    tomLineSpaceExactly = 4,
    tomLineSpaceMultiple = 5,
    tomAlignLeft = 0,
    tomAlignCenter = 1,
    tomAlignRight = 2,
    tomAlignJustify = 3,
    tomAlignDecimal = 3,
    tomAlignBar = 4,
    tomAlignInterWord = 3,
    tomAlignInterLetter = 4,
    tomAlignScaled = 5,
    tomAlignGlyphs = 6,
    tomAlignSnapGrid = 7,
    tomSpaces = 0,
    tomDots = 1,
    tomDashes = 2,
    tomLines = 3,
    tomThickLines = 4,
    tomEquals = 5,
    tomTabBack = -3,
    tomTabNext = -2,
    tomTabHere = -1,
    tomListBullet = 1,
    tomListNumberAsArabic = 2,
    tomListNumberAsLCLetter = 3,
    tomListNumberAsUCLetter = 4,
    tomListNumberAsLCRoman = 5,
    tomListNumberAsUCRoman = 6,
    tomListNumberAsSequence = 7,
    tomListParentheses = 0x10000,
    tomListPeriod = 0x20000,
    tomListPlain = 0x30000,
    tomCharacter = 1,
    tomWord = 2,
    tomSentence = 3,
    tomParagraph = 4,
    tomLine = 5,
    tomStory = 6,
    tomScreen = 7,
    tomSection = 8,
    tomColumn = 9,
    tomRow = 10,
    tomWindow = 11,
    tomCell = 12,
    tomCharFormat = 13,
    tomParaFormat = 14,
    tomTable = 15,
    tomObject = 16,
    tomMatchWord = 2,
    tomMatchCase = 4,
    tomMatchPattern = 8,
    tomUnknownStory = 0,
    tomMainTextStory = 1,
    tomFootnotesStory = 2,
    tomEndnotesStory = 3,
    tomCommentsStory = 4,
    tomTextFrameStory = 5,
    tomEvenPagesHeaderStory = 6,
    tomPrimaryHeaderStory = 7,
    tomEvenPagesFooterStory = 8,
    tomPrimaryFooterStory = 9,
    tomFirstPageHeaderStory = 10,
    tomFirstPageFooterStory = 11,
    tomNoAnimation = 0,
    tomLasVegasLights = 1,
    tomBlinkingBackground = 2,
    tomSparkleText = 3,
    tomMarchingBlackAnts = 4,
    tomMarchingRedAnts = 5,
    tomShimmer = 6,
    tomWipeDown = 7,
    tomWipeRight = 8,
    tomAnimationMax = 8,
    tomLowerCase = 0,
    tomUpperCase = 1,
    tomTitleCase = 2,
    tomSentenceCase = 4,
    tomToggleCase = 5,
    tomReadOnly = 0x100,
    tomShareDenyRead = 0x200,
    tomShareDenyWrite = 0x400,
    tomPasteFile = 0x1000,
    tomCreateNew = 0x10,
    tomCreateAlways = 0x20,
    tomOpenExisting = 0x30,
    tomOpenAlways = 0x40,
    tomTruncateExisting = 0x50,
    tomRTF = 0x1,
    tomText = 0x2,
    tomHTML = 0x3,
    tomWordDocument = 0x4,
    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,
    tomNormalCaret = 0,
    tomKoreanBlockCaret = 0x1,
    tomIncludeInset = 0x1,
    tomIgnoreCurrentFont = 0,
    tomMatchFontCharset = 0x1,
    tomMatchFontSignature = 0x2,
    tomCharset = 0x80000000,
    tomRE10Mode = 0x1,
    tomNoIME = 0x80000,
    tomSelfIME = 0x40000
} tomConstants;
#ifndef __ITextRange_FWD_DEFINED__
#define __ITextRange_FWD_DEFINED__
typedef interface ITextRange ITextRange;
#endif

#ifndef __ITextSelection_FWD_DEFINED__
#define __ITextSelection_FWD_DEFINED__
typedef interface ITextSelection ITextSelection;
#endif

#ifndef __ITextStoryRanges_FWD_DEFINED__
#define __ITextStoryRanges_FWD_DEFINED__
typedef interface ITextStoryRanges ITextStoryRanges;
#endif

/*****************************************************************************
 * ITextDocument interface
 */
#ifndef __ITextDocument_INTERFACE_DEFINED__
#define __ITextDocument_INTERFACE_DEFINED__

DEFINE_GUID(IID_ITextDocument, 0x8cc497c0, 0xa1df, 0x11ce, 0x80,0x98, 0x00,0xaa,0x00,0x47,0xbe,0x5d);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface ITextDocument : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE GetName(
        BSTR *pName) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetSelection(
        ITextSelection **ppSel) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetStoryCount(
        LONG *pCount) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetStoryRanges(
        ITextStoryRanges **ppStories) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetSaved(
        LONG *pValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetSaved(
        LONG Value) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetDefaultTabStop(
        float *pValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetDefaultTabStop(
        float Value) = 0;

    virtual HRESULT STDMETHODCALLTYPE New(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE Open(
        VARIANT *pVar,
        LONG Flags,
        LONG CodePage) = 0;

    virtual HRESULT STDMETHODCALLTYPE Save(
        VARIANT *pVar,
        LONG Flags,
        LONG CodePage) = 0;

    virtual HRESULT STDMETHODCALLTYPE Freeze(
        LONG *pCount) = 0;

    virtual HRESULT STDMETHODCALLTYPE Unfreeze(
        LONG *pCount) = 0;

    virtual HRESULT STDMETHODCALLTYPE BeginEditCollection(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE EndEditCollection(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE Undo(
        LONG Count,
        LONG *prop) = 0;

    virtual HRESULT STDMETHODCALLTYPE Redo(
        LONG Count,
        LONG *prop) = 0;

    virtual HRESULT STDMETHODCALLTYPE Range(
        LONG cp1,
        LONG cp2,
        ITextRange **ppRange) = 0;

    virtual HRESULT STDMETHODCALLTYPE RangeFromPoint(
        LONG x,
        LONG y,
        ITextRange **ppRange) = 0;

};
#else
typedef struct ITextDocumentVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        ITextDocument* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        ITextDocument* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        ITextDocument* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        ITextDocument* This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        ITextDocument* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        ITextDocument* This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        ITextDocument* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** ITextDocument methods ***/
    HRESULT (STDMETHODCALLTYPE *GetName)(
        ITextDocument* This,
        BSTR *pName);

    HRESULT (STDMETHODCALLTYPE *GetSelection)(
        ITextDocument* This,
        ITextSelection **ppSel);

    HRESULT (STDMETHODCALLTYPE *GetStoryCount)(
        ITextDocument* This,
        LONG *pCount);

    HRESULT (STDMETHODCALLTYPE *GetStoryRanges)(
        ITextDocument* This,
        ITextStoryRanges **ppStories);

    HRESULT (STDMETHODCALLTYPE *GetSaved)(
        ITextDocument* This,
        LONG *pValue);

    HRESULT (STDMETHODCALLTYPE *SetSaved)(
        ITextDocument* This,
        LONG Value);

    HRESULT (STDMETHODCALLTYPE *GetDefaultTabStop)(
        ITextDocument* This,
        float *pValue);

    HRESULT (STDMETHODCALLTYPE *SetDefaultTabStop)(
        ITextDocument* This,
        float Value);

    HRESULT (STDMETHODCALLTYPE *New)(
        ITextDocument* This);

    HRESULT (STDMETHODCALLTYPE *Open)(
        ITextDocument* This,
        VARIANT *pVar,
        LONG Flags,
        LONG CodePage);

    HRESULT (STDMETHODCALLTYPE *Save)(
        ITextDocument* This,
        VARIANT *pVar,
        LONG Flags,
        LONG CodePage);

    HRESULT (STDMETHODCALLTYPE *Freeze)(
        ITextDocument* This,
        LONG *pCount);

    HRESULT (STDMETHODCALLTYPE *Unfreeze)(
        ITextDocument* This,
        LONG *pCount);

    HRESULT (STDMETHODCALLTYPE *BeginEditCollection)(
        ITextDocument* This);

    HRESULT (STDMETHODCALLTYPE *EndEditCollection)(
        ITextDocument* This);

    HRESULT (STDMETHODCALLTYPE *Undo)(
        ITextDocument* This,
        LONG Count,
        LONG *prop);

    HRESULT (STDMETHODCALLTYPE *Redo)(
        ITextDocument* This,
        LONG Count,
        LONG *prop);

    HRESULT (STDMETHODCALLTYPE *Range)(
        ITextDocument* This,
        LONG cp1,
        LONG cp2,
        ITextRange **ppRange);

    HRESULT (STDMETHODCALLTYPE *RangeFromPoint)(
        ITextDocument* This,
        LONG x,
        LONG y,
        ITextRange **ppRange);

    END_INTERFACE
} ITextDocumentVtbl;
interface ITextDocument {
    CONST_VTBL ITextDocumentVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define ITextDocument_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define ITextDocument_AddRef(This) (This)->lpVtbl->AddRef(This)
#define ITextDocument_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define ITextDocument_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define ITextDocument_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define ITextDocument_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define ITextDocument_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** ITextDocument methods ***/
#define ITextDocument_GetName(This,pName) (This)->lpVtbl->GetName(This,pName)
#define ITextDocument_GetSelection(This,ppSel) (This)->lpVtbl->GetSelection(This,ppSel)
#define ITextDocument_GetStoryCount(This,pCount) (This)->lpVtbl->GetStoryCount(This,pCount)
#define ITextDocument_GetStoryRanges(This,ppStories) (This)->lpVtbl->GetStoryRanges(This,ppStories)
#define ITextDocument_GetSaved(This,pValue) (This)->lpVtbl->GetSaved(This,pValue)
#define ITextDocument_SetSaved(This,Value) (This)->lpVtbl->SetSaved(This,Value)
#define ITextDocument_GetDefaultTabStop(This,pValue) (This)->lpVtbl->GetDefaultTabStop(This,pValue)
#define ITextDocument_SetDefaultTabStop(This,Value) (This)->lpVtbl->SetDefaultTabStop(This,Value)
#define ITextDocument_New(This) (This)->lpVtbl->New(This)
#define ITextDocument_Open(This,pVar,Flags,CodePage) (This)->lpVtbl->Open(This,pVar,Flags,CodePage)
#define ITextDocument_Save(This,pVar,Flags,CodePage) (This)->lpVtbl->Save(This,pVar,Flags,CodePage)
#define ITextDocument_Freeze(This,pCount) (This)->lpVtbl->Freeze(This,pCount)
#define ITextDocument_Unfreeze(This,pCount) (This)->lpVtbl->Unfreeze(This,pCount)
#define ITextDocument_BeginEditCollection(This) (This)->lpVtbl->BeginEditCollection(This)
#define ITextDocument_EndEditCollection(This) (This)->lpVtbl->EndEditCollection(This)
#define ITextDocument_Undo(This,Count,prop) (This)->lpVtbl->Undo(This,Count,prop)
#define ITextDocument_Redo(This,Count,prop) (This)->lpVtbl->Redo(This,Count,prop)
#define ITextDocument_Range(This,cp1,cp2,ppRange) (This)->lpVtbl->Range(This,cp1,cp2,ppRange)
#define ITextDocument_RangeFromPoint(This,x,y,ppRange) (This)->lpVtbl->RangeFromPoint(This,x,y,ppRange)
#endif

#endif

HRESULT STDMETHODCALLTYPE ITextDocument_GetName_Proxy(
    ITextDocument* This,
    BSTR *pName);
void __RPC_STUB ITextDocument_GetName_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextDocument_GetSelection_Proxy(
    ITextDocument* This,
    ITextSelection **ppSel);
void __RPC_STUB ITextDocument_GetSelection_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextDocument_GetStoryCount_Proxy(
    ITextDocument* This,
    LONG *pCount);
void __RPC_STUB ITextDocument_GetStoryCount_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextDocument_GetStoryRanges_Proxy(
    ITextDocument* This,
    ITextStoryRanges **ppStories);
void __RPC_STUB ITextDocument_GetStoryRanges_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextDocument_GetSaved_Proxy(
    ITextDocument* This,
    LONG *pValue);
void __RPC_STUB ITextDocument_GetSaved_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextDocument_SetSaved_Proxy(
    ITextDocument* This,
    LONG Value);
void __RPC_STUB ITextDocument_SetSaved_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextDocument_GetDefaultTabStop_Proxy(
    ITextDocument* This,
    float *pValue);
void __RPC_STUB ITextDocument_GetDefaultTabStop_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextDocument_SetDefaultTabStop_Proxy(
    ITextDocument* This,
    float Value);
void __RPC_STUB ITextDocument_SetDefaultTabStop_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextDocument_New_Proxy(
    ITextDocument* This);
void __RPC_STUB ITextDocument_New_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextDocument_Open_Proxy(
    ITextDocument* This,
    VARIANT *pVar,
    LONG Flags,
    LONG CodePage);
void __RPC_STUB ITextDocument_Open_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextDocument_Save_Proxy(
    ITextDocument* This,
    VARIANT *pVar,
    LONG Flags,
    LONG CodePage);
void __RPC_STUB ITextDocument_Save_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextDocument_Freeze_Proxy(
    ITextDocument* This,
    LONG *pCount);
void __RPC_STUB ITextDocument_Freeze_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextDocument_Unfreeze_Proxy(
    ITextDocument* This,
    LONG *pCount);
void __RPC_STUB ITextDocument_Unfreeze_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextDocument_BeginEditCollection_Proxy(
    ITextDocument* This);
void __RPC_STUB ITextDocument_BeginEditCollection_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextDocument_EndEditCollection_Proxy(
    ITextDocument* This);
void __RPC_STUB ITextDocument_EndEditCollection_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextDocument_Undo_Proxy(
    ITextDocument* This,
    LONG Count,
    LONG *prop);
void __RPC_STUB ITextDocument_Undo_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextDocument_Redo_Proxy(
    ITextDocument* This,
    LONG Count,
    LONG *prop);
void __RPC_STUB ITextDocument_Redo_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextDocument_Range_Proxy(
    ITextDocument* This,
    LONG cp1,
    LONG cp2,
    ITextRange **ppRange);
void __RPC_STUB ITextDocument_Range_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextDocument_RangeFromPoint_Proxy(
    ITextDocument* This,
    LONG x,
    LONG y,
    ITextRange **ppRange);
void __RPC_STUB ITextDocument_RangeFromPoint_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __ITextDocument_INTERFACE_DEFINED__ */

#ifndef __ITextFont_FWD_DEFINED__
#define __ITextFont_FWD_DEFINED__
typedef interface ITextFont ITextFont;
#endif

#ifndef __ITextPara_FWD_DEFINED__
#define __ITextPara_FWD_DEFINED__
typedef interface ITextPara ITextPara;
#endif

/*****************************************************************************
 * ITextRange interface
 */
#ifndef __ITextRange_INTERFACE_DEFINED__
#define __ITextRange_INTERFACE_DEFINED__

DEFINE_GUID(IID_ITextRange, 0x8cc497c2, 0xa1df, 0x11ce, 0x80,0x98, 0x00,0xaa,0x00,0x47,0xbe,0x5d);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface ITextRange : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE GetText(
        BSTR *pbstr) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetText(
        BSTR bstr) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetChar(
        LONG *pch) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetChar(
        LONG ch) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetDuplicate(
        ITextRange **ppRange) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetFormattedText(
        ITextRange **ppRange) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetFormattedText(
        ITextRange *pRange) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetStart(
        LONG *pcpFirst) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetStart(
        LONG cpFirst) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetEnd(
        LONG *pcpLim) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetEnd(
        LONG cpLim) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetFont(
        ITextFont **pFont) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetFont(
        ITextFont *pFont) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetPara(
        ITextPara **ppPara) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetPara(
        ITextPara *pPara) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetStoryLength(
        LONG *pcch) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetStoryType(
        LONG *pValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE Collapse(
        LONG bStart) = 0;

    virtual HRESULT STDMETHODCALLTYPE Expand(
        LONG Unit,
        LONG *pDelta) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetIndex(
        LONG Unit,
        LONG *pIndex) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetIndex(
        LONG Unit,
        LONG Index,
        LONG Extend) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetRange(
        LONG cpActive,
        LONG cpOther) = 0;

    virtual HRESULT STDMETHODCALLTYPE InRange(
        ITextRange *pRange,
        LONG *pb) = 0;

    virtual HRESULT STDMETHODCALLTYPE InStory(
        ITextRange *pRange,
        LONG *pb) = 0;

    virtual HRESULT STDMETHODCALLTYPE IsEqual(
        ITextRange *pRange,
        LONG *pb) = 0;

    virtual HRESULT STDMETHODCALLTYPE Select(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE StartOf(
        LONG Unit,
        LONG Extend,
        LONG *pDelta) = 0;

    virtual HRESULT STDMETHODCALLTYPE EndOf(
        LONG Unit,
        LONG Extend,
        LONG *pDelta) = 0;

    virtual HRESULT STDMETHODCALLTYPE Move(
        LONG Unit,
        LONG Count,
        LONG *pDelta) = 0;

    virtual HRESULT STDMETHODCALLTYPE MoveStart(
        LONG Unit,
        LONG Count,
        LONG *pDelta) = 0;

    virtual HRESULT STDMETHODCALLTYPE MoveEnd(
        LONG Unit,
        LONG Count,
        LONG *pDelta) = 0;

    virtual HRESULT STDMETHODCALLTYPE MoveWhile(
        VARIANT *Cset,
        LONG Count,
        LONG *pDelta) = 0;

    virtual HRESULT STDMETHODCALLTYPE MoveStartWhile(
        VARIANT *Cset,
        LONG Count,
        LONG *pDelta) = 0;

    virtual HRESULT STDMETHODCALLTYPE MoveEndWhile(
        VARIANT *Cset,
        LONG Count,
        LONG *pDelta) = 0;

    virtual HRESULT STDMETHODCALLTYPE MoveUntil(
        VARIANT *Cset,
        LONG Count,
        LONG *pDelta) = 0;

    virtual HRESULT STDMETHODCALLTYPE MoveStartUntil(
        VARIANT *Cset,
        LONG Count,
        LONG *pDelta) = 0;

    virtual HRESULT STDMETHODCALLTYPE MoveEndUntil(
        VARIANT *Cset,
        LONG Count,
        LONG *pDelta) = 0;

    virtual HRESULT STDMETHODCALLTYPE FindText(
        BSTR bstr,
        LONG cch,
        LONG Flags,
        LONG *pLength) = 0;

    virtual HRESULT STDMETHODCALLTYPE FindTextStart(
        BSTR bstr,
        LONG cch,
        LONG Flags,
        LONG *pLength) = 0;

    virtual HRESULT STDMETHODCALLTYPE FindTextEnd(
        BSTR bstr,
        LONG cch,
        LONG Flags,
        LONG *pLength) = 0;

    virtual HRESULT STDMETHODCALLTYPE Delete(
        LONG Unit,
        LONG Count,
        LONG *pDelta) = 0;

    virtual HRESULT STDMETHODCALLTYPE Cut(
        VARIANT *pVar) = 0;

    virtual HRESULT STDMETHODCALLTYPE Copy(
        VARIANT *pVar) = 0;

    virtual HRESULT STDMETHODCALLTYPE Paste(
        VARIANT *pVar,
        LONG Format) = 0;

    virtual HRESULT STDMETHODCALLTYPE CanPaste(
        VARIANT *pVar,
        LONG Format,
        LONG *pb) = 0;

    virtual HRESULT STDMETHODCALLTYPE CanEdit(
        LONG *pb) = 0;

    virtual HRESULT STDMETHODCALLTYPE ChangeCase(
        LONG Type) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetPoint(
        LONG Type,
        LONG *cx,
        LONG *cy) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetPoint(
        LONG x,
        LONG y,
        LONG Type,
        LONG Extend) = 0;

    virtual HRESULT STDMETHODCALLTYPE ScrollIntoView(
        LONG Value) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetEmbeddedObject(
        IUnknown **ppv) = 0;

};
#else
typedef struct ITextRangeVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        ITextRange* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        ITextRange* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        ITextRange* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        ITextRange* This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        ITextRange* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        ITextRange* This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        ITextRange* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** ITextRange methods ***/
    HRESULT (STDMETHODCALLTYPE *GetText)(
        ITextRange* This,
        BSTR *pbstr);

    HRESULT (STDMETHODCALLTYPE *SetText)(
        ITextRange* This,
        BSTR bstr);

    HRESULT (STDMETHODCALLTYPE *GetChar)(
        ITextRange* This,
        LONG *pch);

    HRESULT (STDMETHODCALLTYPE *SetChar)(
        ITextRange* This,
        LONG ch);

    HRESULT (STDMETHODCALLTYPE *GetDuplicate)(
        ITextRange* This,
        ITextRange **ppRange);

    HRESULT (STDMETHODCALLTYPE *GetFormattedText)(
        ITextRange* This,
        ITextRange **ppRange);

    HRESULT (STDMETHODCALLTYPE *SetFormattedText)(
        ITextRange* This,
        ITextRange *pRange);

    HRESULT (STDMETHODCALLTYPE *GetStart)(
        ITextRange* This,
        LONG *pcpFirst);

    HRESULT (STDMETHODCALLTYPE *SetStart)(
        ITextRange* This,
        LONG cpFirst);

    HRESULT (STDMETHODCALLTYPE *GetEnd)(
        ITextRange* This,
        LONG *pcpLim);

    HRESULT (STDMETHODCALLTYPE *SetEnd)(
        ITextRange* This,
        LONG cpLim);

    HRESULT (STDMETHODCALLTYPE *GetFont)(
        ITextRange* This,
        ITextFont **pFont);

    HRESULT (STDMETHODCALLTYPE *SetFont)(
        ITextRange* This,
        ITextFont *pFont);

    HRESULT (STDMETHODCALLTYPE *GetPara)(
        ITextRange* This,
        ITextPara **ppPara);

    HRESULT (STDMETHODCALLTYPE *SetPara)(
        ITextRange* This,
        ITextPara *pPara);

    HRESULT (STDMETHODCALLTYPE *GetStoryLength)(
        ITextRange* This,
        LONG *pcch);

    HRESULT (STDMETHODCALLTYPE *GetStoryType)(
        ITextRange* This,
        LONG *pValue);

    HRESULT (STDMETHODCALLTYPE *Collapse)(
        ITextRange* This,
        LONG bStart);

    HRESULT (STDMETHODCALLTYPE *Expand)(
        ITextRange* This,
        LONG Unit,
        LONG *pDelta);

    HRESULT (STDMETHODCALLTYPE *GetIndex)(
        ITextRange* This,
        LONG Unit,
        LONG *pIndex);

    HRESULT (STDMETHODCALLTYPE *SetIndex)(
        ITextRange* This,
        LONG Unit,
        LONG Index,
        LONG Extend);

    HRESULT (STDMETHODCALLTYPE *SetRange)(
        ITextRange* This,
        LONG cpActive,
        LONG cpOther);

    HRESULT (STDMETHODCALLTYPE *InRange)(
        ITextRange* This,
        ITextRange *pRange,
        LONG *pb);

    HRESULT (STDMETHODCALLTYPE *InStory)(
        ITextRange* This,
        ITextRange *pRange,
        LONG *pb);

    HRESULT (STDMETHODCALLTYPE *IsEqual)(
        ITextRange* This,
        ITextRange *pRange,
        LONG *pb);

    HRESULT (STDMETHODCALLTYPE *Select)(
        ITextRange* This);

    HRESULT (STDMETHODCALLTYPE *StartOf)(
        ITextRange* This,
        LONG Unit,
        LONG Extend,
        LONG *pDelta);

    HRESULT (STDMETHODCALLTYPE *EndOf)(
        ITextRange* This,
        LONG Unit,
        LONG Extend,
        LONG *pDelta);

    HRESULT (STDMETHODCALLTYPE *Move)(
        ITextRange* This,
        LONG Unit,
        LONG Count,
        LONG *pDelta);

    HRESULT (STDMETHODCALLTYPE *MoveStart)(
        ITextRange* This,
        LONG Unit,
        LONG Count,
        LONG *pDelta);

    HRESULT (STDMETHODCALLTYPE *MoveEnd)(
        ITextRange* This,
        LONG Unit,
        LONG Count,
        LONG *pDelta);

    HRESULT (STDMETHODCALLTYPE *MoveWhile)(
        ITextRange* This,
        VARIANT *Cset,
        LONG Count,
        LONG *pDelta);

    HRESULT (STDMETHODCALLTYPE *MoveStartWhile)(
        ITextRange* This,
        VARIANT *Cset,
        LONG Count,
        LONG *pDelta);

    HRESULT (STDMETHODCALLTYPE *MoveEndWhile)(
        ITextRange* This,
        VARIANT *Cset,
        LONG Count,
        LONG *pDelta);

    HRESULT (STDMETHODCALLTYPE *MoveUntil)(
        ITextRange* This,
        VARIANT *Cset,
        LONG Count,
        LONG *pDelta);

    HRESULT (STDMETHODCALLTYPE *MoveStartUntil)(
        ITextRange* This,
        VARIANT *Cset,
        LONG Count,
        LONG *pDelta);

    HRESULT (STDMETHODCALLTYPE *MoveEndUntil)(
        ITextRange* This,
        VARIANT *Cset,
        LONG Count,
        LONG *pDelta);

    HRESULT (STDMETHODCALLTYPE *FindText)(
        ITextRange* This,
        BSTR bstr,
        LONG cch,
        LONG Flags,
        LONG *pLength);

    HRESULT (STDMETHODCALLTYPE *FindTextStart)(
        ITextRange* This,
        BSTR bstr,
        LONG cch,
        LONG Flags,
        LONG *pLength);

    HRESULT (STDMETHODCALLTYPE *FindTextEnd)(
        ITextRange* This,
        BSTR bstr,
        LONG cch,
        LONG Flags,
        LONG *pLength);

    HRESULT (STDMETHODCALLTYPE *Delete)(
        ITextRange* This,
        LONG Unit,
        LONG Count,
        LONG *pDelta);

    HRESULT (STDMETHODCALLTYPE *Cut)(
        ITextRange* This,
        VARIANT *pVar);

    HRESULT (STDMETHODCALLTYPE *Copy)(
        ITextRange* This,
        VARIANT *pVar);

    HRESULT (STDMETHODCALLTYPE *Paste)(
        ITextRange* This,
        VARIANT *pVar,
        LONG Format);

    HRESULT (STDMETHODCALLTYPE *CanPaste)(
        ITextRange* This,
        VARIANT *pVar,
        LONG Format,
        LONG *pb);

    HRESULT (STDMETHODCALLTYPE *CanEdit)(
        ITextRange* This,
        LONG *pb);

    HRESULT (STDMETHODCALLTYPE *ChangeCase)(
        ITextRange* This,
        LONG Type);

    HRESULT (STDMETHODCALLTYPE *GetPoint)(
        ITextRange* This,
        LONG Type,
        LONG *cx,
        LONG *cy);

    HRESULT (STDMETHODCALLTYPE *SetPoint)(
        ITextRange* This,
        LONG x,
        LONG y,
        LONG Type,
        LONG Extend);

    HRESULT (STDMETHODCALLTYPE *ScrollIntoView)(
        ITextRange* This,
        LONG Value);

    HRESULT (STDMETHODCALLTYPE *GetEmbeddedObject)(
        ITextRange* This,
        IUnknown **ppv);

    END_INTERFACE
} ITextRangeVtbl;
interface ITextRange {
    CONST_VTBL ITextRangeVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define ITextRange_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define ITextRange_AddRef(This) (This)->lpVtbl->AddRef(This)
#define ITextRange_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define ITextRange_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define ITextRange_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define ITextRange_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define ITextRange_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** ITextRange methods ***/
#define ITextRange_GetText(This,pbstr) (This)->lpVtbl->GetText(This,pbstr)
#define ITextRange_SetText(This,bstr) (This)->lpVtbl->SetText(This,bstr)
#define ITextRange_GetChar(This,pch) (This)->lpVtbl->GetChar(This,pch)
#define ITextRange_SetChar(This,ch) (This)->lpVtbl->SetChar(This,ch)
#define ITextRange_GetDuplicate(This,ppRange) (This)->lpVtbl->GetDuplicate(This,ppRange)
#define ITextRange_GetFormattedText(This,ppRange) (This)->lpVtbl->GetFormattedText(This,ppRange)
#define ITextRange_SetFormattedText(This,pRange) (This)->lpVtbl->SetFormattedText(This,pRange)
#define ITextRange_GetStart(This,pcpFirst) (This)->lpVtbl->GetStart(This,pcpFirst)
#define ITextRange_SetStart(This,cpFirst) (This)->lpVtbl->SetStart(This,cpFirst)
#define ITextRange_GetEnd(This,pcpLim) (This)->lpVtbl->GetEnd(This,pcpLim)
#define ITextRange_SetEnd(This,cpLim) (This)->lpVtbl->SetEnd(This,cpLim)
#define ITextRange_GetFont(This,pFont) (This)->lpVtbl->GetFont(This,pFont)
#define ITextRange_SetFont(This,pFont) (This)->lpVtbl->SetFont(This,pFont)
#define ITextRange_GetPara(This,ppPara) (This)->lpVtbl->GetPara(This,ppPara)
#define ITextRange_SetPara(This,pPara) (This)->lpVtbl->SetPara(This,pPara)
#define ITextRange_GetStoryLength(This,pcch) (This)->lpVtbl->GetStoryLength(This,pcch)
#define ITextRange_GetStoryType(This,pValue) (This)->lpVtbl->GetStoryType(This,pValue)
#define ITextRange_Collapse(This,bStart) (This)->lpVtbl->Collapse(This,bStart)
#define ITextRange_Expand(This,Unit,pDelta) (This)->lpVtbl->Expand(This,Unit,pDelta)
#define ITextRange_GetIndex(This,Unit,pIndex) (This)->lpVtbl->GetIndex(This,Unit,pIndex)
#define ITextRange_SetIndex(This,Unit,Index,Extend) (This)->lpVtbl->SetIndex(This,Unit,Index,Extend)
#define ITextRange_SetRange(This,cpActive,cpOther) (This)->lpVtbl->SetRange(This,cpActive,cpOther)
#define ITextRange_InRange(This,pRange,pb) (This)->lpVtbl->InRange(This,pRange,pb)
#define ITextRange_InStory(This,pRange,pb) (This)->lpVtbl->InStory(This,pRange,pb)
#define ITextRange_IsEqual(This,pRange,pb) (This)->lpVtbl->IsEqual(This,pRange,pb)
#define ITextRange_Select(This) (This)->lpVtbl->Select(This)
#define ITextRange_StartOf(This,Unit,Extend,pDelta) (This)->lpVtbl->StartOf(This,Unit,Extend,pDelta)
#define ITextRange_EndOf(This,Unit,Extend,pDelta) (This)->lpVtbl->EndOf(This,Unit,Extend,pDelta)
#define ITextRange_Move(This,Unit,Count,pDelta) (This)->lpVtbl->Move(This,Unit,Count,pDelta)
#define ITextRange_MoveStart(This,Unit,Count,pDelta) (This)->lpVtbl->MoveStart(This,Unit,Count,pDelta)
#define ITextRange_MoveEnd(This,Unit,Count,pDelta) (This)->lpVtbl->MoveEnd(This,Unit,Count,pDelta)
#define ITextRange_MoveWhile(This,Cset,Count,pDelta) (This)->lpVtbl->MoveWhile(This,Cset,Count,pDelta)
#define ITextRange_MoveStartWhile(This,Cset,Count,pDelta) (This)->lpVtbl->MoveStartWhile(This,Cset,Count,pDelta)
#define ITextRange_MoveEndWhile(This,Cset,Count,pDelta) (This)->lpVtbl->MoveEndWhile(This,Cset,Count,pDelta)
#define ITextRange_MoveUntil(This,Cset,Count,pDelta) (This)->lpVtbl->MoveUntil(This,Cset,Count,pDelta)
#define ITextRange_MoveStartUntil(This,Cset,Count,pDelta) (This)->lpVtbl->MoveStartUntil(This,Cset,Count,pDelta)
#define ITextRange_MoveEndUntil(This,Cset,Count,pDelta) (This)->lpVtbl->MoveEndUntil(This,Cset,Count,pDelta)
#define ITextRange_FindText(This,bstr,cch,Flags,pLength) (This)->lpVtbl->FindText(This,bstr,cch,Flags,pLength)
#define ITextRange_FindTextStart(This,bstr,cch,Flags,pLength) (This)->lpVtbl->FindTextStart(This,bstr,cch,Flags,pLength)
#define ITextRange_FindTextEnd(This,bstr,cch,Flags,pLength) (This)->lpVtbl->FindTextEnd(This,bstr,cch,Flags,pLength)
#define ITextRange_Delete(This,Unit,Count,pDelta) (This)->lpVtbl->Delete(This,Unit,Count,pDelta)
#define ITextRange_Cut(This,pVar) (This)->lpVtbl->Cut(This,pVar)
#define ITextRange_Copy(This,pVar) (This)->lpVtbl->Copy(This,pVar)
#define ITextRange_Paste(This,pVar,Format) (This)->lpVtbl->Paste(This,pVar,Format)
#define ITextRange_CanPaste(This,pVar,Format,pb) (This)->lpVtbl->CanPaste(This,pVar,Format,pb)
#define ITextRange_CanEdit(This,pb) (This)->lpVtbl->CanEdit(This,pb)
#define ITextRange_ChangeCase(This,Type) (This)->lpVtbl->ChangeCase(This,Type)
#define ITextRange_GetPoint(This,Type,cx,cy) (This)->lpVtbl->GetPoint(This,Type,cx,cy)
#define ITextRange_SetPoint(This,x,y,Type,Extend) (This)->lpVtbl->SetPoint(This,x,y,Type,Extend)
#define ITextRange_ScrollIntoView(This,Value) (This)->lpVtbl->ScrollIntoView(This,Value)
#define ITextRange_GetEmbeddedObject(This,ppv) (This)->lpVtbl->GetEmbeddedObject(This,ppv)
#endif

#endif

HRESULT STDMETHODCALLTYPE ITextRange_GetText_Proxy(
    ITextRange* This,
    BSTR *pbstr);
void __RPC_STUB ITextRange_GetText_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextRange_SetText_Proxy(
    ITextRange* This,
    BSTR bstr);
void __RPC_STUB ITextRange_SetText_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextRange_GetChar_Proxy(
    ITextRange* This,
    LONG *pch);
void __RPC_STUB ITextRange_GetChar_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextRange_SetChar_Proxy(
    ITextRange* This,
    LONG ch);
void __RPC_STUB ITextRange_SetChar_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextRange_GetDuplicate_Proxy(
    ITextRange* This,
    ITextRange **ppRange);
void __RPC_STUB ITextRange_GetDuplicate_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextRange_GetFormattedText_Proxy(
    ITextRange* This,
    ITextRange **ppRange);
void __RPC_STUB ITextRange_GetFormattedText_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextRange_SetFormattedText_Proxy(
    ITextRange* This,
    ITextRange *pRange);
void __RPC_STUB ITextRange_SetFormattedText_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextRange_GetStart_Proxy(
    ITextRange* This,
    LONG *pcpFirst);
void __RPC_STUB ITextRange_GetStart_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextRange_SetStart_Proxy(
    ITextRange* This,
    LONG cpFirst);
void __RPC_STUB ITextRange_SetStart_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextRange_GetEnd_Proxy(
    ITextRange* This,
    LONG *pcpLim);
void __RPC_STUB ITextRange_GetEnd_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextRange_SetEnd_Proxy(
    ITextRange* This,
    LONG cpLim);
void __RPC_STUB ITextRange_SetEnd_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextRange_GetFont_Proxy(
    ITextRange* This,
    ITextFont **pFont);
void __RPC_STUB ITextRange_GetFont_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextRange_SetFont_Proxy(
    ITextRange* This,
    ITextFont *pFont);
void __RPC_STUB ITextRange_SetFont_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextRange_GetPara_Proxy(
    ITextRange* This,
    ITextPara **ppPara);
void __RPC_STUB ITextRange_GetPara_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextRange_SetPara_Proxy(
    ITextRange* This,
    ITextPara *pPara);
void __RPC_STUB ITextRange_SetPara_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextRange_GetStoryLength_Proxy(
    ITextRange* This,
    LONG *pcch);
void __RPC_STUB ITextRange_GetStoryLength_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextRange_GetStoryType_Proxy(
    ITextRange* This,
    LONG *pValue);
void __RPC_STUB ITextRange_GetStoryType_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextRange_Collapse_Proxy(
    ITextRange* This,
    LONG bStart);
void __RPC_STUB ITextRange_Collapse_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextRange_Expand_Proxy(
    ITextRange* This,
    LONG Unit,
    LONG *pDelta);
void __RPC_STUB ITextRange_Expand_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextRange_GetIndex_Proxy(
    ITextRange* This,
    LONG Unit,
    LONG *pIndex);
void __RPC_STUB ITextRange_GetIndex_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextRange_SetIndex_Proxy(
    ITextRange* This,
    LONG Unit,
    LONG Index,
    LONG Extend);
void __RPC_STUB ITextRange_SetIndex_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextRange_SetRange_Proxy(
    ITextRange* This,
    LONG cpActive,
    LONG cpOther);
void __RPC_STUB ITextRange_SetRange_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextRange_InRange_Proxy(
    ITextRange* This,
    ITextRange *pRange,
    LONG *pb);
void __RPC_STUB ITextRange_InRange_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextRange_InStory_Proxy(
    ITextRange* This,
    ITextRange *pRange,
    LONG *pb);
void __RPC_STUB ITextRange_InStory_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextRange_IsEqual_Proxy(
    ITextRange* This,
    ITextRange *pRange,
    LONG *pb);
void __RPC_STUB ITextRange_IsEqual_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextRange_Select_Proxy(
    ITextRange* This);
void __RPC_STUB ITextRange_Select_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextRange_StartOf_Proxy(
    ITextRange* This,
    LONG Unit,
    LONG Extend,
    LONG *pDelta);
void __RPC_STUB ITextRange_StartOf_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextRange_EndOf_Proxy(
    ITextRange* This,
    LONG Unit,
    LONG Extend,
    LONG *pDelta);
void __RPC_STUB ITextRange_EndOf_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextRange_Move_Proxy(
    ITextRange* This,
    LONG Unit,
    LONG Count,
    LONG *pDelta);
void __RPC_STUB ITextRange_Move_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextRange_MoveStart_Proxy(
    ITextRange* This,
    LONG Unit,
    LONG Count,
    LONG *pDelta);
void __RPC_STUB ITextRange_MoveStart_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextRange_MoveEnd_Proxy(
    ITextRange* This,
    LONG Unit,
    LONG Count,
    LONG *pDelta);
void __RPC_STUB ITextRange_MoveEnd_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextRange_MoveWhile_Proxy(
    ITextRange* This,
    VARIANT *Cset,
    LONG Count,
    LONG *pDelta);
void __RPC_STUB ITextRange_MoveWhile_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextRange_MoveStartWhile_Proxy(
    ITextRange* This,
    VARIANT *Cset,
    LONG Count,
    LONG *pDelta);
void __RPC_STUB ITextRange_MoveStartWhile_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextRange_MoveEndWhile_Proxy(
    ITextRange* This,
    VARIANT *Cset,
    LONG Count,
    LONG *pDelta);
void __RPC_STUB ITextRange_MoveEndWhile_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextRange_MoveUntil_Proxy(
    ITextRange* This,
    VARIANT *Cset,
    LONG Count,
    LONG *pDelta);
void __RPC_STUB ITextRange_MoveUntil_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextRange_MoveStartUntil_Proxy(
    ITextRange* This,
    VARIANT *Cset,
    LONG Count,
    LONG *pDelta);
void __RPC_STUB ITextRange_MoveStartUntil_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextRange_MoveEndUntil_Proxy(
    ITextRange* This,
    VARIANT *Cset,
    LONG Count,
    LONG *pDelta);
void __RPC_STUB ITextRange_MoveEndUntil_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextRange_FindText_Proxy(
    ITextRange* This,
    BSTR bstr,
    LONG cch,
    LONG Flags,
    LONG *pLength);
void __RPC_STUB ITextRange_FindText_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextRange_FindTextStart_Proxy(
    ITextRange* This,
    BSTR bstr,
    LONG cch,
    LONG Flags,
    LONG *pLength);
void __RPC_STUB ITextRange_FindTextStart_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextRange_FindTextEnd_Proxy(
    ITextRange* This,
    BSTR bstr,
    LONG cch,
    LONG Flags,
    LONG *pLength);
void __RPC_STUB ITextRange_FindTextEnd_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextRange_Delete_Proxy(
    ITextRange* This,
    LONG Unit,
    LONG Count,
    LONG *pDelta);
void __RPC_STUB ITextRange_Delete_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextRange_Cut_Proxy(
    ITextRange* This,
    VARIANT *pVar);
void __RPC_STUB ITextRange_Cut_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextRange_Copy_Proxy(
    ITextRange* This,
    VARIANT *pVar);
void __RPC_STUB ITextRange_Copy_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextRange_Paste_Proxy(
    ITextRange* This,
    VARIANT *pVar,
    LONG Format);
void __RPC_STUB ITextRange_Paste_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextRange_CanPaste_Proxy(
    ITextRange* This,
    VARIANT *pVar,
    LONG Format,
    LONG *pb);
void __RPC_STUB ITextRange_CanPaste_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextRange_CanEdit_Proxy(
    ITextRange* This,
    LONG *pb);
void __RPC_STUB ITextRange_CanEdit_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextRange_ChangeCase_Proxy(
    ITextRange* This,
    LONG Type);
void __RPC_STUB ITextRange_ChangeCase_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextRange_GetPoint_Proxy(
    ITextRange* This,
    LONG Type,
    LONG *cx,
    LONG *cy);
void __RPC_STUB ITextRange_GetPoint_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextRange_SetPoint_Proxy(
    ITextRange* This,
    LONG x,
    LONG y,
    LONG Type,
    LONG Extend);
void __RPC_STUB ITextRange_SetPoint_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextRange_ScrollIntoView_Proxy(
    ITextRange* This,
    LONG Value);
void __RPC_STUB ITextRange_ScrollIntoView_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextRange_GetEmbeddedObject_Proxy(
    ITextRange* This,
    IUnknown **ppv);
void __RPC_STUB ITextRange_GetEmbeddedObject_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __ITextRange_INTERFACE_DEFINED__ */

/*****************************************************************************
 * ITextSelection interface
 */
#ifndef __ITextSelection_INTERFACE_DEFINED__
#define __ITextSelection_INTERFACE_DEFINED__

DEFINE_GUID(IID_ITextSelection, 0x8cc497c1, 0xa1df, 0x11ce, 0x80,0x98, 0x00,0xaa,0x00,0x47,0xbe,0x5d);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface ITextSelection : public ITextRange
{
    virtual HRESULT STDMETHODCALLTYPE GetFlags(
        LONG *pFlags) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetFlags(
        LONG Flags) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetType(
        LONG *pType) = 0;

    virtual HRESULT STDMETHODCALLTYPE MoveLeft(
        LONG Unit,
        LONG Count,
        LONG Extend,
        LONG *pDelta) = 0;

    virtual HRESULT STDMETHODCALLTYPE MoveRight(
        LONG Unit,
        LONG Count,
        LONG Extend,
        LONG *pDelta) = 0;

    virtual HRESULT STDMETHODCALLTYPE MoveUp(
        LONG Unit,
        LONG Count,
        LONG Extend,
        LONG *pDelta) = 0;

    virtual HRESULT STDMETHODCALLTYPE MoveDown(
        LONG Unit,
        LONG Count,
        LONG Extend,
        LONG *pDelta) = 0;

    virtual HRESULT STDMETHODCALLTYPE HomeKey(
        LONG Unit,
        LONG Extend,
        LONG *pDelta) = 0;

    virtual HRESULT STDMETHODCALLTYPE EndKey(
        LONG Unit,
        LONG Extend,
        LONG *pDelta) = 0;

    virtual HRESULT STDMETHODCALLTYPE TypeText(
        BSTR bstr) = 0;

};
#else
typedef struct ITextSelectionVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        ITextSelection* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        ITextSelection* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        ITextSelection* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        ITextSelection* This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        ITextSelection* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        ITextSelection* This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        ITextSelection* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** ITextRange methods ***/
    HRESULT (STDMETHODCALLTYPE *GetText)(
        ITextSelection* This,
        BSTR *pbstr);

    HRESULT (STDMETHODCALLTYPE *SetText)(
        ITextSelection* This,
        BSTR bstr);

    HRESULT (STDMETHODCALLTYPE *GetChar)(
        ITextSelection* This,
        LONG *pch);

    HRESULT (STDMETHODCALLTYPE *SetChar)(
        ITextSelection* This,
        LONG ch);

    HRESULT (STDMETHODCALLTYPE *GetDuplicate)(
        ITextSelection* This,
        ITextRange **ppRange);

    HRESULT (STDMETHODCALLTYPE *GetFormattedText)(
        ITextSelection* This,
        ITextRange **ppRange);

    HRESULT (STDMETHODCALLTYPE *SetFormattedText)(
        ITextSelection* This,
        ITextRange *pRange);

    HRESULT (STDMETHODCALLTYPE *GetStart)(
        ITextSelection* This,
        LONG *pcpFirst);

    HRESULT (STDMETHODCALLTYPE *SetStart)(
        ITextSelection* This,
        LONG cpFirst);

    HRESULT (STDMETHODCALLTYPE *GetEnd)(
        ITextSelection* This,
        LONG *pcpLim);

    HRESULT (STDMETHODCALLTYPE *SetEnd)(
        ITextSelection* This,
        LONG cpLim);

    HRESULT (STDMETHODCALLTYPE *GetFont)(
        ITextSelection* This,
        ITextFont **pFont);

    HRESULT (STDMETHODCALLTYPE *SetFont)(
        ITextSelection* This,
        ITextFont *pFont);

    HRESULT (STDMETHODCALLTYPE *GetPara)(
        ITextSelection* This,
        ITextPara **ppPara);

    HRESULT (STDMETHODCALLTYPE *SetPara)(
        ITextSelection* This,
        ITextPara *pPara);

    HRESULT (STDMETHODCALLTYPE *GetStoryLength)(
        ITextSelection* This,
        LONG *pcch);

    HRESULT (STDMETHODCALLTYPE *GetStoryType)(
        ITextSelection* This,
        LONG *pValue);

    HRESULT (STDMETHODCALLTYPE *Collapse)(
        ITextSelection* This,
        LONG bStart);

    HRESULT (STDMETHODCALLTYPE *Expand)(
        ITextSelection* This,
        LONG Unit,
        LONG *pDelta);

    HRESULT (STDMETHODCALLTYPE *GetIndex)(
        ITextSelection* This,
        LONG Unit,
        LONG *pIndex);

    HRESULT (STDMETHODCALLTYPE *SetIndex)(
        ITextSelection* This,
        LONG Unit,
        LONG Index,
        LONG Extend);

    HRESULT (STDMETHODCALLTYPE *SetRange)(
        ITextSelection* This,
        LONG cpActive,
        LONG cpOther);

    HRESULT (STDMETHODCALLTYPE *InRange)(
        ITextSelection* This,
        ITextRange *pRange,
        LONG *pb);

    HRESULT (STDMETHODCALLTYPE *InStory)(
        ITextSelection* This,
        ITextRange *pRange,
        LONG *pb);

    HRESULT (STDMETHODCALLTYPE *IsEqual)(
        ITextSelection* This,
        ITextRange *pRange,
        LONG *pb);

    HRESULT (STDMETHODCALLTYPE *Select)(
        ITextSelection* This);

    HRESULT (STDMETHODCALLTYPE *StartOf)(
        ITextSelection* This,
        LONG Unit,
        LONG Extend,
        LONG *pDelta);

    HRESULT (STDMETHODCALLTYPE *EndOf)(
        ITextSelection* This,
        LONG Unit,
        LONG Extend,
        LONG *pDelta);

    HRESULT (STDMETHODCALLTYPE *Move)(
        ITextSelection* This,
        LONG Unit,
        LONG Count,
        LONG *pDelta);

    HRESULT (STDMETHODCALLTYPE *MoveStart)(
        ITextSelection* This,
        LONG Unit,
        LONG Count,
        LONG *pDelta);

    HRESULT (STDMETHODCALLTYPE *MoveEnd)(
        ITextSelection* This,
        LONG Unit,
        LONG Count,
        LONG *pDelta);

    HRESULT (STDMETHODCALLTYPE *MoveWhile)(
        ITextSelection* This,
        VARIANT *Cset,
        LONG Count,
        LONG *pDelta);

    HRESULT (STDMETHODCALLTYPE *MoveStartWhile)(
        ITextSelection* This,
        VARIANT *Cset,
        LONG Count,
        LONG *pDelta);

    HRESULT (STDMETHODCALLTYPE *MoveEndWhile)(
        ITextSelection* This,
        VARIANT *Cset,
        LONG Count,
        LONG *pDelta);

    HRESULT (STDMETHODCALLTYPE *MoveUntil)(
        ITextSelection* This,
        VARIANT *Cset,
        LONG Count,
        LONG *pDelta);

    HRESULT (STDMETHODCALLTYPE *MoveStartUntil)(
        ITextSelection* This,
        VARIANT *Cset,
        LONG Count,
        LONG *pDelta);

    HRESULT (STDMETHODCALLTYPE *MoveEndUntil)(
        ITextSelection* This,
        VARIANT *Cset,
        LONG Count,
        LONG *pDelta);

    HRESULT (STDMETHODCALLTYPE *FindText)(
        ITextSelection* This,
        BSTR bstr,
        LONG cch,
        LONG Flags,
        LONG *pLength);

    HRESULT (STDMETHODCALLTYPE *FindTextStart)(
        ITextSelection* This,
        BSTR bstr,
        LONG cch,
        LONG Flags,
        LONG *pLength);

    HRESULT (STDMETHODCALLTYPE *FindTextEnd)(
        ITextSelection* This,
        BSTR bstr,
        LONG cch,
        LONG Flags,
        LONG *pLength);

    HRESULT (STDMETHODCALLTYPE *Delete)(
        ITextSelection* This,
        LONG Unit,
        LONG Count,
        LONG *pDelta);

    HRESULT (STDMETHODCALLTYPE *Cut)(
        ITextSelection* This,
        VARIANT *pVar);

    HRESULT (STDMETHODCALLTYPE *Copy)(
        ITextSelection* This,
        VARIANT *pVar);

    HRESULT (STDMETHODCALLTYPE *Paste)(
        ITextSelection* This,
        VARIANT *pVar,
        LONG Format);

    HRESULT (STDMETHODCALLTYPE *CanPaste)(
        ITextSelection* This,
        VARIANT *pVar,
        LONG Format,
        LONG *pb);

    HRESULT (STDMETHODCALLTYPE *CanEdit)(
        ITextSelection* This,
        LONG *pb);

    HRESULT (STDMETHODCALLTYPE *ChangeCase)(
        ITextSelection* This,
        LONG Type);

    HRESULT (STDMETHODCALLTYPE *GetPoint)(
        ITextSelection* This,
        LONG Type,
        LONG *cx,
        LONG *cy);

    HRESULT (STDMETHODCALLTYPE *SetPoint)(
        ITextSelection* This,
        LONG x,
        LONG y,
        LONG Type,
        LONG Extend);

    HRESULT (STDMETHODCALLTYPE *ScrollIntoView)(
        ITextSelection* This,
        LONG Value);

    HRESULT (STDMETHODCALLTYPE *GetEmbeddedObject)(
        ITextSelection* This,
        IUnknown **ppv);

    /*** ITextSelection methods ***/
    HRESULT (STDMETHODCALLTYPE *GetFlags)(
        ITextSelection* This,
        LONG *pFlags);

    HRESULT (STDMETHODCALLTYPE *SetFlags)(
        ITextSelection* This,
        LONG Flags);

    HRESULT (STDMETHODCALLTYPE *GetType)(
        ITextSelection* This,
        LONG *pType);

    HRESULT (STDMETHODCALLTYPE *MoveLeft)(
        ITextSelection* This,
        LONG Unit,
        LONG Count,
        LONG Extend,
        LONG *pDelta);

    HRESULT (STDMETHODCALLTYPE *MoveRight)(
        ITextSelection* This,
        LONG Unit,
        LONG Count,
        LONG Extend,
        LONG *pDelta);

    HRESULT (STDMETHODCALLTYPE *MoveUp)(
        ITextSelection* This,
        LONG Unit,
        LONG Count,
        LONG Extend,
        LONG *pDelta);

    HRESULT (STDMETHODCALLTYPE *MoveDown)(
        ITextSelection* This,
        LONG Unit,
        LONG Count,
        LONG Extend,
        LONG *pDelta);

    HRESULT (STDMETHODCALLTYPE *HomeKey)(
        ITextSelection* This,
        LONG Unit,
        LONG Extend,
        LONG *pDelta);

    HRESULT (STDMETHODCALLTYPE *EndKey)(
        ITextSelection* This,
        LONG Unit,
        LONG Extend,
        LONG *pDelta);

    HRESULT (STDMETHODCALLTYPE *TypeText)(
        ITextSelection* This,
        BSTR bstr);

    END_INTERFACE
} ITextSelectionVtbl;
interface ITextSelection {
    CONST_VTBL ITextSelectionVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define ITextSelection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define ITextSelection_AddRef(This) (This)->lpVtbl->AddRef(This)
#define ITextSelection_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define ITextSelection_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define ITextSelection_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define ITextSelection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define ITextSelection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** ITextRange methods ***/
#define ITextSelection_GetText(This,pbstr) (This)->lpVtbl->GetText(This,pbstr)
#define ITextSelection_SetText(This,bstr) (This)->lpVtbl->SetText(This,bstr)
#define ITextSelection_GetChar(This,pch) (This)->lpVtbl->GetChar(This,pch)
#define ITextSelection_SetChar(This,ch) (This)->lpVtbl->SetChar(This,ch)
#define ITextSelection_GetDuplicate(This,ppRange) (This)->lpVtbl->GetDuplicate(This,ppRange)
#define ITextSelection_GetFormattedText(This,ppRange) (This)->lpVtbl->GetFormattedText(This,ppRange)
#define ITextSelection_SetFormattedText(This,pRange) (This)->lpVtbl->SetFormattedText(This,pRange)
#define ITextSelection_GetStart(This,pcpFirst) (This)->lpVtbl->GetStart(This,pcpFirst)
#define ITextSelection_SetStart(This,cpFirst) (This)->lpVtbl->SetStart(This,cpFirst)
#define ITextSelection_GetEnd(This,pcpLim) (This)->lpVtbl->GetEnd(This,pcpLim)
#define ITextSelection_SetEnd(This,cpLim) (This)->lpVtbl->SetEnd(This,cpLim)
#define ITextSelection_GetFont(This,pFont) (This)->lpVtbl->GetFont(This,pFont)
#define ITextSelection_SetFont(This,pFont) (This)->lpVtbl->SetFont(This,pFont)
#define ITextSelection_GetPara(This,ppPara) (This)->lpVtbl->GetPara(This,ppPara)
#define ITextSelection_SetPara(This,pPara) (This)->lpVtbl->SetPara(This,pPara)
#define ITextSelection_GetStoryLength(This,pcch) (This)->lpVtbl->GetStoryLength(This,pcch)
#define ITextSelection_GetStoryType(This,pValue) (This)->lpVtbl->GetStoryType(This,pValue)
#define ITextSelection_Collapse(This,bStart) (This)->lpVtbl->Collapse(This,bStart)
#define ITextSelection_Expand(This,Unit,pDelta) (This)->lpVtbl->Expand(This,Unit,pDelta)
#define ITextSelection_GetIndex(This,Unit,pIndex) (This)->lpVtbl->GetIndex(This,Unit,pIndex)
#define ITextSelection_SetIndex(This,Unit,Index,Extend) (This)->lpVtbl->SetIndex(This,Unit,Index,Extend)
#define ITextSelection_SetRange(This,cpActive,cpOther) (This)->lpVtbl->SetRange(This,cpActive,cpOther)
#define ITextSelection_InRange(This,pRange,pb) (This)->lpVtbl->InRange(This,pRange,pb)
#define ITextSelection_InStory(This,pRange,pb) (This)->lpVtbl->InStory(This,pRange,pb)
#define ITextSelection_IsEqual(This,pRange,pb) (This)->lpVtbl->IsEqual(This,pRange,pb)
#define ITextSelection_Select(This) (This)->lpVtbl->Select(This)
#define ITextSelection_StartOf(This,Unit,Extend,pDelta) (This)->lpVtbl->StartOf(This,Unit,Extend,pDelta)
#define ITextSelection_EndOf(This,Unit,Extend,pDelta) (This)->lpVtbl->EndOf(This,Unit,Extend,pDelta)
#define ITextSelection_Move(This,Unit,Count,pDelta) (This)->lpVtbl->Move(This,Unit,Count,pDelta)
#define ITextSelection_MoveStart(This,Unit,Count,pDelta) (This)->lpVtbl->MoveStart(This,Unit,Count,pDelta)
#define ITextSelection_MoveEnd(This,Unit,Count,pDelta) (This)->lpVtbl->MoveEnd(This,Unit,Count,pDelta)
#define ITextSelection_MoveWhile(This,Cset,Count,pDelta) (This)->lpVtbl->MoveWhile(This,Cset,Count,pDelta)
#define ITextSelection_MoveStartWhile(This,Cset,Count,pDelta) (This)->lpVtbl->MoveStartWhile(This,Cset,Count,pDelta)
#define ITextSelection_MoveEndWhile(This,Cset,Count,pDelta) (This)->lpVtbl->MoveEndWhile(This,Cset,Count,pDelta)
#define ITextSelection_MoveUntil(This,Cset,Count,pDelta) (This)->lpVtbl->MoveUntil(This,Cset,Count,pDelta)
#define ITextSelection_MoveStartUntil(This,Cset,Count,pDelta) (This)->lpVtbl->MoveStartUntil(This,Cset,Count,pDelta)
#define ITextSelection_MoveEndUntil(This,Cset,Count,pDelta) (This)->lpVtbl->MoveEndUntil(This,Cset,Count,pDelta)
#define ITextSelection_FindText(This,bstr,cch,Flags,pLength) (This)->lpVtbl->FindText(This,bstr,cch,Flags,pLength)
#define ITextSelection_FindTextStart(This,bstr,cch,Flags,pLength) (This)->lpVtbl->FindTextStart(This,bstr,cch,Flags,pLength)
#define ITextSelection_FindTextEnd(This,bstr,cch,Flags,pLength) (This)->lpVtbl->FindTextEnd(This,bstr,cch,Flags,pLength)
#define ITextSelection_Delete(This,Unit,Count,pDelta) (This)->lpVtbl->Delete(This,Unit,Count,pDelta)
#define ITextSelection_Cut(This,pVar) (This)->lpVtbl->Cut(This,pVar)
#define ITextSelection_Copy(This,pVar) (This)->lpVtbl->Copy(This,pVar)
#define ITextSelection_Paste(This,pVar,Format) (This)->lpVtbl->Paste(This,pVar,Format)
#define ITextSelection_CanPaste(This,pVar,Format,pb) (This)->lpVtbl->CanPaste(This,pVar,Format,pb)
#define ITextSelection_CanEdit(This,pb) (This)->lpVtbl->CanEdit(This,pb)
#define ITextSelection_ChangeCase(This,Type) (This)->lpVtbl->ChangeCase(This,Type)
#define ITextSelection_GetPoint(This,Type,cx,cy) (This)->lpVtbl->GetPoint(This,Type,cx,cy)
#define ITextSelection_SetPoint(This,x,y,Type,Extend) (This)->lpVtbl->SetPoint(This,x,y,Type,Extend)
#define ITextSelection_ScrollIntoView(This,Value) (This)->lpVtbl->ScrollIntoView(This,Value)
#define ITextSelection_GetEmbeddedObject(This,ppv) (This)->lpVtbl->GetEmbeddedObject(This,ppv)
/*** ITextSelection methods ***/
#define ITextSelection_GetFlags(This,pFlags) (This)->lpVtbl->GetFlags(This,pFlags)
#define ITextSelection_SetFlags(This,Flags) (This)->lpVtbl->SetFlags(This,Flags)
#define ITextSelection_GetType(This,pType) (This)->lpVtbl->GetType(This,pType)
#define ITextSelection_MoveLeft(This,Unit,Count,Extend,pDelta) (This)->lpVtbl->MoveLeft(This,Unit,Count,Extend,pDelta)
#define ITextSelection_MoveRight(This,Unit,Count,Extend,pDelta) (This)->lpVtbl->MoveRight(This,Unit,Count,Extend,pDelta)
#define ITextSelection_MoveUp(This,Unit,Count,Extend,pDelta) (This)->lpVtbl->MoveUp(This,Unit,Count,Extend,pDelta)
#define ITextSelection_MoveDown(This,Unit,Count,Extend,pDelta) (This)->lpVtbl->MoveDown(This,Unit,Count,Extend,pDelta)
#define ITextSelection_HomeKey(This,Unit,Extend,pDelta) (This)->lpVtbl->HomeKey(This,Unit,Extend,pDelta)
#define ITextSelection_EndKey(This,Unit,Extend,pDelta) (This)->lpVtbl->EndKey(This,Unit,Extend,pDelta)
#define ITextSelection_TypeText(This,bstr) (This)->lpVtbl->TypeText(This,bstr)
#endif

#endif

HRESULT STDMETHODCALLTYPE ITextSelection_GetFlags_Proxy(
    ITextSelection* This,
    LONG *pFlags);
void __RPC_STUB ITextSelection_GetFlags_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextSelection_SetFlags_Proxy(
    ITextSelection* This,
    LONG Flags);
void __RPC_STUB ITextSelection_SetFlags_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextSelection_GetType_Proxy(
    ITextSelection* This,
    LONG *pType);
void __RPC_STUB ITextSelection_GetType_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextSelection_MoveLeft_Proxy(
    ITextSelection* This,
    LONG Unit,
    LONG Count,
    LONG Extend,
    LONG *pDelta);
void __RPC_STUB ITextSelection_MoveLeft_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextSelection_MoveRight_Proxy(
    ITextSelection* This,
    LONG Unit,
    LONG Count,
    LONG Extend,
    LONG *pDelta);
void __RPC_STUB ITextSelection_MoveRight_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextSelection_MoveUp_Proxy(
    ITextSelection* This,
    LONG Unit,
    LONG Count,
    LONG Extend,
    LONG *pDelta);
void __RPC_STUB ITextSelection_MoveUp_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextSelection_MoveDown_Proxy(
    ITextSelection* This,
    LONG Unit,
    LONG Count,
    LONG Extend,
    LONG *pDelta);
void __RPC_STUB ITextSelection_MoveDown_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextSelection_HomeKey_Proxy(
    ITextSelection* This,
    LONG Unit,
    LONG Extend,
    LONG *pDelta);
void __RPC_STUB ITextSelection_HomeKey_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextSelection_EndKey_Proxy(
    ITextSelection* This,
    LONG Unit,
    LONG Extend,
    LONG *pDelta);
void __RPC_STUB ITextSelection_EndKey_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextSelection_TypeText_Proxy(
    ITextSelection* This,
    BSTR bstr);
void __RPC_STUB ITextSelection_TypeText_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __ITextSelection_INTERFACE_DEFINED__ */

/*****************************************************************************
 * ITextFont interface
 */
#ifndef __ITextFont_INTERFACE_DEFINED__
#define __ITextFont_INTERFACE_DEFINED__

DEFINE_GUID(IID_ITextFont, 0x8cc497c3, 0xa1df, 0x11ce, 0x80,0x98, 0x00,0xaa,0x00,0x47,0xbe,0x5d);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface ITextFont : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE GetDuplicate(
        ITextFont **ppFont) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetDuplicate(
        ITextFont *pFont) = 0;

    virtual HRESULT STDMETHODCALLTYPE CanChange(
        LONG *pB) = 0;

    virtual HRESULT STDMETHODCALLTYPE IsEqual(
        ITextFont *pFont,
        LONG *pB) = 0;

    virtual HRESULT STDMETHODCALLTYPE Reset(
        LONG Value) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetStyle(
        LONG *pValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetStyle(
        LONG Value) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetAllCaps(
        LONG *pValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetAllCaps(
        LONG Value) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetAnimation(
        LONG *pValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetAnimation(
        LONG Value) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetBackColor(
        LONG *pValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetBackColor(
        LONG Value) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetBold(
        LONG *pValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetBold(
        LONG Value) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetEmboss(
        LONG *pValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetEmboss(
        LONG Value) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetForeColor(
        LONG *pValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetForeColor(
        LONG Value) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetHidden(
        LONG *pValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetHidden(
        LONG Value) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetEngrave(
        LONG *pValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetEngrave(
        LONG Value) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetItalic(
        LONG *pValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetItalic(
        LONG Value) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetKerning(
        LONG *pValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetKerning(
        LONG Value) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetLanguageID(
        LONG *pValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetLanguageID(
        LONG Value) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetName(
        BSTR *pValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetName(
        BSTR Value) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetOutline(
        LONG *pValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetOutline(
        LONG Value) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetPosition(
        LONG *pValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetPosition(
        LONG Value) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetProtected(
        LONG *pValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetProtected(
        LONG Value) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetShadow(
        LONG *pValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetShadow(
        LONG Value) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetSize(
        LONG *pValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetSize(
        LONG Value) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetSmallCaps(
        LONG *pValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetSmallCaps(
        LONG Value) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetSpacing(
        float *pValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetSpacing(
        float Value) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetStrikeThrough(
        LONG *pValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetStrikeThrough(
        LONG Value) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetSubscript(
        LONG *pValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetSubscript(
        LONG Value) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetSuperscript(
        LONG *pValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetSuperscript(
        LONG Value) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetUnderline(
        LONG *pValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetUnderline(
        LONG Value) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetWeight(
        LONG *pValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetWeight(
        LONG Value) = 0;

};
#else
typedef struct ITextFontVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        ITextFont* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        ITextFont* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        ITextFont* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        ITextFont* This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        ITextFont* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        ITextFont* This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        ITextFont* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** ITextFont methods ***/
    HRESULT (STDMETHODCALLTYPE *GetDuplicate)(
        ITextFont* This,
        ITextFont **ppFont);

    HRESULT (STDMETHODCALLTYPE *SetDuplicate)(
        ITextFont* This,
        ITextFont *pFont);

    HRESULT (STDMETHODCALLTYPE *CanChange)(
        ITextFont* This,
        LONG *pB);

    HRESULT (STDMETHODCALLTYPE *IsEqual)(
        ITextFont* This,
        ITextFont *pFont,
        LONG *pB);

    HRESULT (STDMETHODCALLTYPE *Reset)(
        ITextFont* This,
        LONG Value);

    HRESULT (STDMETHODCALLTYPE *GetStyle)(
        ITextFont* This,
        LONG *pValue);

    HRESULT (STDMETHODCALLTYPE *SetStyle)(
        ITextFont* This,
        LONG Value);

    HRESULT (STDMETHODCALLTYPE *GetAllCaps)(
        ITextFont* This,
        LONG *pValue);

    HRESULT (STDMETHODCALLTYPE *SetAllCaps)(
        ITextFont* This,
        LONG Value);

    HRESULT (STDMETHODCALLTYPE *GetAnimation)(
        ITextFont* This,
        LONG *pValue);

    HRESULT (STDMETHODCALLTYPE *SetAnimation)(
        ITextFont* This,
        LONG Value);

    HRESULT (STDMETHODCALLTYPE *GetBackColor)(
        ITextFont* This,
        LONG *pValue);

    HRESULT (STDMETHODCALLTYPE *SetBackColor)(
        ITextFont* This,
        LONG Value);

    HRESULT (STDMETHODCALLTYPE *GetBold)(
        ITextFont* This,
        LONG *pValue);

    HRESULT (STDMETHODCALLTYPE *SetBold)(
        ITextFont* This,
        LONG Value);

    HRESULT (STDMETHODCALLTYPE *GetEmboss)(
        ITextFont* This,
        LONG *pValue);

    HRESULT (STDMETHODCALLTYPE *SetEmboss)(
        ITextFont* This,
        LONG Value);

    HRESULT (STDMETHODCALLTYPE *GetForeColor)(
        ITextFont* This,
        LONG *pValue);

    HRESULT (STDMETHODCALLTYPE *SetForeColor)(
        ITextFont* This,
        LONG Value);

    HRESULT (STDMETHODCALLTYPE *GetHidden)(
        ITextFont* This,
        LONG *pValue);

    HRESULT (STDMETHODCALLTYPE *SetHidden)(
        ITextFont* This,
        LONG Value);

    HRESULT (STDMETHODCALLTYPE *GetEngrave)(
        ITextFont* This,
        LONG *pValue);

    HRESULT (STDMETHODCALLTYPE *SetEngrave)(
        ITextFont* This,
        LONG Value);

    HRESULT (STDMETHODCALLTYPE *GetItalic)(
        ITextFont* This,
        LONG *pValue);

    HRESULT (STDMETHODCALLTYPE *SetItalic)(
        ITextFont* This,
        LONG Value);

    HRESULT (STDMETHODCALLTYPE *GetKerning)(
        ITextFont* This,
        LONG *pValue);

    HRESULT (STDMETHODCALLTYPE *SetKerning)(
        ITextFont* This,
        LONG Value);

    HRESULT (STDMETHODCALLTYPE *GetLanguageID)(
        ITextFont* This,
        LONG *pValue);

    HRESULT (STDMETHODCALLTYPE *SetLanguageID)(
        ITextFont* This,
        LONG Value);

    HRESULT (STDMETHODCALLTYPE *GetName)(
        ITextFont* This,
        BSTR *pValue);

    HRESULT (STDMETHODCALLTYPE *SetName)(
        ITextFont* This,
        BSTR Value);

    HRESULT (STDMETHODCALLTYPE *GetOutline)(
        ITextFont* This,
        LONG *pValue);

    HRESULT (STDMETHODCALLTYPE *SetOutline)(
        ITextFont* This,
        LONG Value);

    HRESULT (STDMETHODCALLTYPE *GetPosition)(
        ITextFont* This,
        LONG *pValue);

    HRESULT (STDMETHODCALLTYPE *SetPosition)(
        ITextFont* This,
        LONG Value);

    HRESULT (STDMETHODCALLTYPE *GetProtected)(
        ITextFont* This,
        LONG *pValue);

    HRESULT (STDMETHODCALLTYPE *SetProtected)(
        ITextFont* This,
        LONG Value);

    HRESULT (STDMETHODCALLTYPE *GetShadow)(
        ITextFont* This,
        LONG *pValue);

    HRESULT (STDMETHODCALLTYPE *SetShadow)(
        ITextFont* This,
        LONG Value);

    HRESULT (STDMETHODCALLTYPE *GetSize)(
        ITextFont* This,
        LONG *pValue);

    HRESULT (STDMETHODCALLTYPE *SetSize)(
        ITextFont* This,
        LONG Value);

    HRESULT (STDMETHODCALLTYPE *GetSmallCaps)(
        ITextFont* This,
        LONG *pValue);

    HRESULT (STDMETHODCALLTYPE *SetSmallCaps)(
        ITextFont* This,
        LONG Value);

    HRESULT (STDMETHODCALLTYPE *GetSpacing)(
        ITextFont* This,
        float *pValue);

    HRESULT (STDMETHODCALLTYPE *SetSpacing)(
        ITextFont* This,
        float Value);

    HRESULT (STDMETHODCALLTYPE *GetStrikeThrough)(
        ITextFont* This,
        LONG *pValue);

    HRESULT (STDMETHODCALLTYPE *SetStrikeThrough)(
        ITextFont* This,
        LONG Value);

    HRESULT (STDMETHODCALLTYPE *GetSubscript)(
        ITextFont* This,
        LONG *pValue);

    HRESULT (STDMETHODCALLTYPE *SetSubscript)(
        ITextFont* This,
        LONG Value);

    HRESULT (STDMETHODCALLTYPE *GetSuperscript)(
        ITextFont* This,
        LONG *pValue);

    HRESULT (STDMETHODCALLTYPE *SetSuperscript)(
        ITextFont* This,
        LONG Value);

    HRESULT (STDMETHODCALLTYPE *GetUnderline)(
        ITextFont* This,
        LONG *pValue);

    HRESULT (STDMETHODCALLTYPE *SetUnderline)(
        ITextFont* This,
        LONG Value);

    HRESULT (STDMETHODCALLTYPE *GetWeight)(
        ITextFont* This,
        LONG *pValue);

    HRESULT (STDMETHODCALLTYPE *SetWeight)(
        ITextFont* This,
        LONG Value);

    END_INTERFACE
} ITextFontVtbl;
interface ITextFont {
    CONST_VTBL ITextFontVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define ITextFont_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define ITextFont_AddRef(This) (This)->lpVtbl->AddRef(This)
#define ITextFont_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define ITextFont_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define ITextFont_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define ITextFont_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define ITextFont_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** ITextFont methods ***/
#define ITextFont_GetDuplicate(This,ppFont) (This)->lpVtbl->GetDuplicate(This,ppFont)
#define ITextFont_SetDuplicate(This,pFont) (This)->lpVtbl->SetDuplicate(This,pFont)
#define ITextFont_CanChange(This,pB) (This)->lpVtbl->CanChange(This,pB)
#define ITextFont_IsEqual(This,pFont,pB) (This)->lpVtbl->IsEqual(This,pFont,pB)
#define ITextFont_Reset(This,Value) (This)->lpVtbl->Reset(This,Value)
#define ITextFont_GetStyle(This,pValue) (This)->lpVtbl->GetStyle(This,pValue)
#define ITextFont_SetStyle(This,Value) (This)->lpVtbl->SetStyle(This,Value)
#define ITextFont_GetAllCaps(This,pValue) (This)->lpVtbl->GetAllCaps(This,pValue)
#define ITextFont_SetAllCaps(This,Value) (This)->lpVtbl->SetAllCaps(This,Value)
#define ITextFont_GetAnimation(This,pValue) (This)->lpVtbl->GetAnimation(This,pValue)
#define ITextFont_SetAnimation(This,Value) (This)->lpVtbl->SetAnimation(This,Value)
#define ITextFont_GetBackColor(This,pValue) (This)->lpVtbl->GetBackColor(This,pValue)
#define ITextFont_SetBackColor(This,Value) (This)->lpVtbl->SetBackColor(This,Value)
#define ITextFont_GetBold(This,pValue) (This)->lpVtbl->GetBold(This,pValue)
#define ITextFont_SetBold(This,Value) (This)->lpVtbl->SetBold(This,Value)
#define ITextFont_GetEmboss(This,pValue) (This)->lpVtbl->GetEmboss(This,pValue)
#define ITextFont_SetEmboss(This,Value) (This)->lpVtbl->SetEmboss(This,Value)
#define ITextFont_GetForeColor(This,pValue) (This)->lpVtbl->GetForeColor(This,pValue)
#define ITextFont_SetForeColor(This,Value) (This)->lpVtbl->SetForeColor(This,Value)
#define ITextFont_GetHidden(This,pValue) (This)->lpVtbl->GetHidden(This,pValue)
#define ITextFont_SetHidden(This,Value) (This)->lpVtbl->SetHidden(This,Value)
#define ITextFont_GetEngrave(This,pValue) (This)->lpVtbl->GetEngrave(This,pValue)
#define ITextFont_SetEngrave(This,Value) (This)->lpVtbl->SetEngrave(This,Value)
#define ITextFont_GetItalic(This,pValue) (This)->lpVtbl->GetItalic(This,pValue)
#define ITextFont_SetItalic(This,Value) (This)->lpVtbl->SetItalic(This,Value)
#define ITextFont_GetKerning(This,pValue) (This)->lpVtbl->GetKerning(This,pValue)
#define ITextFont_SetKerning(This,Value) (This)->lpVtbl->SetKerning(This,Value)
#define ITextFont_GetLanguageID(This,pValue) (This)->lpVtbl->GetLanguageID(This,pValue)
#define ITextFont_SetLanguageID(This,Value) (This)->lpVtbl->SetLanguageID(This,Value)
#define ITextFont_GetName(This,pValue) (This)->lpVtbl->GetName(This,pValue)
#define ITextFont_SetName(This,Value) (This)->lpVtbl->SetName(This,Value)
#define ITextFont_GetOutline(This,pValue) (This)->lpVtbl->GetOutline(This,pValue)
#define ITextFont_SetOutline(This,Value) (This)->lpVtbl->SetOutline(This,Value)
#define ITextFont_GetPosition(This,pValue) (This)->lpVtbl->GetPosition(This,pValue)
#define ITextFont_SetPosition(This,Value) (This)->lpVtbl->SetPosition(This,Value)
#define ITextFont_GetProtected(This,pValue) (This)->lpVtbl->GetProtected(This,pValue)
#define ITextFont_SetProtected(This,Value) (This)->lpVtbl->SetProtected(This,Value)
#define ITextFont_GetShadow(This,pValue) (This)->lpVtbl->GetShadow(This,pValue)
#define ITextFont_SetShadow(This,Value) (This)->lpVtbl->SetShadow(This,Value)
#define ITextFont_GetSize(This,pValue) (This)->lpVtbl->GetSize(This,pValue)
#define ITextFont_SetSize(This,Value) (This)->lpVtbl->SetSize(This,Value)
#define ITextFont_GetSmallCaps(This,pValue) (This)->lpVtbl->GetSmallCaps(This,pValue)
#define ITextFont_SetSmallCaps(This,Value) (This)->lpVtbl->SetSmallCaps(This,Value)
#define ITextFont_GetSpacing(This,pValue) (This)->lpVtbl->GetSpacing(This,pValue)
#define ITextFont_SetSpacing(This,Value) (This)->lpVtbl->SetSpacing(This,Value)
#define ITextFont_GetStrikeThrough(This,pValue) (This)->lpVtbl->GetStrikeThrough(This,pValue)
#define ITextFont_SetStrikeThrough(This,Value) (This)->lpVtbl->SetStrikeThrough(This,Value)
#define ITextFont_GetSubscript(This,pValue) (This)->lpVtbl->GetSubscript(This,pValue)
#define ITextFont_SetSubscript(This,Value) (This)->lpVtbl->SetSubscript(This,Value)
#define ITextFont_GetSuperscript(This,pValue) (This)->lpVtbl->GetSuperscript(This,pValue)
#define ITextFont_SetSuperscript(This,Value) (This)->lpVtbl->SetSuperscript(This,Value)
#define ITextFont_GetUnderline(This,pValue) (This)->lpVtbl->GetUnderline(This,pValue)
#define ITextFont_SetUnderline(This,Value) (This)->lpVtbl->SetUnderline(This,Value)
#define ITextFont_GetWeight(This,pValue) (This)->lpVtbl->GetWeight(This,pValue)
#define ITextFont_SetWeight(This,Value) (This)->lpVtbl->SetWeight(This,Value)
#endif

#endif

HRESULT STDMETHODCALLTYPE ITextFont_GetDuplicate_Proxy(
    ITextFont* This,
    ITextFont **ppFont);
void __RPC_STUB ITextFont_GetDuplicate_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextFont_SetDuplicate_Proxy(
    ITextFont* This,
    ITextFont *pFont);
void __RPC_STUB ITextFont_SetDuplicate_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextFont_CanChange_Proxy(
    ITextFont* This,
    LONG *pB);
void __RPC_STUB ITextFont_CanChange_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextFont_IsEqual_Proxy(
    ITextFont* This,
    ITextFont *pFont,
    LONG *pB);
void __RPC_STUB ITextFont_IsEqual_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextFont_Reset_Proxy(
    ITextFont* This,
    LONG Value);
void __RPC_STUB ITextFont_Reset_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextFont_GetStyle_Proxy(
    ITextFont* This,
    LONG *pValue);
void __RPC_STUB ITextFont_GetStyle_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextFont_SetStyle_Proxy(
    ITextFont* This,
    LONG Value);
void __RPC_STUB ITextFont_SetStyle_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextFont_GetAllCaps_Proxy(
    ITextFont* This,
    LONG *pValue);
void __RPC_STUB ITextFont_GetAllCaps_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextFont_SetAllCaps_Proxy(
    ITextFont* This,
    LONG Value);
void __RPC_STUB ITextFont_SetAllCaps_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextFont_GetAnimation_Proxy(
    ITextFont* This,
    LONG *pValue);
void __RPC_STUB ITextFont_GetAnimation_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextFont_SetAnimation_Proxy(
    ITextFont* This,
    LONG Value);
void __RPC_STUB ITextFont_SetAnimation_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextFont_GetBackColor_Proxy(
    ITextFont* This,
    LONG *pValue);
void __RPC_STUB ITextFont_GetBackColor_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextFont_SetBackColor_Proxy(
    ITextFont* This,
    LONG Value);
void __RPC_STUB ITextFont_SetBackColor_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextFont_GetBold_Proxy(
    ITextFont* This,
    LONG *pValue);
void __RPC_STUB ITextFont_GetBold_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextFont_SetBold_Proxy(
    ITextFont* This,
    LONG Value);
void __RPC_STUB ITextFont_SetBold_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextFont_GetEmboss_Proxy(
    ITextFont* This,
    LONG *pValue);
void __RPC_STUB ITextFont_GetEmboss_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextFont_SetEmboss_Proxy(
    ITextFont* This,
    LONG Value);
void __RPC_STUB ITextFont_SetEmboss_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextFont_GetForeColor_Proxy(
    ITextFont* This,
    LONG *pValue);
void __RPC_STUB ITextFont_GetForeColor_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextFont_SetForeColor_Proxy(
    ITextFont* This,
    LONG Value);
void __RPC_STUB ITextFont_SetForeColor_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextFont_GetHidden_Proxy(
    ITextFont* This,
    LONG *pValue);
void __RPC_STUB ITextFont_GetHidden_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextFont_SetHidden_Proxy(
    ITextFont* This,
    LONG Value);
void __RPC_STUB ITextFont_SetHidden_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextFont_GetEngrave_Proxy(
    ITextFont* This,
    LONG *pValue);
void __RPC_STUB ITextFont_GetEngrave_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextFont_SetEngrave_Proxy(
    ITextFont* This,
    LONG Value);
void __RPC_STUB ITextFont_SetEngrave_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextFont_GetItalic_Proxy(
    ITextFont* This,
    LONG *pValue);
void __RPC_STUB ITextFont_GetItalic_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextFont_SetItalic_Proxy(
    ITextFont* This,
    LONG Value);
void __RPC_STUB ITextFont_SetItalic_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextFont_GetKerning_Proxy(
    ITextFont* This,
    LONG *pValue);
void __RPC_STUB ITextFont_GetKerning_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextFont_SetKerning_Proxy(
    ITextFont* This,
    LONG Value);
void __RPC_STUB ITextFont_SetKerning_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextFont_GetLanguageID_Proxy(
    ITextFont* This,
    LONG *pValue);
void __RPC_STUB ITextFont_GetLanguageID_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextFont_SetLanguageID_Proxy(
    ITextFont* This,
    LONG Value);
void __RPC_STUB ITextFont_SetLanguageID_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextFont_GetName_Proxy(
    ITextFont* This,
    BSTR *pValue);
void __RPC_STUB ITextFont_GetName_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextFont_SetName_Proxy(
    ITextFont* This,
    BSTR Value);
void __RPC_STUB ITextFont_SetName_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextFont_GetOutline_Proxy(
    ITextFont* This,
    LONG *pValue);
void __RPC_STUB ITextFont_GetOutline_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextFont_SetOutline_Proxy(
    ITextFont* This,
    LONG Value);
void __RPC_STUB ITextFont_SetOutline_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextFont_GetPosition_Proxy(
    ITextFont* This,
    LONG *pValue);
void __RPC_STUB ITextFont_GetPosition_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextFont_SetPosition_Proxy(
    ITextFont* This,
    LONG Value);
void __RPC_STUB ITextFont_SetPosition_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextFont_GetProtected_Proxy(
    ITextFont* This,
    LONG *pValue);
void __RPC_STUB ITextFont_GetProtected_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextFont_SetProtected_Proxy(
    ITextFont* This,
    LONG Value);
void __RPC_STUB ITextFont_SetProtected_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextFont_GetShadow_Proxy(
    ITextFont* This,
    LONG *pValue);
void __RPC_STUB ITextFont_GetShadow_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextFont_SetShadow_Proxy(
    ITextFont* This,
    LONG Value);
void __RPC_STUB ITextFont_SetShadow_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextFont_GetSize_Proxy(
    ITextFont* This,
    LONG *pValue);
void __RPC_STUB ITextFont_GetSize_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextFont_SetSize_Proxy(
    ITextFont* This,
    LONG Value);
void __RPC_STUB ITextFont_SetSize_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextFont_GetSmallCaps_Proxy(
    ITextFont* This,
    LONG *pValue);
void __RPC_STUB ITextFont_GetSmallCaps_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextFont_SetSmallCaps_Proxy(
    ITextFont* This,
    LONG Value);
void __RPC_STUB ITextFont_SetSmallCaps_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextFont_GetSpacing_Proxy(
    ITextFont* This,
    float *pValue);
void __RPC_STUB ITextFont_GetSpacing_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextFont_SetSpacing_Proxy(
    ITextFont* This,
    float Value);
void __RPC_STUB ITextFont_SetSpacing_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextFont_GetStrikeThrough_Proxy(
    ITextFont* This,
    LONG *pValue);
void __RPC_STUB ITextFont_GetStrikeThrough_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextFont_SetStrikeThrough_Proxy(
    ITextFont* This,
    LONG Value);
void __RPC_STUB ITextFont_SetStrikeThrough_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextFont_GetSubscript_Proxy(
    ITextFont* This,
    LONG *pValue);
void __RPC_STUB ITextFont_GetSubscript_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextFont_SetSubscript_Proxy(
    ITextFont* This,
    LONG Value);
void __RPC_STUB ITextFont_SetSubscript_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextFont_GetSuperscript_Proxy(
    ITextFont* This,
    LONG *pValue);
void __RPC_STUB ITextFont_GetSuperscript_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextFont_SetSuperscript_Proxy(
    ITextFont* This,
    LONG Value);
void __RPC_STUB ITextFont_SetSuperscript_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextFont_GetUnderline_Proxy(
    ITextFont* This,
    LONG *pValue);
void __RPC_STUB ITextFont_GetUnderline_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextFont_SetUnderline_Proxy(
    ITextFont* This,
    LONG Value);
void __RPC_STUB ITextFont_SetUnderline_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextFont_GetWeight_Proxy(
    ITextFont* This,
    LONG *pValue);
void __RPC_STUB ITextFont_GetWeight_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextFont_SetWeight_Proxy(
    ITextFont* This,
    LONG Value);
void __RPC_STUB ITextFont_SetWeight_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __ITextFont_INTERFACE_DEFINED__ */

/*****************************************************************************
 * ITextPara interface
 */
#ifndef __ITextPara_INTERFACE_DEFINED__
#define __ITextPara_INTERFACE_DEFINED__

DEFINE_GUID(IID_ITextPara, 0x8cc497c4, 0xa1df, 0x11ce, 0x80,0x98, 0x00,0xaa,0x00,0x47,0xbe,0x5d);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface ITextPara : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE GetDuplicate(
        ITextPara **ppPara) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetDuplicate(
        ITextPara *pPara) = 0;

    virtual HRESULT STDMETHODCALLTYPE CanChange(
        LONG *pB) = 0;

    virtual HRESULT STDMETHODCALLTYPE IsEqual(
        ITextPara *pPara,
        LONG *pB) = 0;

    virtual HRESULT STDMETHODCALLTYPE Reset(
        LONG Value) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetStyle(
        LONG *pValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetStyle(
        LONG Value) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetAlignment(
        LONG *pValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetAlignment(
        LONG Value) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetHyphenation(
        LONG *pValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetHyphenation(
        LONG Value) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetFirstLineIndent(
        float *pValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetKeepTogether(
        LONG *pValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetKeepTogether(
        LONG Value) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetKeepWithNext(
        LONG *pValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetKeepWithNext(
        LONG Value) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetLeftIndent(
        float *pValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetLineSpacing(
        float *pValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetLineSpacingRule(
        LONG *pValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetListAlignment(
        LONG *pValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetListAlignment(
        LONG Value) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetListLevelIndex(
        LONG *pValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetListLevelIndex(
        LONG Value) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetListStart(
        LONG *pValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetListStart(
        LONG Value) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetListTab(
        LONG *pValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetListTab(
        LONG Value) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetListType(
        LONG *pValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetListType(
        LONG Value) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetNoLineNumber(
        LONG *pValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetNoLineNumber(
        LONG Value) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetPageBreakBefore(
        LONG *pValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetPageBreakBefore(
        LONG Value) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetRightIndent(
        float *pValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetRightIndent(
        float Value) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetIndents(
        float StartIndent,
        float LeftIndent,
        float RightIndent) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetLineSpacing(
        LONG LineSpacingRule,
        float LineSpacing) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetSpaceAfter(
        float *pValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetSpaceAfter(
        float Value) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetSpaceBefore(
        float *pValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetSpaceBefore(
        float Value) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetWindowControl(
        float *pValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetWindowControl(
        float Value) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetTabCount(
        LONG *pCount) = 0;

    virtual HRESULT STDMETHODCALLTYPE AddTab(
        float tbPos,
        LONG tbAlign,
        LONG tbLeader) = 0;

    virtual HRESULT STDMETHODCALLTYPE ClearAllTabs(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE DeleteTab(
        float tbPos) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetTab(
        LONG iTab,
        float *ptbPos,
        LONG *ptbAlign,
        LONG *ptbLeader) = 0;

};
#else
typedef struct ITextParaVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        ITextPara* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        ITextPara* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        ITextPara* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        ITextPara* This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        ITextPara* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        ITextPara* This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        ITextPara* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** ITextPara methods ***/
    HRESULT (STDMETHODCALLTYPE *GetDuplicate)(
        ITextPara* This,
        ITextPara **ppPara);

    HRESULT (STDMETHODCALLTYPE *SetDuplicate)(
        ITextPara* This,
        ITextPara *pPara);

    HRESULT (STDMETHODCALLTYPE *CanChange)(
        ITextPara* This,
        LONG *pB);

    HRESULT (STDMETHODCALLTYPE *IsEqual)(
        ITextPara* This,
        ITextPara *pPara,
        LONG *pB);

    HRESULT (STDMETHODCALLTYPE *Reset)(
        ITextPara* This,
        LONG Value);

    HRESULT (STDMETHODCALLTYPE *GetStyle)(
        ITextPara* This,
        LONG *pValue);

    HRESULT (STDMETHODCALLTYPE *SetStyle)(
        ITextPara* This,
        LONG Value);

    HRESULT (STDMETHODCALLTYPE *GetAlignment)(
        ITextPara* This,
        LONG *pValue);

    HRESULT (STDMETHODCALLTYPE *SetAlignment)(
        ITextPara* This,
        LONG Value);

    HRESULT (STDMETHODCALLTYPE *GetHyphenation)(
        ITextPara* This,
        LONG *pValue);

    HRESULT (STDMETHODCALLTYPE *SetHyphenation)(
        ITextPara* This,
        LONG Value);

    HRESULT (STDMETHODCALLTYPE *GetFirstLineIndent)(
        ITextPara* This,
        float *pValue);

    HRESULT (STDMETHODCALLTYPE *GetKeepTogether)(
        ITextPara* This,
        LONG *pValue);

    HRESULT (STDMETHODCALLTYPE *SetKeepTogether)(
        ITextPara* This,
        LONG Value);

    HRESULT (STDMETHODCALLTYPE *GetKeepWithNext)(
        ITextPara* This,
        LONG *pValue);

    HRESULT (STDMETHODCALLTYPE *SetKeepWithNext)(
        ITextPara* This,
        LONG Value);

    HRESULT (STDMETHODCALLTYPE *GetLeftIndent)(
        ITextPara* This,
        float *pValue);

    HRESULT (STDMETHODCALLTYPE *GetLineSpacing)(
        ITextPara* This,
        float *pValue);

    HRESULT (STDMETHODCALLTYPE *GetLineSpacingRule)(
        ITextPara* This,
        LONG *pValue);

    HRESULT (STDMETHODCALLTYPE *GetListAlignment)(
        ITextPara* This,
        LONG *pValue);

    HRESULT (STDMETHODCALLTYPE *SetListAlignment)(
        ITextPara* This,
        LONG Value);

    HRESULT (STDMETHODCALLTYPE *GetListLevelIndex)(
        ITextPara* This,
        LONG *pValue);

    HRESULT (STDMETHODCALLTYPE *SetListLevelIndex)(
        ITextPara* This,
        LONG Value);

    HRESULT (STDMETHODCALLTYPE *GetListStart)(
        ITextPara* This,
        LONG *pValue);

    HRESULT (STDMETHODCALLTYPE *SetListStart)(
        ITextPara* This,
        LONG Value);

    HRESULT (STDMETHODCALLTYPE *GetListTab)(
        ITextPara* This,
        LONG *pValue);

    HRESULT (STDMETHODCALLTYPE *SetListTab)(
        ITextPara* This,
        LONG Value);

    HRESULT (STDMETHODCALLTYPE *GetListType)(
        ITextPara* This,
        LONG *pValue);

    HRESULT (STDMETHODCALLTYPE *SetListType)(
        ITextPara* This,
        LONG Value);

    HRESULT (STDMETHODCALLTYPE *GetNoLineNumber)(
        ITextPara* This,
        LONG *pValue);

    HRESULT (STDMETHODCALLTYPE *SetNoLineNumber)(
        ITextPara* This,
        LONG Value);

    HRESULT (STDMETHODCALLTYPE *GetPageBreakBefore)(
        ITextPara* This,
        LONG *pValue);

    HRESULT (STDMETHODCALLTYPE *SetPageBreakBefore)(
        ITextPara* This,
        LONG Value);

    HRESULT (STDMETHODCALLTYPE *GetRightIndent)(
        ITextPara* This,
        float *pValue);

    HRESULT (STDMETHODCALLTYPE *SetRightIndent)(
        ITextPara* This,
        float Value);

    HRESULT (STDMETHODCALLTYPE *SetIndents)(
        ITextPara* This,
        float StartIndent,
        float LeftIndent,
        float RightIndent);

    HRESULT (STDMETHODCALLTYPE *SetLineSpacing)(
        ITextPara* This,
        LONG LineSpacingRule,
        float LineSpacing);

    HRESULT (STDMETHODCALLTYPE *GetSpaceAfter)(
        ITextPara* This,
        float *pValue);

    HRESULT (STDMETHODCALLTYPE *SetSpaceAfter)(
        ITextPara* This,
        float Value);

    HRESULT (STDMETHODCALLTYPE *GetSpaceBefore)(
        ITextPara* This,
        float *pValue);

    HRESULT (STDMETHODCALLTYPE *SetSpaceBefore)(
        ITextPara* This,
        float Value);

    HRESULT (STDMETHODCALLTYPE *GetWindowControl)(
        ITextPara* This,
        float *pValue);

    HRESULT (STDMETHODCALLTYPE *SetWindowControl)(
        ITextPara* This,
        float Value);

    HRESULT (STDMETHODCALLTYPE *GetTabCount)(
        ITextPara* This,
        LONG *pCount);

    HRESULT (STDMETHODCALLTYPE *AddTab)(
        ITextPara* This,
        float tbPos,
        LONG tbAlign,
        LONG tbLeader);

    HRESULT (STDMETHODCALLTYPE *ClearAllTabs)(
        ITextPara* This);

    HRESULT (STDMETHODCALLTYPE *DeleteTab)(
        ITextPara* This,
        float tbPos);

    HRESULT (STDMETHODCALLTYPE *GetTab)(
        ITextPara* This,
        LONG iTab,
        float *ptbPos,
        LONG *ptbAlign,
        LONG *ptbLeader);

    END_INTERFACE
} ITextParaVtbl;
interface ITextPara {
    CONST_VTBL ITextParaVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define ITextPara_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define ITextPara_AddRef(This) (This)->lpVtbl->AddRef(This)
#define ITextPara_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define ITextPara_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define ITextPara_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define ITextPara_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define ITextPara_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** ITextPara methods ***/
#define ITextPara_GetDuplicate(This,ppPara) (This)->lpVtbl->GetDuplicate(This,ppPara)
#define ITextPara_SetDuplicate(This,pPara) (This)->lpVtbl->SetDuplicate(This,pPara)
#define ITextPara_CanChange(This,pB) (This)->lpVtbl->CanChange(This,pB)
#define ITextPara_IsEqual(This,pPara,pB) (This)->lpVtbl->IsEqual(This,pPara,pB)
#define ITextPara_Reset(This,Value) (This)->lpVtbl->Reset(This,Value)
#define ITextPara_GetStyle(This,pValue) (This)->lpVtbl->GetStyle(This,pValue)
#define ITextPara_SetStyle(This,Value) (This)->lpVtbl->SetStyle(This,Value)
#define ITextPara_GetAlignment(This,pValue) (This)->lpVtbl->GetAlignment(This,pValue)
#define ITextPara_SetAlignment(This,Value) (This)->lpVtbl->SetAlignment(This,Value)
#define ITextPara_GetHyphenation(This,pValue) (This)->lpVtbl->GetHyphenation(This,pValue)
#define ITextPara_SetHyphenation(This,Value) (This)->lpVtbl->SetHyphenation(This,Value)
#define ITextPara_GetFirstLineIndent(This,pValue) (This)->lpVtbl->GetFirstLineIndent(This,pValue)
#define ITextPara_GetKeepTogether(This,pValue) (This)->lpVtbl->GetKeepTogether(This,pValue)
#define ITextPara_SetKeepTogether(This,Value) (This)->lpVtbl->SetKeepTogether(This,Value)
#define ITextPara_GetKeepWithNext(This,pValue) (This)->lpVtbl->GetKeepWithNext(This,pValue)
#define ITextPara_SetKeepWithNext(This,Value) (This)->lpVtbl->SetKeepWithNext(This,Value)
#define ITextPara_GetLeftIndent(This,pValue) (This)->lpVtbl->GetLeftIndent(This,pValue)
#define ITextPara_GetLineSpacing(This,pValue) (This)->lpVtbl->GetLineSpacing(This,pValue)
#define ITextPara_GetLineSpacingRule(This,pValue) (This)->lpVtbl->GetLineSpacingRule(This,pValue)
#define ITextPara_GetListAlignment(This,pValue) (This)->lpVtbl->GetListAlignment(This,pValue)
#define ITextPara_SetListAlignment(This,Value) (This)->lpVtbl->SetListAlignment(This,Value)
#define ITextPara_GetListLevelIndex(This,pValue) (This)->lpVtbl->GetListLevelIndex(This,pValue)
#define ITextPara_SetListLevelIndex(This,Value) (This)->lpVtbl->SetListLevelIndex(This,Value)
#define ITextPara_GetListStart(This,pValue) (This)->lpVtbl->GetListStart(This,pValue)
#define ITextPara_SetListStart(This,Value) (This)->lpVtbl->SetListStart(This,Value)
#define ITextPara_GetListTab(This,pValue) (This)->lpVtbl->GetListTab(This,pValue)
#define ITextPara_SetListTab(This,Value) (This)->lpVtbl->SetListTab(This,Value)
#define ITextPara_GetListType(This,pValue) (This)->lpVtbl->GetListType(This,pValue)
#define ITextPara_SetListType(This,Value) (This)->lpVtbl->SetListType(This,Value)
#define ITextPara_GetNoLineNumber(This,pValue) (This)->lpVtbl->GetNoLineNumber(This,pValue)
#define ITextPara_SetNoLineNumber(This,Value) (This)->lpVtbl->SetNoLineNumber(This,Value)
#define ITextPara_GetPageBreakBefore(This,pValue) (This)->lpVtbl->GetPageBreakBefore(This,pValue)
#define ITextPara_SetPageBreakBefore(This,Value) (This)->lpVtbl->SetPageBreakBefore(This,Value)
#define ITextPara_GetRightIndent(This,pValue) (This)->lpVtbl->GetRightIndent(This,pValue)
#define ITextPara_SetRightIndent(This,Value) (This)->lpVtbl->SetRightIndent(This,Value)
#define ITextPara_SetIndents(This,StartIndent,LeftIndent,RightIndent) (This)->lpVtbl->SetIndents(This,StartIndent,LeftIndent,RightIndent)
#define ITextPara_SetLineSpacing(This,LineSpacingRule,LineSpacing) (This)->lpVtbl->SetLineSpacing(This,LineSpacingRule,LineSpacing)
#define ITextPara_GetSpaceAfter(This,pValue) (This)->lpVtbl->GetSpaceAfter(This,pValue)
#define ITextPara_SetSpaceAfter(This,Value) (This)->lpVtbl->SetSpaceAfter(This,Value)
#define ITextPara_GetSpaceBefore(This,pValue) (This)->lpVtbl->GetSpaceBefore(This,pValue)
#define ITextPara_SetSpaceBefore(This,Value) (This)->lpVtbl->SetSpaceBefore(This,Value)
#define ITextPara_GetWindowControl(This,pValue) (This)->lpVtbl->GetWindowControl(This,pValue)
#define ITextPara_SetWindowControl(This,Value) (This)->lpVtbl->SetWindowControl(This,Value)
#define ITextPara_GetTabCount(This,pCount) (This)->lpVtbl->GetTabCount(This,pCount)
#define ITextPara_AddTab(This,tbPos,tbAlign,tbLeader) (This)->lpVtbl->AddTab(This,tbPos,tbAlign,tbLeader)
#define ITextPara_ClearAllTabs(This) (This)->lpVtbl->ClearAllTabs(This)
#define ITextPara_DeleteTab(This,tbPos) (This)->lpVtbl->DeleteTab(This,tbPos)
#define ITextPara_GetTab(This,iTab,ptbPos,ptbAlign,ptbLeader) (This)->lpVtbl->GetTab(This,iTab,ptbPos,ptbAlign,ptbLeader)
#endif

#endif

HRESULT STDMETHODCALLTYPE ITextPara_GetDuplicate_Proxy(
    ITextPara* This,
    ITextPara **ppPara);
void __RPC_STUB ITextPara_GetDuplicate_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextPara_SetDuplicate_Proxy(
    ITextPara* This,
    ITextPara *pPara);
void __RPC_STUB ITextPara_SetDuplicate_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextPara_CanChange_Proxy(
    ITextPara* This,
    LONG *pB);
void __RPC_STUB ITextPara_CanChange_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextPara_IsEqual_Proxy(
    ITextPara* This,
    ITextPara *pPara,
    LONG *pB);
void __RPC_STUB ITextPara_IsEqual_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextPara_Reset_Proxy(
    ITextPara* This,
    LONG Value);
void __RPC_STUB ITextPara_Reset_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextPara_GetStyle_Proxy(
    ITextPara* This,
    LONG *pValue);
void __RPC_STUB ITextPara_GetStyle_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextPara_SetStyle_Proxy(
    ITextPara* This,
    LONG Value);
void __RPC_STUB ITextPara_SetStyle_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextPara_GetAlignment_Proxy(
    ITextPara* This,
    LONG *pValue);
void __RPC_STUB ITextPara_GetAlignment_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextPara_SetAlignment_Proxy(
    ITextPara* This,
    LONG Value);
void __RPC_STUB ITextPara_SetAlignment_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextPara_GetHyphenation_Proxy(
    ITextPara* This,
    LONG *pValue);
void __RPC_STUB ITextPara_GetHyphenation_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextPara_SetHyphenation_Proxy(
    ITextPara* This,
    LONG Value);
void __RPC_STUB ITextPara_SetHyphenation_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextPara_GetFirstLineIndent_Proxy(
    ITextPara* This,
    float *pValue);
void __RPC_STUB ITextPara_GetFirstLineIndent_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextPara_GetKeepTogether_Proxy(
    ITextPara* This,
    LONG *pValue);
void __RPC_STUB ITextPara_GetKeepTogether_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextPara_SetKeepTogether_Proxy(
    ITextPara* This,
    LONG Value);
void __RPC_STUB ITextPara_SetKeepTogether_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextPara_GetKeepWithNext_Proxy(
    ITextPara* This,
    LONG *pValue);
void __RPC_STUB ITextPara_GetKeepWithNext_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextPara_SetKeepWithNext_Proxy(
    ITextPara* This,
    LONG Value);
void __RPC_STUB ITextPara_SetKeepWithNext_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextPara_GetLeftIndent_Proxy(
    ITextPara* This,
    float *pValue);
void __RPC_STUB ITextPara_GetLeftIndent_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextPara_GetLineSpacing_Proxy(
    ITextPara* This,
    float *pValue);
void __RPC_STUB ITextPara_GetLineSpacing_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextPara_GetLineSpacingRule_Proxy(
    ITextPara* This,
    LONG *pValue);
void __RPC_STUB ITextPara_GetLineSpacingRule_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextPara_GetListAlignment_Proxy(
    ITextPara* This,
    LONG *pValue);
void __RPC_STUB ITextPara_GetListAlignment_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextPara_SetListAlignment_Proxy(
    ITextPara* This,
    LONG Value);
void __RPC_STUB ITextPara_SetListAlignment_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextPara_GetListLevelIndex_Proxy(
    ITextPara* This,
    LONG *pValue);
void __RPC_STUB ITextPara_GetListLevelIndex_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextPara_SetListLevelIndex_Proxy(
    ITextPara* This,
    LONG Value);
void __RPC_STUB ITextPara_SetListLevelIndex_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextPara_GetListStart_Proxy(
    ITextPara* This,
    LONG *pValue);
void __RPC_STUB ITextPara_GetListStart_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextPara_SetListStart_Proxy(
    ITextPara* This,
    LONG Value);
void __RPC_STUB ITextPara_SetListStart_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextPara_GetListTab_Proxy(
    ITextPara* This,
    LONG *pValue);
void __RPC_STUB ITextPara_GetListTab_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextPara_SetListTab_Proxy(
    ITextPara* This,
    LONG Value);
void __RPC_STUB ITextPara_SetListTab_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextPara_GetListType_Proxy(
    ITextPara* This,
    LONG *pValue);
void __RPC_STUB ITextPara_GetListType_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextPara_SetListType_Proxy(
    ITextPara* This,
    LONG Value);
void __RPC_STUB ITextPara_SetListType_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextPara_GetNoLineNumber_Proxy(
    ITextPara* This,
    LONG *pValue);
void __RPC_STUB ITextPara_GetNoLineNumber_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextPara_SetNoLineNumber_Proxy(
    ITextPara* This,
    LONG Value);
void __RPC_STUB ITextPara_SetNoLineNumber_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextPara_GetPageBreakBefore_Proxy(
    ITextPara* This,
    LONG *pValue);
void __RPC_STUB ITextPara_GetPageBreakBefore_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextPara_SetPageBreakBefore_Proxy(
    ITextPara* This,
    LONG Value);
void __RPC_STUB ITextPara_SetPageBreakBefore_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextPara_GetRightIndent_Proxy(
    ITextPara* This,
    float *pValue);
void __RPC_STUB ITextPara_GetRightIndent_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextPara_SetRightIndent_Proxy(
    ITextPara* This,
    float Value);
void __RPC_STUB ITextPara_SetRightIndent_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextPara_SetIndents_Proxy(
    ITextPara* This,
    float StartIndent,
    float LeftIndent,
    float RightIndent);
void __RPC_STUB ITextPara_SetIndents_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextPara_SetLineSpacing_Proxy(
    ITextPara* This,
    LONG LineSpacingRule,
    float LineSpacing);
void __RPC_STUB ITextPara_SetLineSpacing_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextPara_GetSpaceAfter_Proxy(
    ITextPara* This,
    float *pValue);
void __RPC_STUB ITextPara_GetSpaceAfter_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextPara_SetSpaceAfter_Proxy(
    ITextPara* This,
    float Value);
void __RPC_STUB ITextPara_SetSpaceAfter_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextPara_GetSpaceBefore_Proxy(
    ITextPara* This,
    float *pValue);
void __RPC_STUB ITextPara_GetSpaceBefore_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextPara_SetSpaceBefore_Proxy(
    ITextPara* This,
    float Value);
void __RPC_STUB ITextPara_SetSpaceBefore_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextPara_GetWindowControl_Proxy(
    ITextPara* This,
    float *pValue);
void __RPC_STUB ITextPara_GetWindowControl_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextPara_SetWindowControl_Proxy(
    ITextPara* This,
    float Value);
void __RPC_STUB ITextPara_SetWindowControl_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextPara_GetTabCount_Proxy(
    ITextPara* This,
    LONG *pCount);
void __RPC_STUB ITextPara_GetTabCount_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextPara_AddTab_Proxy(
    ITextPara* This,
    float tbPos,
    LONG tbAlign,
    LONG tbLeader);
void __RPC_STUB ITextPara_AddTab_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextPara_ClearAllTabs_Proxy(
    ITextPara* This);
void __RPC_STUB ITextPara_ClearAllTabs_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextPara_DeleteTab_Proxy(
    ITextPara* This,
    float tbPos);
void __RPC_STUB ITextPara_DeleteTab_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextPara_GetTab_Proxy(
    ITextPara* This,
    LONG iTab,
    float *ptbPos,
    LONG *ptbAlign,
    LONG *ptbLeader);
void __RPC_STUB ITextPara_GetTab_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __ITextPara_INTERFACE_DEFINED__ */

/*****************************************************************************
 * ITextStoryRanges interface
 */
#ifndef __ITextStoryRanges_INTERFACE_DEFINED__
#define __ITextStoryRanges_INTERFACE_DEFINED__

DEFINE_GUID(IID_ITextStoryRanges, 0x8cc497c5, 0xa1df, 0x11ce, 0x80,0x98, 0x00,0xaa,0x00,0x47,0xbe,0x5d);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface ITextStoryRanges : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE _NewEnum(
        IUnknown **ppUnkEnum) = 0;

    virtual HRESULT STDMETHODCALLTYPE Item(
        LONG Index,
        ITextRange **ppRange) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetCount(
        LONG *pCount) = 0;

};
#else
typedef struct ITextStoryRangesVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        ITextStoryRanges* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        ITextStoryRanges* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        ITextStoryRanges* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        ITextStoryRanges* This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        ITextStoryRanges* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        ITextStoryRanges* This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        ITextStoryRanges* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** ITextStoryRanges methods ***/
    HRESULT (STDMETHODCALLTYPE *_NewEnum)(
        ITextStoryRanges* This,
        IUnknown **ppUnkEnum);

    HRESULT (STDMETHODCALLTYPE *Item)(
        ITextStoryRanges* This,
        LONG Index,
        ITextRange **ppRange);

    HRESULT (STDMETHODCALLTYPE *GetCount)(
        ITextStoryRanges* This,
        LONG *pCount);

    END_INTERFACE
} ITextStoryRangesVtbl;
interface ITextStoryRanges {
    CONST_VTBL ITextStoryRangesVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define ITextStoryRanges_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define ITextStoryRanges_AddRef(This) (This)->lpVtbl->AddRef(This)
#define ITextStoryRanges_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define ITextStoryRanges_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define ITextStoryRanges_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define ITextStoryRanges_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define ITextStoryRanges_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** ITextStoryRanges methods ***/
#define ITextStoryRanges__NewEnum(This,ppUnkEnum) (This)->lpVtbl->_NewEnum(This,ppUnkEnum)
#define ITextStoryRanges_Item(This,Index,ppRange) (This)->lpVtbl->Item(This,Index,ppRange)
#define ITextStoryRanges_GetCount(This,pCount) (This)->lpVtbl->GetCount(This,pCount)
#endif

#endif

HRESULT STDMETHODCALLTYPE ITextStoryRanges__NewEnum_Proxy(
    ITextStoryRanges* This,
    IUnknown **ppUnkEnum);
void __RPC_STUB ITextStoryRanges__NewEnum_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextStoryRanges_Item_Proxy(
    ITextStoryRanges* This,
    LONG Index,
    ITextRange **ppRange);
void __RPC_STUB ITextStoryRanges_Item_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ITextStoryRanges_GetCount_Proxy(
    ITextStoryRanges* This,
    LONG *pCount);
void __RPC_STUB ITextStoryRanges_GetCount_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __ITextStoryRanges_INTERFACE_DEFINED__ */

/* Begin additional prototypes for all interfaces */

ULONG           __RPC_USER BSTR_UserSize     (ULONG *, ULONG, BSTR *);
unsigned char * __RPC_USER BSTR_UserMarshal  (ULONG *, unsigned char *, BSTR *);
unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *);
void            __RPC_USER BSTR_UserFree     (ULONG *, BSTR *);
ULONG           __RPC_USER VARIANT_UserSize     (ULONG *, ULONG, VARIANT *);
unsigned char * __RPC_USER VARIANT_UserMarshal  (ULONG *, unsigned char *, VARIANT *);
unsigned char * __RPC_USER VARIANT_UserUnmarshal(ULONG *, unsigned char *, VARIANT *);
void            __RPC_USER VARIANT_UserFree     (ULONG *, VARIANT *);

/* End additional prototypes */

#ifdef __cplusplus
}
#endif

#endif /* __WIDL_TOM_H */
