/*** Autogenerated by WIDL 0.9.40 from indexsrv.idl - Do not edit ***/
#include <rpc.h>
#include <rpcndr.h>

#ifndef __WIDL_INDEXSRV_H
#define __WIDL_INDEXSRV_H
#ifdef __cplusplus
extern "C" {
#endif
#include <unknwn.h>
struct tagTEXT_SOURCE;
typedef HRESULT (WINAPI *PFNFILLTEXTBUFFER)(struct tagTEXT_SOURCE *pTextSource);
#if 0
typedef void *PFNFILLTEXTBUFFER;
#endif
typedef struct tagTEXT_SOURCE {
    PFNFILLTEXTBUFFER pfnFillTextBuffer;
    const WCHAR *awcBuffer;
    ULONG iEnd;
    ULONG iCur;
} TEXT_SOURCE;
typedef enum tagWORDREP_BREAK_TYPE {
    WORDREP_BREAK_EOW = 0,
    WORDREP_BREAK_EOS = 1,
    WORDREP_BREAK_EOP = 2,
    WORDREP_BREAK_EOC = 3
} WORDREP_BREAK_TYPE;
#ifndef __IWordSink_FWD_DEFINED__
#define __IWordSink_FWD_DEFINED__
typedef interface IWordSink IWordSink;
#endif

/*****************************************************************************
 * IWordSink interface
 */
#ifndef __IWordSink_INTERFACE_DEFINED__
#define __IWordSink_INTERFACE_DEFINED__

DEFINE_GUID(IID_IWordSink, 0xcc907054, 0xc058, 0x101a, 0xb5,0x54, 0x08,0x00,0x2b,0x33,0xb0,0xe6);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IWordSink : public IUnknown
{
    virtual HRESULT STDMETHODCALLTYPE PutWord(
        ULONG cwc,
        const WCHAR *pwcInBuf,
        ULONG cwcSrcLen,
        ULONG cwcSrcPos) = 0;

    virtual HRESULT STDMETHODCALLTYPE PutAltWord(
        ULONG cwc,
        const WCHAR *pwcInBuf,
        ULONG cwcSrcLen,
        ULONG cwcSrcPos) = 0;

    virtual HRESULT STDMETHODCALLTYPE StartAltPhrase(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE EndAltPhrase(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE PutBreak(
        WORDREP_BREAK_TYPE breakType) = 0;

};
#else
typedef struct IWordSinkVtbl {
    BEGIN_INTERFACE

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

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

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

    /*** IWordSink methods ***/
    HRESULT (STDMETHODCALLTYPE *PutWord)(
        IWordSink* This,
        ULONG cwc,
        const WCHAR *pwcInBuf,
        ULONG cwcSrcLen,
        ULONG cwcSrcPos);

    HRESULT (STDMETHODCALLTYPE *PutAltWord)(
        IWordSink* This,
        ULONG cwc,
        const WCHAR *pwcInBuf,
        ULONG cwcSrcLen,
        ULONG cwcSrcPos);

    HRESULT (STDMETHODCALLTYPE *StartAltPhrase)(
        IWordSink* This);

    HRESULT (STDMETHODCALLTYPE *EndAltPhrase)(
        IWordSink* This);

    HRESULT (STDMETHODCALLTYPE *PutBreak)(
        IWordSink* This,
        WORDREP_BREAK_TYPE breakType);

    END_INTERFACE
} IWordSinkVtbl;
interface IWordSink {
    CONST_VTBL IWordSinkVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IWordSink_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IWordSink_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IWordSink_Release(p) (p)->lpVtbl->Release(p)
/*** IWordSink methods ***/
#define IWordSink_PutWord(p,a,b,c,d) (p)->lpVtbl->PutWord(p,a,b,c,d)
#define IWordSink_PutAltWord(p,a,b,c,d) (p)->lpVtbl->PutAltWord(p,a,b,c,d)
#define IWordSink_StartAltPhrase(p) (p)->lpVtbl->StartAltPhrase(p)
#define IWordSink_EndAltPhrase(p) (p)->lpVtbl->EndAltPhrase(p)
#define IWordSink_PutBreak(p,a) (p)->lpVtbl->PutBreak(p,a)
#endif

#endif

HRESULT CALLBACK IWordSink_PutWord_Proxy(
    IWordSink* This,
    ULONG cwc,
    const WCHAR *pwcInBuf,
    ULONG cwcSrcLen,
    ULONG cwcSrcPos);
void __RPC_STUB IWordSink_PutWord_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IWordSink_PutAltWord_Proxy(
    IWordSink* This,
    ULONG cwc,
    const WCHAR *pwcInBuf,
    ULONG cwcSrcLen,
    ULONG cwcSrcPos);
void __RPC_STUB IWordSink_PutAltWord_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IWordSink_StartAltPhrase_Proxy(
    IWordSink* This);
void __RPC_STUB IWordSink_StartAltPhrase_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IWordSink_EndAltPhrase_Proxy(
    IWordSink* This);
void __RPC_STUB IWordSink_EndAltPhrase_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IWordSink_PutBreak_Proxy(
    IWordSink* This,
    WORDREP_BREAK_TYPE breakType);
void __RPC_STUB IWordSink_PutBreak_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IWordSink_INTERFACE_DEFINED__ */

#ifndef __IPhraseSink_FWD_DEFINED__
#define __IPhraseSink_FWD_DEFINED__
typedef interface IPhraseSink IPhraseSink;
#endif

/*****************************************************************************
 * IPhraseSink interface
 */
#ifndef __IPhraseSink_INTERFACE_DEFINED__
#define __IPhraseSink_INTERFACE_DEFINED__

DEFINE_GUID(IID_IPhraseSink, 0xcc906ff0, 0xc058, 0x101a, 0xb5,0x54, 0x08,0x00,0x2b,0x33,0xb0,0xe6);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IPhraseSink : public IUnknown
{
    virtual HRESULT STDMETHODCALLTYPE PutSmallPhrase(
        const WCHAR *pwcNoun,
        ULONG cwcNoun,
        const WCHAR *pwcModifier,
        ULONG cwcModifier,
        ULONG ulAttachmentType) = 0;

    virtual HRESULT STDMETHODCALLTYPE PutPhrase(
        const WCHAR *pwcPhrase,
        ULONG cwcPhrase) = 0;

};
#else
typedef struct IPhraseSinkVtbl {
    BEGIN_INTERFACE

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

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

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

    /*** IPhraseSink methods ***/
    HRESULT (STDMETHODCALLTYPE *PutSmallPhrase)(
        IPhraseSink* This,
        const WCHAR *pwcNoun,
        ULONG cwcNoun,
        const WCHAR *pwcModifier,
        ULONG cwcModifier,
        ULONG ulAttachmentType);

    HRESULT (STDMETHODCALLTYPE *PutPhrase)(
        IPhraseSink* This,
        const WCHAR *pwcPhrase,
        ULONG cwcPhrase);

    END_INTERFACE
} IPhraseSinkVtbl;
interface IPhraseSink {
    CONST_VTBL IPhraseSinkVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IPhraseSink_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IPhraseSink_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IPhraseSink_Release(p) (p)->lpVtbl->Release(p)
/*** IPhraseSink methods ***/
#define IPhraseSink_PutSmallPhrase(p,a,b,c,d,e) (p)->lpVtbl->PutSmallPhrase(p,a,b,c,d,e)
#define IPhraseSink_PutPhrase(p,a,b) (p)->lpVtbl->PutPhrase(p,a,b)
#endif

#endif

HRESULT CALLBACK IPhraseSink_PutSmallPhrase_Proxy(
    IPhraseSink* This,
    const WCHAR *pwcNoun,
    ULONG cwcNoun,
    const WCHAR *pwcModifier,
    ULONG cwcModifier,
    ULONG ulAttachmentType);
void __RPC_STUB IPhraseSink_PutSmallPhrase_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IPhraseSink_PutPhrase_Proxy(
    IPhraseSink* This,
    const WCHAR *pwcPhrase,
    ULONG cwcPhrase);
void __RPC_STUB IPhraseSink_PutPhrase_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IPhraseSink_INTERFACE_DEFINED__ */

#ifndef __IWordBreaker_FWD_DEFINED__
#define __IWordBreaker_FWD_DEFINED__
typedef interface IWordBreaker IWordBreaker;
#endif

/*****************************************************************************
 * IWordBreaker interface
 */
#ifndef __IWordBreaker_INTERFACE_DEFINED__
#define __IWordBreaker_INTERFACE_DEFINED__

DEFINE_GUID(IID_IWordBreaker, 0xd53552c8, 0x77e3, 0x101a, 0xb5,0x52, 0x08,0x00,0x2b,0x33,0xb0,0xe6);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IWordBreaker : public IUnknown
{
    virtual HRESULT STDMETHODCALLTYPE Init(
        BOOL fQuery,
        ULONG ulMaxTokenSize,
        BOOL *pfLicense) = 0;

    virtual HRESULT STDMETHODCALLTYPE BreakText(
        TEXT_SOURCE *pTextSource,
        IWordSink *pWordSink,
        IPhraseSink *pPhraseSink) = 0;

    virtual HRESULT STDMETHODCALLTYPE ComposePhrase(
        const WCHAR *pwcNoun,
        ULONG cwcNoun,
        const WCHAR *pwcModifier,
        ULONG cwcModifier,
        ULONG ulAttachmentType,
        WCHAR *pwcPhrase,
        ULONG *pcwcPhrase) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetLicenseToUse(
        const WCHAR **ppwcsLicense) = 0;

};
#else
typedef struct IWordBreakerVtbl {
    BEGIN_INTERFACE

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

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

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

    /*** IWordBreaker methods ***/
    HRESULT (STDMETHODCALLTYPE *Init)(
        IWordBreaker* This,
        BOOL fQuery,
        ULONG ulMaxTokenSize,
        BOOL *pfLicense);

    HRESULT (STDMETHODCALLTYPE *BreakText)(
        IWordBreaker* This,
        TEXT_SOURCE *pTextSource,
        IWordSink *pWordSink,
        IPhraseSink *pPhraseSink);

    HRESULT (STDMETHODCALLTYPE *ComposePhrase)(
        IWordBreaker* This,
        const WCHAR *pwcNoun,
        ULONG cwcNoun,
        const WCHAR *pwcModifier,
        ULONG cwcModifier,
        ULONG ulAttachmentType,
        WCHAR *pwcPhrase,
        ULONG *pcwcPhrase);

    HRESULT (STDMETHODCALLTYPE *GetLicenseToUse)(
        IWordBreaker* This,
        const WCHAR **ppwcsLicense);

    END_INTERFACE
} IWordBreakerVtbl;
interface IWordBreaker {
    CONST_VTBL IWordBreakerVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IWordBreaker_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IWordBreaker_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IWordBreaker_Release(p) (p)->lpVtbl->Release(p)
/*** IWordBreaker methods ***/
#define IWordBreaker_Init(p,a,b,c) (p)->lpVtbl->Init(p,a,b,c)
#define IWordBreaker_BreakText(p,a,b,c) (p)->lpVtbl->BreakText(p,a,b,c)
#define IWordBreaker_ComposePhrase(p,a,b,c,d,e,f,g) (p)->lpVtbl->ComposePhrase(p,a,b,c,d,e,f,g)
#define IWordBreaker_GetLicenseToUse(p,a) (p)->lpVtbl->GetLicenseToUse(p,a)
#endif

#endif

HRESULT CALLBACK IWordBreaker_Init_Proxy(
    IWordBreaker* This,
    BOOL fQuery,
    ULONG ulMaxTokenSize,
    BOOL *pfLicense);
void __RPC_STUB IWordBreaker_Init_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IWordBreaker_BreakText_Proxy(
    IWordBreaker* This,
    TEXT_SOURCE *pTextSource,
    IWordSink *pWordSink,
    IPhraseSink *pPhraseSink);
void __RPC_STUB IWordBreaker_BreakText_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IWordBreaker_ComposePhrase_Proxy(
    IWordBreaker* This,
    const WCHAR *pwcNoun,
    ULONG cwcNoun,
    const WCHAR *pwcModifier,
    ULONG cwcModifier,
    ULONG ulAttachmentType,
    WCHAR *pwcPhrase,
    ULONG *pcwcPhrase);
void __RPC_STUB IWordBreaker_ComposePhrase_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IWordBreaker_GetLicenseToUse_Proxy(
    IWordBreaker* This,
    const WCHAR **ppwcsLicense);
void __RPC_STUB IWordBreaker_GetLicenseToUse_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IWordBreaker_INTERFACE_DEFINED__ */

/* Begin additional prototypes for all interfaces */


/* End additional prototypes */

#ifdef __cplusplus
}
#endif
#endif /* __WIDL_INDEXSRV_H */
