ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

indexsrv.idl
Go to the documentation of this file.
00001 /*
00002  * Copyright 2006 Mike McCormack
00003  *
00004  * This library is free software; you can redistribute it and/or
00005  * modify it under the terms of the GNU Lesser General Public
00006  * License as published by the Free Software Foundation; either
00007  * version 2.1 of the License, or (at your option) any later version.
00008  *
00009  * This library is distributed in the hope that it will be useful,
00010  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00011  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00012  * Lesser General Public License for more details.
00013  *
00014  * You should have received a copy of the GNU Lesser General Public
00015  * License along with this library; if not, write to the Free Software
00016  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
00017  */
00018 
00019 import "objidl.idl";
00020 /* FIXME: import "filter.idl"; */
00021 
00022 /*
00023  * widl doesn't like the declaration of PFNFILLTEXTBUFFER, so work around it...
00024  * Not sure that function pointers are even legal in idl.
00025  */
00026 cpp_quote("struct tagTEXT_SOURCE;")
00027 cpp_quote("typedef HRESULT (WINAPI *PFNFILLTEXTBUFFER)(struct tagTEXT_SOURCE *pTextSource);")
00028 cpp_quote("#if 0")
00029 typedef void* PFNFILLTEXTBUFFER;
00030 cpp_quote("#endif")
00031 
00032 typedef struct tagTEXT_SOURCE
00033 {
00034     PFNFILLTEXTBUFFER pfnFillTextBuffer;
00035     const WCHAR *awcBuffer;
00036     ULONG iEnd;
00037     ULONG iCur;
00038 } TEXT_SOURCE;
00039 
00040 typedef enum tagWORDREP_BREAK_TYPE
00041 {
00042     WORDREP_BREAK_EOW = 0,
00043     WORDREP_BREAK_EOS = 1,
00044     WORDREP_BREAK_EOP = 2,
00045     WORDREP_BREAK_EOC = 3
00046 } WORDREP_BREAK_TYPE;
00047 
00048 
00049 /*****************************************************************************
00050  *    IWordSink interface
00051  */
00052 [
00053     uuid(cc907054-c058-101a-b554-08002b33b0e6),
00054     object,
00055     local
00056 ]
00057 interface IWordSink : IUnknown
00058 {
00059     HRESULT PutWord(
00060               [in] ULONG cwc,
00061               [size_is(cwcSrcLen)][in] const WCHAR *pwcInBuf,
00062               [in] ULONG cwcSrcLen,
00063               [in] ULONG cwcSrcPos);
00064     HRESULT PutAltWord(
00065               [in] ULONG cwc,
00066               [size_is(cwcSrcLen)][in] const WCHAR *pwcInBuf,
00067               [in] ULONG cwcSrcLen,
00068               [in] ULONG cwcSrcPos);
00069     HRESULT StartAltPhrase(void);
00070     HRESULT EndAltPhrase(void);
00071     HRESULT PutBreak(
00072               [in] WORDREP_BREAK_TYPE breakType);
00073 }
00074 
00075 /*****************************************************************************
00076  *    IPhraseSink interface
00077  */
00078 [
00079     uuid(cc906ff0-c058-101a-b554-08002b33b0e6),
00080     object,
00081     local
00082 ]
00083 interface IPhraseSink: IUnknown
00084 {
00085     HRESULT PutSmallPhrase(
00086               [size_is(cwcNoun)][in] const WCHAR *pwcNoun,
00087               [in] ULONG cwcNoun,
00088               [size_is(cwcModifier)][in] const WCHAR *pwcModifier,
00089               [in] ULONG cwcModifier,
00090               [in] ULONG ulAttachmentType);
00091     HRESULT PutPhrase(
00092               [size_is(cwcPhrase)][in] const WCHAR *pwcPhrase,
00093               [in] ULONG cwcPhrase);
00094 }
00095 
00096 /*****************************************************************************
00097  *    IWordBreaker interface
00098  */
00099 [
00100     uuid(d53552c8-77e3-101a-b552-08002b33b0e6),
00101     object,
00102     local
00103 ]
00104 interface IWordBreaker: IUnknown
00105 {
00106     HRESULT Init(
00107               [in] BOOL fQuery,
00108               [in] ULONG ulMaxTokenSize,
00109               [out] BOOL *pfLicense);
00110     HRESULT BreakText(
00111               [in] TEXT_SOURCE *pTextSource,
00112               [in] IWordSink *pWordSink,
00113               [in] IPhraseSink *pPhraseSink);
00114     HRESULT ComposePhrase(
00115               [size_is(cwcNoun)][in] const WCHAR *pwcNoun,
00116               [in] ULONG cwcNoun,
00117               [size_is(cwcModifier)][in] const WCHAR *pwcModifier,
00118               [in] ULONG cwcModifier,
00119               [in] ULONG ulAttachmentType,
00120               [size_is(*pcwcPhrase)][out] WCHAR *pwcPhrase,
00121               [out][in] ULONG *pcwcPhrase);
00122     HRESULT GetLicenseToUse(
00123               [string][out] const WCHAR **ppwcsLicense);
00124 }

Generated on Sun May 27 2012 04:31:32 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.