+++ /dev/null
-/*
- * Copyright 2006 Mike McCormack
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
- */
-
-import "objidl.idl";
-/* FIXME: import "filter.idl"; */
-
-/*
- * widl doesn't like the declaration of PFNFILLTEXTBUFFER, so work around it...
- * Not sure that function pointers are even legal in idl.
- */
-cpp_quote("struct tagTEXT_SOURCE;")
-cpp_quote("typedef HRESULT (WINAPI *PFNFILLTEXTBUFFER)(struct tagTEXT_SOURCE *pTextSource);")
-cpp_quote("#if 0")
-typedef void* PFNFILLTEXTBUFFER;
-cpp_quote("#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;
-
-
-/*****************************************************************************
- * IWordSink interface
- */
-[
- uuid(cc907054-c058-101a-b554-08002b33b0e6),
- object,
- local
-]
-interface IWordSink : IUnknown
-{
- HRESULT PutWord(
- [in] ULONG cwc,
- [size_is(cwcSrcLen)][in] const WCHAR *pwcInBuf,
- [in] ULONG cwcSrcLen,
- [in] ULONG cwcSrcPos);
- HRESULT PutAltWord(
- [in] ULONG cwc,
- [size_is(cwcSrcLen)][in] const WCHAR *pwcInBuf,
- [in] ULONG cwcSrcLen,
- [in] ULONG cwcSrcPos);
- HRESULT StartAltPhrase(void);
- HRESULT EndAltPhrase(void);
- HRESULT PutBreak(
- [in] WORDREP_BREAK_TYPE breakType);
-}
-
-/*****************************************************************************
- * IPhraseSink interface
- */
-[
- uuid(cc906ff0-c058-101a-b554-08002b33b0e6),
- object,
- local
-]
-interface IPhraseSink: IUnknown
-{
- HRESULT PutSmallPhrase(
- [size_is(cwcNoun)][in] const WCHAR *pwcNoun,
- [in] ULONG cwcNoun,
- [size_is(cwcModifier)][in] const WCHAR *pwcModifier,
- [in] ULONG cwcModifier,
- [in] ULONG ulAttachmentType);
- HRESULT PutPhrase(
- [size_is(cwcPhrase)][in] const WCHAR *pwcPhrase,
- [in] ULONG cwcPhrase);
-}
-
-/*****************************************************************************
- * IWordBreaker interface
- */
-[
- uuid(d53552c8-77e3-101a-b552-08002b33b0e6),
- object,
- local
-]
-interface IWordBreaker: IUnknown
-{
- HRESULT Init(
- [in] BOOL fQuery,
- [in] ULONG ulMaxTokenSize,
- [out] BOOL *pfLicense);
- HRESULT BreakText(
- [in] TEXT_SOURCE *pTextSource,
- [in] IWordSink *pWordSink,
- [in] IPhraseSink *pPhraseSink);
- HRESULT ComposePhrase(
- [size_is(cwcNoun)][in] const WCHAR *pwcNoun,
- [in] ULONG cwcNoun,
- [size_is(cwcModifier)][in] const WCHAR *pwcModifier,
- [in] ULONG cwcModifier,
- [in] ULONG ulAttachmentType,
- [size_is(*pcwcPhrase)][out] WCHAR *pwcPhrase,
- [out][in] ULONG *pcwcPhrase);
- HRESULT GetLicenseToUse(
- [string][out] const WCHAR **ppwcsLicense);
-}