/* ----------------------------------------------------------------------------
* This file was automatically generated by SwigXmlToCOM
* and SWIG (http://www.swig.org).
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.
* ----------------------------------------------------------------------------- */
// CLcom.idl : IDL source for CLcom
//

// This file will be processed by the MIDL tool to
// produce the type library (CLcom.tlb) and marshalling code.

import "oaidl.idl";
import "ocidl.idl";


interface IBooleanQuery;
interface IDateFilter;
interface ITerm;
interface ITermFreqVector;
interface IAnalyzer;
interface IStringReader;
interface ISearchable;
interface IExplanation;
interface ISimilarity;
interface IDirectory;
interface IField;
interface IIndexSearcher;
interface IDateField;
interface ISort;
interface IFilter;
interface IStopAnalyzer;
interface IQuery;
interface IIndexReader;
interface ITermPositions;
interface IIndexWriter;
interface IRAMDirectory;
interface IPhraseQuery;
interface ITermQuery;
interface IMultiSearcher;
interface IToken;
interface IRangeQuery;
interface ITokenStream;
interface IMultiReader;
interface IStandardAnalyzer;
interface IWildcardQuery;
interface IFSDirectory;
interface IPrefixQuery;
interface IReader;
interface ITermDocs;
interface ITermEnum;
interface IBitSet;
interface IFileReader;
interface IWhitespaceAnalyzer;
interface ISortField;
interface IQueryParser;
interface ISimpleAnalyzer;
interface ISearcher;
interface IHits;
interface IDocument;
interface IDocumentFieldEnumeration;
interface IPerFieldAnalyzerWrapper;
interface IMultiTermQuery;
interface ITermVectorOffsetInfo;

// IBooleanQuery (lucene::search::BooleanQuery)
[
	object,
	uuid("03fbedd3-8970-49af-9f45-ff36d8606535"),
	dual,	helpstring("IBooleanQuery Interface"),
	pointer_default(unique)
]
interface IBooleanQuery : IDispatch
{
//constructors

//castors
	[id(1), helpstring("Cast object up to Query")] HRESULT UpCast([out,retval] IQuery** ret);

//methods
	[id(2), helpstring("method add")] HRESULT add([in] IQuery* query, [in] VARIANT_BOOL required, [in] VARIANT_BOOL prohibited);
	[id(3), helpstring("method getClauseCount")] HRESULT getClauseCount([out,retval] LONG* ret);
	[id(4), helpstring("method rewrite")] HRESULT rewrite([in] IIndexReader* reader, [out,retval] IQuery** ret);
	[id(5), helpstring("method equals")] HRESULT equals([in] IQuery* o, [out,retval] VARIANT_BOOL* ret);
	[id(6), helpstring("method toString_ex")] HRESULT toString_ex([in] BSTR field, [out,retval] BSTR* ret);
//inherited methods
	[id(7), helpstring("method setBoost")] HRESULT setBoost([in] float b);
	[id(8), helpstring("method getBoost")] HRESULT getBoost([out,retval] float* ret);
	[id(9), helpstring("method getSimilarity")] HRESULT getSimilarity([in] ISearcher* searcher, [out,retval] ISimilarity** ret);
	[id(10), helpstring("method toString")] HRESULT toString([out,retval] BSTR* ret);
};

// IDateFilter (lucene::search::DateFilter)
[
	object,
	uuid("8feca2fc-2da9-4363-b75a-fb5b705f49e6"),
	dual,	helpstring("IDateFilter Interface"),
	pointer_default(unique)
]
interface IDateFilter : IDispatch
{
//constructors
	[id(1), helpstring("method Initialise")] HRESULT Initialise([in] BSTR f, [in] double from, [in] double to);

//castors
	[id(2), helpstring("Cast object up to Filter")] HRESULT UpCast([out,retval] IFilter** ret);

//methods
	[id(3), helpstring("method bits")] HRESULT bits([in] IIndexReader* reader, [out,retval] IBitSet** ret);
	[id(4), helpstring("method toString")] HRESULT toString([out,retval] BSTR* ret);
//inherited methods
};

// ITerm (lucene::index::Term)
[
	object,
	uuid("3d518a5b-5843-49f4-83d8-4ffd90316b98"),
	dual,	helpstring("ITerm Interface"),
	pointer_default(unique)
]
interface ITerm : IDispatch
{
//constructors
	[id(1), helpstring("method Initialise")] HRESULT Initialise([in] BSTR fld, [in] BSTR txt);

//methods
	[id(2), helpstring("method field")] HRESULT field([out,retval] BSTR* ret);
	[id(3), helpstring("method text")] HRESULT text([out,retval] BSTR* ret);
	[id(4), helpstring("method compareTo")] HRESULT compareTo([in] ITerm* other, [out,retval] LONG* ret);
	[id(5), helpstring("method equals")] HRESULT equals([in] ITerm* other, [out,retval] VARIANT_BOOL* ret);
	[id(6), helpstring("method toString")] HRESULT toString([out,retval] BSTR* ret);
//inherited methods
};

// ITermFreqVector (lucene::index::TermFreqVector)
[
	object,
	uuid("0768af83-f18b-45d0-8e95-e9e3c58cb3ce"),
	dual,	helpstring("ITermFreqVector Interface"),
	pointer_default(unique)
]
interface ITermFreqVector : IDispatch
{
//methods
	[id(1), helpstring("method getField")] HRESULT getField([out,retval] BSTR* ret);
	[id(2), helpstring("method size")] HRESULT size([out,retval] LONG* ret);
	[id(3), helpstring("method getTerms")] HRESULT getTerms([out,retval] SAFEARRAY(BSTR)* ret);
	[id(4), helpstring("method getTermFrequencies")] HRESULT getTermFrequencies([out,retval] SAFEARRAY(LONG)* ret);
	[id(5), helpstring("method indexOf")] HRESULT indexOf([in] BSTR term, [out,retval] LONG* ret);
//inherited methods
};

// IAnalyzer (lucene::analysis::Analyzer)
[
	object,
	uuid("2df0401c-6aaf-4ff2-8cf6-75d316f1d4a1"),
	dual,	helpstring("IAnalyzer Interface"),
	pointer_default(unique)
]
interface IAnalyzer : IDispatch
{
//methods
	[id(1), helpstring("method tokenStream")] HRESULT tokenStream([in] BSTR fieldName, [in] IReader* reader, [out,retval] ITokenStream** ret);
//inherited methods
};

// IStringReader (lucene::util::StringReader)
[
	object,
	uuid("7954555a-1172-49ae-9455-584a792de52c"),
	dual,	helpstring("IStringReader Interface"),
	pointer_default(unique)
]
interface IStringReader : IDispatch
{
//constructors
	[id(1), helpstring("method Initialise")] HRESULT Initialise([in] BSTR value);

//castors
	[id(2), helpstring("Cast object up to Reader")] HRESULT UpCast([out,retval] IReader** ret);

//methods
	[id(3), helpstring("method close")] HRESULT close();
//inherited methods
};

// ISearchable (lucene::search::Searchable)
[
	object,
	uuid("5badcd79-39da-4eaa-be03-eed688bb7074"),
	dual,	helpstring("ISearchable Interface"),
	pointer_default(unique)
]
interface ISearchable : IDispatch
{
//methods
	[id(1), helpstring("method close")] HRESULT close();
	[id(2), helpstring("method docFreq")] HRESULT docFreq([in] ITerm* term, [out,retval] LONG* ret);
	[id(3), helpstring("method maxDoc")] HRESULT maxDoc([out,retval] LONG* ret);
	[id(4), helpstring("method doc")] HRESULT doc([in] LONG i, [out,retval] IDocument** ret);
	[id(5), helpstring("method explain")] HRESULT explain([in] IQuery* query, [in] LONG doc, [out,retval] IExplanation** ret);
//inherited methods
};

// IExplanation (lucene::search::Explanation)
[
	object,
	uuid("992a627d-3d4a-4aa6-a1cd-a39bc2fa6fce"),
	dual,	helpstring("IExplanation Interface"),
	pointer_default(unique)
]
interface IExplanation : IDispatch
{
//constructors

//methods
	[id(1), helpstring("method getValue")] HRESULT getValue([out,retval] float* ret);
	[id(2), helpstring("method setValue")] HRESULT setValue([in] float value);
	[id(3), helpstring("method getDescription")] HRESULT getDescription([out,retval] BSTR* ret);
	[id(4), helpstring("method addDetail")] HRESULT addDetail([in] IExplanation* detail);
	[id(5), helpstring("method toString")] HRESULT toString([out,retval] BSTR* ret);
	[id(6), helpstring("method toHtml")] HRESULT toHtml([out,retval] BSTR* ret);
//inherited methods
};

// ISimilarity (lucene::search::Similarity)
[
	object,
	uuid("79fef790-3e35-422f-89ea-0c10cc6d2ff5"),
	dual,	helpstring("ISimilarity Interface"),
	pointer_default(unique)
]
interface ISimilarity : IDispatch
{
//methods
	[id(1), helpstring("method lengthNorm")] HRESULT lengthNorm([in] BSTR fieldName, [in] LONG numTokens, [out,retval] float* ret);
	[id(2), helpstring("method queryNorm")] HRESULT queryNorm([in] float sumOfSquaredWeights, [out,retval] float* ret);
	[id(3), helpstring("method sloppyFreq")] HRESULT sloppyFreq([in] LONG distance, [out,retval] float* ret);
	[id(4), helpstring("method coord")] HRESULT coord([in] LONG overlap, [in] LONG maxOverlap, [out,retval] float* ret);
//inherited methods
};

// IDirectory (lucene::store::Directory)
[
	object,
	uuid("0535d9c7-b885-43e6-87bf-fe37db9e0ef1"),
	dual,	helpstring("IDirectory Interface"),
	pointer_default(unique)
]
interface IDirectory : IDispatch
{
//methods
	[id(1), helpstring("method close")] HRESULT close();
//inherited methods
};

// IField (lucene::document::Field)
[
	object,
	uuid("a2e36b50-6ab7-4402-9914-5d675b0c241f"),
	dual,	helpstring("IField Interface"),
	pointer_default(unique)
]
interface IField : IDispatch
{
//constructors
	[id(1), helpstring("method Initialise")] HRESULT Initialise([in] BSTR name, [in] BSTR value, [in] VARIANT_BOOL store, [in] VARIANT_BOOL index, [in] VARIANT_BOOL token, [in] VARIANT_BOOL storeTermVector);
	[id(2), helpstring("method InitialiseWithReader")] HRESULT InitialiseWithReader([in] BSTR name, [in] IReader* reader, [in] VARIANT_BOOL store, [in] VARIANT_BOOL index, [in] VARIANT_BOOL token, [in] VARIANT_BOOL storeTermVector);

//methods
	[id(3), helpstring("method name")] HRESULT name([out,retval] BSTR* ret);
	[id(4), helpstring("method stringValue")] HRESULT stringValue([out,retval] BSTR* ret);
	[id(5), helpstring("method readerValue")] HRESULT readerValue([out,retval] IReader** ret);
	[id(6), helpstring("method isStored")] HRESULT isStored([out,retval] VARIANT_BOOL* ret);
	[id(7), helpstring("method isIndexed")] HRESULT isIndexed([out,retval] VARIANT_BOOL* ret);
	[id(8), helpstring("method isTokenized")] HRESULT isTokenized([out,retval] VARIANT_BOOL* ret);
	[id(9), helpstring("method isTermVectorStored")] HRESULT isTermVectorStored([out,retval] VARIANT_BOOL* ret);
	[id(10), helpstring("method getBoost")] HRESULT getBoost([out,retval] float* ret);
	[id(11), helpstring("method setBoost")] HRESULT setBoost([in] float value);
	[id(12), helpstring("method toString")] HRESULT toString([out,retval] BSTR* ret);
//inherited methods
};

// IIndexSearcher (lucene::search::IndexSearcher)
[
	object,
	uuid("dfef10d7-0354-4a1a-9870-8d93df39b1ac"),
	dual,	helpstring("IIndexSearcher Interface"),
	pointer_default(unique)
]
interface IIndexSearcher : IDispatch
{
//constructors
	[id(1), helpstring("method Initialise")] HRESULT Initialise([in] BSTR path);
	[id(2), helpstring("method InitialiseWithDir")] HRESULT InitialiseWithDir([in] IDirectory* directory);
	[id(3), helpstring("method InitialiseWithReader")] HRESULT InitialiseWithReader([in] IIndexReader* r);

//castors
	[id(4), helpstring("Cast object up to Searcher")] HRESULT UpCast([out,retval] ISearcher** ret);

//methods
	[id(5), helpstring("method close")] HRESULT close();
	[id(6), helpstring("method docFreq")] HRESULT docFreq([in] ITerm* term, [out,retval] LONG* ret);
	[id(7), helpstring("method doc")] HRESULT doc([in] LONG i, [out,retval] IDocument** ret);
	[id(8), helpstring("method maxDoc")] HRESULT maxDoc([out,retval] LONG* ret);
	[id(9), helpstring("method getReader")] HRESULT getReader([out,retval] IIndexReader** ret);
	[id(10), helpstring("method explain")] HRESULT explain([in] IQuery* query, [in] LONG doc, [out,retval] IExplanation** ret);
//inherited methods
	[id(11), helpstring("method search")] HRESULT search([in] IQuery* query, [out,retval] IHits** ret);
	[id(12), helpstring("method searchWithFilter")] HRESULT searchWithFilter([in] IQuery* query, [in] IFilter* filter, [out,retval] IHits** ret);
	[id(13), helpstring("method searchWithSort")] HRESULT searchWithSort([in] IQuery* query, [in] ISort* sort, [out,retval] IHits** ret);
	[id(14), helpstring("method searchWithFilterAndSort")] HRESULT searchWithFilterAndSort([in] IQuery* query, [in] IFilter* filter, [in] ISort* sort, [out,retval] IHits** ret);
	[id(15), helpstring("method setSimilarity")] HRESULT setSimilarity([in] ISimilarity* similarity);
	[id(16), helpstring("method getSimilarity")] HRESULT getSimilarity([out,retval] ISimilarity** ret);
};

// IDateField (lucene::document::DateField)
[
	object,
	uuid("d53688e4-358c-4adc-816b-a97ce942c142"),
	dual,	helpstring("IDateField Interface"),
	pointer_default(unique)
]
interface IDateField : IDispatch
{
//constructors

//methods
//inherited methods
};

// ISort (lucene::search::Sort)
[
	object,
	uuid("e089a1da-7bfb-47d5-9372-28243e0a6fd9"),
	dual,	helpstring("ISort Interface"),
	pointer_default(unique)
]
interface ISort : IDispatch
{
//constructors
	[id(1), helpstring("method Initialise")] HRESULT Initialise();
	[id(2), helpstring("method InitialiseWithField")] HRESULT InitialiseWithField([in] BSTR field, [in] VARIANT_BOOL reverse);
	[id(3), helpstring("method InitialiseWithFields")] HRESULT InitialiseWithFields([in] SAFEARRAY(BSTR) fields);
	[id(4), helpstring("method InitialiseWithSortField")] HRESULT InitialiseWithSortField([in] ISortField* field);
	[id(5), helpstring("method InitialiseWithSortFields")] HRESULT InitialiseWithSortFields([in] SAFEARRAY(VARIANT) fields);

//methods
	[id(6), helpstring("method setSortToField")] HRESULT setSortToField([in] BSTR field, [in] VARIANT_BOOL reverse);
	[id(7), helpstring("method setSortToFields")] HRESULT setSortToFields([in] SAFEARRAY(BSTR) fieldnames);
	[id(8), helpstring("method setSortToSortField")] HRESULT setSortToSortField([in] ISortField* field);
	[id(9), helpstring("method setSortToSrotFields")] HRESULT setSortToSrotFields([in] SAFEARRAY(VARIANT) fields);
	[id(10), helpstring("method toString")] HRESULT toString([out,retval] BSTR* ret);
//inherited methods
};

// IFilter (lucene::search::Filter)
[
	object,
	uuid("e325e58b-e199-4bd6-b021-c0c4e1462cb6"),
	dual,	helpstring("IFilter Interface"),
	pointer_default(unique)
]
interface IFilter : IDispatch
{
//methods
	[id(1), helpstring("method bits")] HRESULT bits([in] IIndexReader* reader, [out,retval] IBitSet** ret);
	[id(2), helpstring("method toString")] HRESULT toString([out,retval] BSTR* ret);
//inherited methods
};

// IStopAnalyzer (lucene::analysis::StopAnalyzer)
[
	object,
	uuid("300004d9-7767-484e-938f-bd75feabc999"),
	dual,	helpstring("IStopAnalyzer Interface"),
	pointer_default(unique)
]
interface IStopAnalyzer : IDispatch
{
//constructors
	[id(1), helpstring("method Initialise")] HRESULT Initialise();
	[id(2), helpstring("method InitialiseWithStopWords")] HRESULT InitialiseWithStopWords([in] SAFEARRAY(BSTR) stopWords);

//castors
	[id(3), helpstring("Cast object up to Analyzer")] HRESULT UpCast([out,retval] IAnalyzer** ret);

//methods
	[id(4), helpstring("method tokenStream")] HRESULT tokenStream([in] BSTR fieldName, [in] IReader* reader, [out,retval] ITokenStream** ret);
//inherited methods
};

// IQuery (lucene::search::Query)
[
	object,
	uuid("bcee0270-d9c9-442d-9e05-4e55dadbd509"),
	dual,	helpstring("IQuery Interface"),
	pointer_default(unique)
]
interface IQuery : IDispatch
{
//methods
	[id(1), helpstring("method setBoost")] HRESULT setBoost([in] float b);
	[id(2), helpstring("method getBoost")] HRESULT getBoost([out,retval] float* ret);
	[id(3), helpstring("method rewrite")] HRESULT rewrite([in] IIndexReader* reader, [out,retval] IQuery** ret);
	[id(4), helpstring("method getSimilarity")] HRESULT getSimilarity([in] ISearcher* searcher, [out,retval] ISimilarity** ret);
	[id(5), helpstring("method toString_ex")] HRESULT toString_ex([in] BSTR field, [out,retval] BSTR* ret);
	[id(6), helpstring("method equals")] HRESULT equals([in] IQuery* other, [out,retval] VARIANT_BOOL* ret);
	[id(7), helpstring("method toString")] HRESULT toString([out,retval] BSTR* ret);
//inherited methods
};

// IIndexReader (lucene::index::IndexReader)
[
	object,
	uuid("8848da18-0b29-49d9-9185-31992ac98c4c"),
	dual,	helpstring("IIndexReader Interface"),
	pointer_default(unique)
]
interface IIndexReader : IDispatch
{
//methods
	[id(1), helpstring("method commit")] HRESULT commit();
	[id(2), helpstring("method undeleteAll")] HRESULT undeleteAll();
	[id(3), helpstring("method getFieldNames")] HRESULT getFieldNames([out,retval] SAFEARRAY(BSTR)* ret);
	[id(4), helpstring("method getFieldNames_ex")] HRESULT getFieldNames_ex([in] VARIANT_BOOL indexed, [out,retval] SAFEARRAY(BSTR)* ret);
	[id(5), helpstring("method getIndexedFieldNames")] HRESULT getIndexedFieldNames([in] VARIANT_BOOL storedTermVector, [out,retval] SAFEARRAY(BSTR)* ret);
	[id(6), helpstring("method norms")] HRESULT norms([in] BSTR field, [out,retval] SAFEARRAY(BYTE)* ret);
	[id(7), helpstring("method setNormFloat")] HRESULT setNormFloat([in] LONG doc, [in] BSTR field, [in] float value);
	[id(8), helpstring("method setNormByte")] HRESULT setNormByte([in] LONG doc, [in] BSTR field, [in] BYTE value);
	[id(9), helpstring("method getTermFreqVectors")] HRESULT getTermFreqVectors([in] LONG docNumber, [out,retval] SAFEARRAY(VARIANT)* ret);
	[id(10), helpstring("method getTermFreqVector")] HRESULT getTermFreqVector([in] LONG docNumber, [in] BSTR field, [out,retval] ITermFreqVector** ret);
	[id(11), helpstring("method numDocs")] HRESULT numDocs([out,retval] LONG* ret);
	[id(12), helpstring("method maxDoc")] HRESULT maxDoc([out,retval] LONG* ret);
	[id(13), helpstring("method document")] HRESULT document([in] LONG n, [out,retval] IDocument** ret);
	[id(14), helpstring("method isDeleted")] HRESULT isDeleted([in] LONG n, [out,retval] VARIANT_BOOL* ret);
	[id(15), helpstring("method hasDeletions")] HRESULT hasDeletions([out,retval] VARIANT_BOOL* ret);
	[id(16), helpstring("method termsAll")] HRESULT termsAll([out,retval] ITermEnum** ret);
	[id(17), helpstring("method terms")] HRESULT terms([in] ITerm* t, [out,retval] ITermEnum** ret);
	[id(18), helpstring("method docFreq")] HRESULT docFreq([in] ITerm* t, [out,retval] LONG* ret);
	[id(19), helpstring("method termPositionsAll")] HRESULT termPositionsAll([out,retval] ITermPositions** ret);
	[id(20), helpstring("method termPositions")] HRESULT termPositions([in] ITerm* term, [out,retval] ITermPositions** ret);
	[id(21), helpstring("method termDocsAll")] HRESULT termDocsAll([out,retval] ITermDocs** ret);
	[id(22), helpstring("method termDocsContaining")] HRESULT termDocsContaining([in] ITerm* term, [out,retval] ITermDocs** ret);
	[id(23), helpstring("method deleteDoc")] HRESULT deleteDoc([in] LONG docNum);
	[id(24), helpstring("method deleteTerm")] HRESULT deleteTerm([in] ITerm* term, [out,retval] LONG* ret);
	[id(25), helpstring("method close")] HRESULT close();
	[id(26), helpstring("method getDirectory")] HRESULT getDirectory([out,retval] IDirectory** ret);
//inherited methods
};

// ITermPositions (lucene::index::TermPositions)
[
	object,
	uuid("64de9169-cdbc-4ac4-ab02-55384a0c6f81"),
	dual,	helpstring("ITermPositions Interface"),
	pointer_default(unique)
]
interface ITermPositions : IDispatch
{
//castors
	[id(1), helpstring("Cast object up to TermDocs")] HRESULT UpCast([out,retval] ITermDocs** ret);

//methods
	[id(2), helpstring("method nextPosition")] HRESULT nextPosition([out,retval] LONG* ret);
//inherited methods
	[id(3), helpstring("method seekTerm")] HRESULT seekTerm([in] ITerm* term);
	[id(4), helpstring("method seekTermEnum")] HRESULT seekTermEnum([in] ITermEnum* termEnum);
	[id(5), helpstring("method doc")] HRESULT doc([out,retval] LONG* ret);
	[id(6), helpstring("method freq")] HRESULT freq([out,retval] LONG* ret);
	[id(7), helpstring("method next")] HRESULT next([out,retval] VARIANT_BOOL* ret);
	[id(8), helpstring("method skipTo")] HRESULT skipTo([in] LONG target, [out,retval] VARIANT_BOOL* ret);
	[id(9), helpstring("method close")] HRESULT close();
};

// IIndexWriter (lucene::index::IndexWriter)
[
	object,
	uuid("3c06934e-daca-44e3-9fee-27cd28fe799f"),
	dual,	helpstring("IIndexWriter Interface"),
	pointer_default(unique)
]
interface IIndexWriter : IDispatch
{
//constructors
	[id(1), helpstring("method Initialise")] HRESULT Initialise([in] BSTR path, [in] IAnalyzer* a, [in] VARIANT_BOOL create);
	[id(2), helpstring("method InitialiseWithDir")] HRESULT InitialiseWithDir([in] IDirectory* d, [in] IAnalyzer* a, [in] VARIANT_BOOL create);

//methods
	[id(3), helpstring("method getMaxFieldLength")] HRESULT getMaxFieldLength([out,retval] LONG* ret);
	[id(4), helpstring("method setMaxFieldLength")] HRESULT setMaxFieldLength([in] LONG val);
	[id(5), helpstring("method getMergeFactor")] HRESULT getMergeFactor([out,retval] LONG* ret);
	[id(6), helpstring("method setMergeFactor")] HRESULT setMergeFactor([in] LONG val);
	[id(7), helpstring("method getMinMergeDocs")] HRESULT getMinMergeDocs([out,retval] LONG* ret);
	[id(8), helpstring("method setMinMergeDocs")] HRESULT setMinMergeDocs([in] LONG val);
	[id(9), helpstring("method getMaxMergeDocs")] HRESULT getMaxMergeDocs([out,retval] LONG* ret);
	[id(10), helpstring("method setMaxMergeDocs")] HRESULT setMaxMergeDocs([in] LONG val);
	[id(11), helpstring("method close")] HRESULT close();
	[id(12), helpstring("method docCount")] HRESULT docCount([out,retval] LONG* ret);
	[id(13), helpstring("method addDocument")] HRESULT addDocument([in] IDocument* doc);
	[id(14), helpstring("method optimize")] HRESULT optimize();
	[id(15), helpstring("method getDirectory")] HRESULT getDirectory([out,retval] IDirectory** ret);
	[id(16), helpstring("method getUseCompoundFile")] HRESULT getUseCompoundFile([out,retval] VARIANT_BOOL* ret);
	[id(17), helpstring("method setUseCompoundFile")] HRESULT setUseCompoundFile([in] VARIANT_BOOL value);
	[id(18), helpstring("method setSimilarity")] HRESULT setSimilarity([in] ISimilarity* similarity);
	[id(19), helpstring("method getSimilarity")] HRESULT getSimilarity([out,retval] ISimilarity** ret);
	[id(20), helpstring("method getAnalyzer")] HRESULT getAnalyzer([out,retval] IAnalyzer** ret);
//inherited methods
};

// IRAMDirectory (lucene::store::RAMDirectory)
[
	object,
	uuid("5c58e563-cd21-4ad1-88f7-a5c80eb4a55c"),
	dual,	helpstring("IRAMDirectory Interface"),
	pointer_default(unique)
]
interface IRAMDirectory : IDispatch
{
//constructors
	[id(1), helpstring("method Initialise")] HRESULT Initialise();
	[id(2), helpstring("method InitialiseFromDir")] HRESULT InitialiseFromDir([in] IDirectory* dir);
	[id(3), helpstring("method InitialiseFromPath")] HRESULT InitialiseFromPath([in] BSTR dir);

//castors
	[id(4), helpstring("Cast object up to Directory")] HRESULT UpCast([out,retval] IDirectory** ret);

//methods
	[id(5), helpstring("method close")] HRESULT close();
//inherited methods
};

// IPhraseQuery (lucene::search::PhraseQuery)
[
	object,
	uuid("afca6b8d-3ba9-4157-b916-1b7fe42fd87b"),
	dual,	helpstring("IPhraseQuery Interface"),
	pointer_default(unique)
]
interface IPhraseQuery : IDispatch
{
//constructors

//castors
	[id(1), helpstring("Cast object up to Query")] HRESULT UpCast([out,retval] IQuery** ret);

//methods
	[id(2), helpstring("method setSlop")] HRESULT setSlop([in] LONG s);
	[id(3), helpstring("method getSlop")] HRESULT getSlop([out,retval] LONG* ret);
	[id(4), helpstring("method add")] HRESULT add([in] ITerm* term);
	[id(5), helpstring("method addTo")] HRESULT addTo([in] ITerm* term, [in] LONG position);
	[id(6), helpstring("method toString_ex")] HRESULT toString_ex([in] BSTR f, [out,retval] BSTR* ret);
	[id(7), helpstring("method equals")] HRESULT equals([in] IQuery* null, [out,retval] VARIANT_BOOL* ret);
//inherited methods
	[id(8), helpstring("method setBoost")] HRESULT setBoost([in] float b);
	[id(9), helpstring("method getBoost")] HRESULT getBoost([out,retval] float* ret);
	[id(10), helpstring("method rewrite")] HRESULT rewrite([in] IIndexReader* reader, [out,retval] IQuery** ret);
	[id(11), helpstring("method getSimilarity")] HRESULT getSimilarity([in] ISearcher* searcher, [out,retval] ISimilarity** ret);
	[id(12), helpstring("method toString")] HRESULT toString([out,retval] BSTR* ret);
};

// ITermQuery (lucene::search::TermQuery)
[
	object,
	uuid("a94c3430-dd5d-4b6b-a65d-819934416d0a"),
	dual,	helpstring("ITermQuery Interface"),
	pointer_default(unique)
]
interface ITermQuery : IDispatch
{
//constructors
	[id(1), helpstring("method Initialise")] HRESULT Initialise([in] ITerm* t);

//castors
	[id(2), helpstring("Cast object up to Query")] HRESULT UpCast([out,retval] IQuery** ret);

//methods
	[id(3), helpstring("method getTerm")] HRESULT getTerm([out,retval] ITerm** ret);
	[id(4), helpstring("method toString_ex")] HRESULT toString_ex([in] BSTR field, [out,retval] BSTR* ret);
	[id(5), helpstring("method equals")] HRESULT equals([in] IQuery* other, [out,retval] VARIANT_BOOL* ret);
//inherited methods
	[id(6), helpstring("method setBoost")] HRESULT setBoost([in] float b);
	[id(7), helpstring("method getBoost")] HRESULT getBoost([out,retval] float* ret);
	[id(8), helpstring("method rewrite")] HRESULT rewrite([in] IIndexReader* reader, [out,retval] IQuery** ret);
	[id(9), helpstring("method getSimilarity")] HRESULT getSimilarity([in] ISearcher* searcher, [out,retval] ISimilarity** ret);
	[id(10), helpstring("method toString")] HRESULT toString([out,retval] BSTR* ret);
};

// IMultiSearcher (lucene::search::MultiSearcher)
[
	object,
	uuid("7bf8ab4c-1f5b-4c18-9c0c-465b3113405e"),
	dual,	helpstring("IMultiSearcher Interface"),
	pointer_default(unique)
]
interface IMultiSearcher : IDispatch
{
//constructors
	[id(1), helpstring("method Initialise")] HRESULT Initialise([in] SAFEARRAY(VARIANT) searchables);

//castors
	[id(2), helpstring("Cast object up to Searcher")] HRESULT UpCast([out,retval] ISearcher** ret);

//methods
	[id(3), helpstring("method close")] HRESULT close();
	[id(4), helpstring("method docFreq")] HRESULT docFreq([in] ITerm* term, [out,retval] LONG* ret);
	[id(5), helpstring("method doc")] HRESULT doc([in] LONG n, [out,retval] IDocument** ret);
	[id(6), helpstring("method searcherIndex")] HRESULT searcherIndex([in] LONG n, [out,retval] LONG* ret);
	[id(7), helpstring("method subSearcher")] HRESULT subSearcher([in] LONG n, [out,retval] LONG* ret);
	[id(8), helpstring("method subDoc")] HRESULT subDoc([in] LONG n, [out,retval] LONG* ret);
	[id(9), helpstring("method maxDoc")] HRESULT maxDoc([out,retval] LONG* ret);
	[id(10), helpstring("method explain")] HRESULT explain([in] IQuery* query, [in] LONG doc, [out,retval] IExplanation** ret);
//inherited methods
	[id(11), helpstring("method search")] HRESULT search([in] IQuery* query, [out,retval] IHits** ret);
	[id(12), helpstring("method searchWithFilter")] HRESULT searchWithFilter([in] IQuery* query, [in] IFilter* filter, [out,retval] IHits** ret);
	[id(13), helpstring("method searchWithSort")] HRESULT searchWithSort([in] IQuery* query, [in] ISort* sort, [out,retval] IHits** ret);
	[id(14), helpstring("method searchWithFilterAndSort")] HRESULT searchWithFilterAndSort([in] IQuery* query, [in] IFilter* filter, [in] ISort* sort, [out,retval] IHits** ret);
	[id(15), helpstring("method setSimilarity")] HRESULT setSimilarity([in] ISimilarity* similarity);
	[id(16), helpstring("method getSimilarity")] HRESULT getSimilarity([out,retval] ISimilarity** ret);
};

// IToken (lucene::analysis::Token)
[
	object,
	uuid("d24344c7-3f3a-4c58-9207-43fd4f21679f"),
	dual,	helpstring("IToken Interface"),
	pointer_default(unique)
]
interface IToken : IDispatch
{
//constructors
	[id(1), helpstring("method Initialise")] HRESULT Initialise([in] BSTR text, [in] LONG start, [in] LONG end, [in] BSTR typ);

//methods
	[id(2), helpstring("method setPositionIncrement")] HRESULT setPositionIncrement([in] LONG posIncr);
	[id(3), helpstring("method getPositionIncrement")] HRESULT getPositionIncrement([out,retval] LONG* ret);
	[id(4), helpstring("method termText")] HRESULT termText([out,retval] BSTR* ret);
	[id(5), helpstring("method startOffset")] HRESULT startOffset([out,retval] LONG* ret);
	[id(6), helpstring("method endOffset")] HRESULT endOffset([out,retval] LONG* ret);
	[id(7), helpstring("method type")] HRESULT type([out,retval] BSTR* ret);
//inherited methods
};

// IRangeQuery (lucene::search::RangeQuery)
[
	object,
	uuid("e5ac2ea8-bab3-427c-be34-0b1f476fc58e"),
	dual,	helpstring("IRangeQuery Interface"),
	pointer_default(unique)
]
interface IRangeQuery : IDispatch
{
//constructors
	[id(1), helpstring("method Initialise")] HRESULT Initialise([in] ITerm* LowerTerm, [in] ITerm* UpperTerm, [in] VARIANT_BOOL Inclusive);

//castors
	[id(2), helpstring("Cast object up to Query")] HRESULT UpCast([out,retval] IQuery** ret);

//methods
	[id(3), helpstring("method rewrite")] HRESULT rewrite([in] IIndexReader* reader, [out,retval] IQuery** ret);
	[id(4), helpstring("method toString_ex")] HRESULT toString_ex([in] BSTR field, [out,retval] BSTR* ret);
	[id(5), helpstring("method equals")] HRESULT equals([in] IQuery* other, [out,retval] VARIANT_BOOL* ret);
	[id(6), helpstring("method getLowerTerm")] HRESULT getLowerTerm([out,retval] ITerm** ret);
	[id(7), helpstring("method getUpperTerm")] HRESULT getUpperTerm([out,retval] ITerm** ret);
	[id(8), helpstring("method isInclusive")] HRESULT isInclusive([out,retval] VARIANT_BOOL* ret);
	[id(9), helpstring("method getField")] HRESULT getField([out,retval] BSTR* ret);
//inherited methods
	[id(10), helpstring("method setBoost")] HRESULT setBoost([in] float b);
	[id(11), helpstring("method getBoost")] HRESULT getBoost([out,retval] float* ret);
	[id(12), helpstring("method getSimilarity")] HRESULT getSimilarity([in] ISearcher* searcher, [out,retval] ISimilarity** ret);
	[id(13), helpstring("method toString")] HRESULT toString([out,retval] BSTR* ret);
};

// ITokenStream (lucene::analysis::TokenStream)
[
	object,
	uuid("dffff6c2-ac1a-4697-8989-01d6530ce524"),
	dual,	helpstring("ITokenStream Interface"),
	pointer_default(unique)
]
interface ITokenStream : IDispatch
{
//methods
	[id(1), helpstring("method close")] HRESULT close();
	[id(2), helpstring("method next")] HRESULT next([out,retval] IToken** ret);
//inherited methods
};

// IMultiReader (lucene::index::MultiReader)
[
	object,
	uuid("25cb63df-0bb8-4e2d-b18c-f2b638185936"),
	dual,	helpstring("IMultiReader Interface"),
	pointer_default(unique)
]
interface IMultiReader : IDispatch
{
//constructors
	[id(1), helpstring("method Initialise")] HRESULT Initialise([in] SAFEARRAY(VARIANT) subReaders);

//castors
	[id(2), helpstring("Cast object up to IndexReader")] HRESULT UpCast([out,retval] IIndexReader** ret);

//methods
	[id(3), helpstring("method getTermFreqVectors")] HRESULT getTermFreqVectors([in] LONG n, [out,retval] SAFEARRAY(VARIANT)* ret);
	[id(4), helpstring("method getTermFreqVector")] HRESULT getTermFreqVector([in] LONG n, [in] BSTR field, [out,retval] ITermFreqVector** ret);
	[id(5), helpstring("method numDocs")] HRESULT numDocs([out,retval] LONG* ret);
	[id(6), helpstring("method maxDoc")] HRESULT maxDoc([out,retval] LONG* ret);
	[id(7), helpstring("method document")] HRESULT document([in] LONG n, [out,retval] IDocument** ret);
	[id(8), helpstring("method isDeleted")] HRESULT isDeleted([in] LONG n, [out,retval] VARIANT_BOOL* ret);
	[id(9), helpstring("method hasDeletions")] HRESULT hasDeletions([out,retval] VARIANT_BOOL* ret);
	[id(10), helpstring("method norms")] HRESULT norms([in] BSTR field, [out,retval] SAFEARRAY(BYTE)* ret);
	[id(11), helpstring("method termsAll")] HRESULT termsAll([out,retval] ITermEnum** ret);
	[id(12), helpstring("method terms")] HRESULT terms([in] ITerm* term, [out,retval] ITermEnum** ret);
	[id(13), helpstring("method docFreq")] HRESULT docFreq([in] ITerm* t, [out,retval] LONG* ret);
	[id(14), helpstring("method termDocsAll")] HRESULT termDocsAll([out,retval] ITermDocs** ret);
	[id(15), helpstring("method termPositionsAll")] HRESULT termPositionsAll([out,retval] ITermPositions** ret);
	[id(16), helpstring("method getFieldNames")] HRESULT getFieldNames([out,retval] SAFEARRAY(BSTR)* ret);
	[id(17), helpstring("method getFieldNames_ex")] HRESULT getFieldNames_ex([in] VARIANT_BOOL indexed, [out,retval] SAFEARRAY(BSTR)* ret);
	[id(18), helpstring("method getIndexedFieldNames")] HRESULT getIndexedFieldNames([in] VARIANT_BOOL storedTermVector, [out,retval] SAFEARRAY(BSTR)* ret);
//inherited methods
	[id(19), helpstring("method commit")] HRESULT commit();
	[id(20), helpstring("method undeleteAll")] HRESULT undeleteAll();
	[id(21), helpstring("method setNormFloat")] HRESULT setNormFloat([in] LONG doc, [in] BSTR field, [in] float value);
	[id(22), helpstring("method setNormByte")] HRESULT setNormByte([in] LONG doc, [in] BSTR field, [in] BYTE value);
	[id(23), helpstring("method termPositions")] HRESULT termPositions([in] ITerm* term, [out,retval] ITermPositions** ret);
	[id(24), helpstring("method termDocsContaining")] HRESULT termDocsContaining([in] ITerm* term, [out,retval] ITermDocs** ret);
	[id(25), helpstring("method deleteDoc")] HRESULT deleteDoc([in] LONG docNum);
	[id(26), helpstring("method deleteTerm")] HRESULT deleteTerm([in] ITerm* term, [out,retval] LONG* ret);
	[id(27), helpstring("method close")] HRESULT close();
	[id(28), helpstring("method getDirectory")] HRESULT getDirectory([out,retval] IDirectory** ret);
};

// IStandardAnalyzer (lucene::analysis::standard::StandardAnalyzer)
[
	object,
	uuid("07cb9d45-b2fa-45ad-9771-041ce02de3e9"),
	dual,	helpstring("IStandardAnalyzer Interface"),
	pointer_default(unique)
]
interface IStandardAnalyzer : IDispatch
{
//constructors
	[id(1), helpstring("method Initialise")] HRESULT Initialise();
	[id(2), helpstring("method InitialiseWithStopWords")] HRESULT InitialiseWithStopWords([in] SAFEARRAY(BSTR) stopWords);

//castors
	[id(3), helpstring("Cast object up to Analyzer")] HRESULT UpCast([out,retval] IAnalyzer** ret);

//methods
	[id(4), helpstring("method tokenStream")] HRESULT tokenStream([in] BSTR fieldName, [in] IReader* reader, [out,retval] ITokenStream** ret);
//inherited methods
};

// IWildcardQuery (lucene::search::WildcardQuery)
[
	object,
	uuid("03838b40-75b5-4214-b23c-e56984ad8e56"),
	dual,	helpstring("IWildcardQuery Interface"),
	pointer_default(unique)
]
interface IWildcardQuery : IDispatch
{
//constructors
	[id(1), helpstring("method Initialise")] HRESULT Initialise([in] ITerm* term);

//castors
	[id(2), helpstring("Cast object up to MultiTermQuery")] HRESULT UpCast([out,retval] IMultiTermQuery** ret);

//methods
	[id(3), helpstring("method equals")] HRESULT equals([in] IQuery* other, [out,retval] VARIANT_BOOL* ret);
//inherited methods
	[id(4), helpstring("method getTerm")] HRESULT getTerm([out,retval] ITerm** ret);
	[id(5), helpstring("method toString_ex")] HRESULT toString_ex([in] BSTR field, [out,retval] BSTR* ret);
	[id(6), helpstring("method rewrite")] HRESULT rewrite([in] IIndexReader* reader, [out,retval] IQuery** ret);
};

// IFSDirectory (lucene::store::FSDirectory)
[
	object,
	uuid("ea03140d-d7e8-4f97-9de5-348e19fd4905"),
	dual,	helpstring("IFSDirectory Interface"),
	pointer_default(unique)
]
interface IFSDirectory : IDispatch
{
//constructors

//castors
	[id(1), helpstring("Cast object up to Directory")] HRESULT UpCast([out,retval] IDirectory** ret);

//methods
	[id(2), helpstring("method getDirName")] HRESULT getDirName([out,retval] BSTR* ret);
	[id(3), helpstring("method close")] HRESULT close();
//inherited methods
};

// IPrefixQuery (lucene::search::PrefixQuery)
[
	object,
	uuid("7d112608-c3a8-45a0-98a0-ffe878bab44f"),
	dual,	helpstring("IPrefixQuery Interface"),
	pointer_default(unique)
]
interface IPrefixQuery : IDispatch
{
//constructors
	[id(1), helpstring("method Initialise")] HRESULT Initialise([in] ITerm* Prefix);

//castors
	[id(2), helpstring("Cast object up to Query")] HRESULT UpCast([out,retval] IQuery** ret);

//methods
	[id(3), helpstring("method getPrefix")] HRESULT getPrefix([out,retval] ITerm** ret);
	[id(4), helpstring("method rewrite")] HRESULT rewrite([in] IIndexReader* reader, [out,retval] IQuery** ret);
	[id(5), helpstring("method equals")] HRESULT equals([in] IQuery* other, [out,retval] VARIANT_BOOL* ret);
	[id(6), helpstring("method toString_ex")] HRESULT toString_ex([in] BSTR field, [out,retval] BSTR* ret);
//inherited methods
	[id(7), helpstring("method setBoost")] HRESULT setBoost([in] float b);
	[id(8), helpstring("method getBoost")] HRESULT getBoost([out,retval] float* ret);
	[id(9), helpstring("method getSimilarity")] HRESULT getSimilarity([in] ISearcher* searcher, [out,retval] ISimilarity** ret);
	[id(10), helpstring("method toString")] HRESULT toString([out,retval] BSTR* ret);
};

// IReader (lucene::util::Reader)
[
	object,
	uuid("3346023f-8d02-4eb9-98a4-1cb9547b8418"),
	dual,	helpstring("IReader Interface"),
	pointer_default(unique)
]
interface IReader : IDispatch
{
//methods
	[id(1), helpstring("method close")] HRESULT close();
//inherited methods
};

// ITermDocs (lucene::index::TermDocs)
[
	object,
	uuid("a6d53d6f-81db-426e-8814-923e0596e34d"),
	dual,	helpstring("ITermDocs Interface"),
	pointer_default(unique)
]
interface ITermDocs : IDispatch
{
//methods
	[id(1), helpstring("method seekTerm")] HRESULT seekTerm([in] ITerm* term);
	[id(2), helpstring("method seekTermEnum")] HRESULT seekTermEnum([in] ITermEnum* termEnum);
	[id(3), helpstring("method doc")] HRESULT doc([out,retval] LONG* ret);
	[id(4), helpstring("method freq")] HRESULT freq([out,retval] LONG* ret);
	[id(5), helpstring("method next")] HRESULT next([out,retval] VARIANT_BOOL* ret);
	[id(6), helpstring("method skipTo")] HRESULT skipTo([in] LONG target, [out,retval] VARIANT_BOOL* ret);
	[id(7), helpstring("method close")] HRESULT close();
//inherited methods
};

// ITermEnum (lucene::index::TermEnum)
[
	object,
	uuid("e2efb391-74cc-4e50-96c4-085b9bcd3f79"),
	dual,	helpstring("ITermEnum Interface"),
	pointer_default(unique)
]
interface ITermEnum : IDispatch
{
//methods
	[id(1), helpstring("method next")] HRESULT next([out,retval] VARIANT_BOOL* ret);
	[id(2), helpstring("method term")] HRESULT term([out,retval] ITerm** ret);
	[id(3), helpstring("method docFreq")] HRESULT docFreq([out,retval] LONG* ret);
	[id(4), helpstring("method close")] HRESULT close();
	[id(5), helpstring("method skipTo")] HRESULT skipTo([in] ITerm* target, [out,retval] VARIANT_BOOL* ret);
//inherited methods
};

// IBitSet (lucene::util::BitSet)
[
	object,
	uuid("fa240d7b-a96f-4708-a445-197ab81468e0"),
	dual,	helpstring("IBitSet Interface"),
	pointer_default(unique)
]
interface IBitSet : IDispatch
{
//constructors
	[id(1), helpstring("method Initialise")] HRESULT Initialise([in] LONG size);

//methods
	[id(2), helpstring("method get")] HRESULT get([in] LONG bit, [out,retval] VARIANT_BOOL* ret);
	[id(3), helpstring("method set")] HRESULT set([in] LONG bit);
	[id(4), helpstring("method size")] HRESULT size([out,retval] LONG* ret);
//inherited methods
};

// IFileReader (lucene::util::FileReader)
[
	object,
	uuid("8484713c-fb9a-4d21-bf69-585680d4d1f5"),
	dual,	helpstring("IFileReader Interface"),
	pointer_default(unique)
]
interface IFileReader : IDispatch
{
//constructors
	[id(1), helpstring("method InitialiseWithEncoding")] HRESULT InitialiseWithEncoding([in] BSTR fname, [in] BSTR encoding_scheme);
	[id(2), helpstring("method Initialise")] HRESULT Initialise([in] BSTR fname);

//castors
	[id(3), helpstring("Cast object up to Reader")] HRESULT UpCast([out,retval] IReader** ret);

//methods
	[id(4), helpstring("method close")] HRESULT close();
//inherited methods
};

// IWhitespaceAnalyzer (lucene::analysis::WhitespaceAnalyzer)
[
	object,
	uuid("94ef062d-0b4b-4eb3-a9e0-9d16c5b78139"),
	dual,	helpstring("IWhitespaceAnalyzer Interface"),
	pointer_default(unique)
]
interface IWhitespaceAnalyzer : IDispatch
{
//constructors

//castors
	[id(1), helpstring("Cast object up to Analyzer")] HRESULT UpCast([out,retval] IAnalyzer** ret);

//methods
	[id(2), helpstring("method tokenStream")] HRESULT tokenStream([in] BSTR fieldName, [in] IReader* reader, [out,retval] ITokenStream** ret);
//inherited methods
};

// ISortField (lucene::search::SortField)
[
	object,
	uuid("a3029c66-b26a-4278-aa83-f7c4448736da"),
	dual,	helpstring("ISortField Interface"),
	pointer_default(unique)
]
interface ISortField : IDispatch
{
//constructors
	[id(1), helpstring("method Initialise")] HRESULT Initialise([in] BSTR field);
	[id(2), helpstring("method Initialise_ex2")] HRESULT Initialise_ex2([in] BSTR field, [in] LONG type, [in] VARIANT_BOOL reverse);

//methods
	[id(3), helpstring("method getField")] HRESULT getField([out,retval] BSTR* ret);
	[id(4), helpstring("method getType")] HRESULT getType([out,retval] LONG* ret);
	[id(5), helpstring("method getReverse")] HRESULT getReverse([out,retval] VARIANT_BOOL* ret);
	[id(6), helpstring("method toString")] HRESULT toString([out,retval] BSTR* ret);
//inherited methods
};

// IQueryParser (lucene::queryParser::QueryParser)
[
	object,
	uuid("2875215d-2103-43db-928b-4f06b795a3d9"),
	dual,	helpstring("IQueryParser Interface"),
	pointer_default(unique)
]
interface IQueryParser : IDispatch
{
//constructors
	[id(1), helpstring("method Initialise")] HRESULT Initialise([in] BSTR field, [in] IAnalyzer* analyzer);

//methods
	[id(2), helpstring("method parseString")] HRESULT parseString([in] BSTR query, [out,retval] IQuery** ret);
	[id(3), helpstring("method parseReader")] HRESULT parseReader([in] IReader* reader, [out,retval] IQuery** ret);
	[id(4), helpstring("method setLowercaseWildcardTerms")] HRESULT setLowercaseWildcardTerms([in] VARIANT_BOOL lowercaseWildcardTerms);
	[id(5), helpstring("method gGetLowercaseWildcardTerms")] HRESULT gGetLowercaseWildcardTerms([out,retval] VARIANT_BOOL* ret);
//inherited methods
};

// ISimpleAnalyzer (lucene::analysis::SimpleAnalyzer)
[
	object,
	uuid("124d540f-6628-49da-9f54-a20df9edeef5"),
	dual,	helpstring("ISimpleAnalyzer Interface"),
	pointer_default(unique)
]
interface ISimpleAnalyzer : IDispatch
{
//constructors

//castors
	[id(1), helpstring("Cast object up to Analyzer")] HRESULT UpCast([out,retval] IAnalyzer** ret);

//methods
	[id(2), helpstring("method tokenStream")] HRESULT tokenStream([in] BSTR fieldName, [in] IReader* reader, [out,retval] ITokenStream** ret);
//inherited methods
};

// ISearcher (lucene::search::Searcher)
[
	object,
	uuid("dcc88bf0-5244-46fc-9492-ee8ea4091eaa"),
	dual,	helpstring("ISearcher Interface"),
	pointer_default(unique)
]
interface ISearcher : IDispatch
{
//castors
	[id(1), helpstring("Cast object up to Searchable")] HRESULT UpCast([out,retval] ISearchable** ret);

//methods
	[id(2), helpstring("method search")] HRESULT search([in] IQuery* query, [out,retval] IHits** ret);
	[id(3), helpstring("method searchWithFilter")] HRESULT searchWithFilter([in] IQuery* query, [in] IFilter* filter, [out,retval] IHits** ret);
	[id(4), helpstring("method searchWithSort")] HRESULT searchWithSort([in] IQuery* query, [in] ISort* sort, [out,retval] IHits** ret);
	[id(5), helpstring("method searchWithFilterAndSort")] HRESULT searchWithFilterAndSort([in] IQuery* query, [in] IFilter* filter, [in] ISort* sort, [out,retval] IHits** ret);
	[id(6), helpstring("method setSimilarity")] HRESULT setSimilarity([in] ISimilarity* similarity);
	[id(7), helpstring("method getSimilarity")] HRESULT getSimilarity([out,retval] ISimilarity** ret);
//inherited methods
	[id(8), helpstring("method close")] HRESULT close();
	[id(9), helpstring("method docFreq")] HRESULT docFreq([in] ITerm* term, [out,retval] LONG* ret);
	[id(10), helpstring("method maxDoc")] HRESULT maxDoc([out,retval] LONG* ret);
	[id(11), helpstring("method doc")] HRESULT doc([in] LONG i, [out,retval] IDocument** ret);
	[id(12), helpstring("method explain")] HRESULT explain([in] IQuery* query, [in] LONG doc, [out,retval] IExplanation** ret);
};

// IHits (lucene::search::Hits)
[
	object,
	uuid("099a139c-5fe1-40c1-8350-830dd78bbbcd"),
	dual,	helpstring("IHits Interface"),
	pointer_default(unique)
]
interface IHits : IDispatch
{
//constructors

//methods
	[id(1), helpstring("method length")] HRESULT length([out,retval] LONG* ret);
	[id(2), helpstring("method doc")] HRESULT doc([in] LONG n, [out,retval] IDocument** ret);
	[id(3), helpstring("method id")] HRESULT id([in] LONG n, [out,retval] LONG* ret);
	[id(4), helpstring("method score")] HRESULT score([in] LONG n, [out,retval] float* ret);
//inherited methods
};

// IDocument (lucene::document::Document)
[
	object,
	uuid("c39a2533-7a8d-418d-afe2-be5e899fc090"),
	dual,	helpstring("IDocument Interface"),
	pointer_default(unique)
]
interface IDocument : IDispatch
{
//constructors

//methods
	[id(1), helpstring("method add")] HRESULT add([in] IField* field);
	[id(2), helpstring("method getField")] HRESULT getField([in] BSTR name, [out,retval] IField** ret);
	[id(3), helpstring("method get")] HRESULT get([in] BSTR field, [out,retval] BSTR* ret);
	[id(4), helpstring("method fields")] HRESULT fields([out,retval] IDocumentFieldEnumeration** ret);
	[id(5), helpstring("method toString")] HRESULT toString([out,retval] BSTR* ret);
	[id(6), helpstring("method setBoost")] HRESULT setBoost([in] float boost);
	[id(7), helpstring("method getBoost")] HRESULT getBoost([out,retval] float* ret);
	[id(8), helpstring("method removeField")] HRESULT removeField([in] BSTR name);
	[id(9), helpstring("method removeFields")] HRESULT removeFields([in] BSTR name);
	[id(10), helpstring("method getValues")] HRESULT getValues([in] BSTR name, [out,retval] SAFEARRAY(BSTR)* ret);
//inherited methods
};

// IDocumentFieldEnumeration (lucene::document::DocumentFieldEnumeration)
[
	object,
	uuid("3cc6bee1-0d79-4bcc-9f8c-4c4e0fdd550b"),
	dual,	helpstring("IDocumentFieldEnumeration Interface"),
	pointer_default(unique)
]
interface IDocumentFieldEnumeration : IDispatch
{
//constructors

//methods
	[id(1), helpstring("method hasMoreElements")] HRESULT hasMoreElements([out,retval] VARIANT_BOOL* ret);
	[id(2), helpstring("method nextElement")] HRESULT nextElement([out,retval] IField** ret);
//inherited methods
};

// IPerFieldAnalyzerWrapper (lucene::analysis::PerFieldAnalyzerWrapper)
[
	object,
	uuid("74168ba0-40ac-47ec-867c-ad84014dbcc4"),
	dual,	helpstring("IPerFieldAnalyzerWrapper Interface"),
	pointer_default(unique)
]
interface IPerFieldAnalyzerWrapper : IDispatch
{
//constructors
	[id(1), helpstring("method Initialise")] HRESULT Initialise([in] IAnalyzer* defaultAnalyzer);

//castors
	[id(2), helpstring("Cast object up to Analyzer")] HRESULT UpCast([out,retval] IAnalyzer** ret);

//methods
	[id(3), helpstring("method addAnalyzer")] HRESULT addAnalyzer([in] BSTR fieldName, [in] IAnalyzer* analyzer);
	[id(4), helpstring("method tokenStream")] HRESULT tokenStream([in] BSTR fieldName, [in] IReader* reader, [out,retval] ITokenStream** ret);
//inherited methods
};

// IMultiTermQuery (lucene::search::MultiTermQuery)
[
	object,
	uuid("6ffb2ccf-30db-4e21-a1b4-22ca9b9916b7"),
	dual,	helpstring("IMultiTermQuery Interface"),
	pointer_default(unique)
]
interface IMultiTermQuery : IDispatch
{
//castors
	[id(1), helpstring("Cast object up to Query")] HRESULT UpCast([out,retval] IQuery** ret);

//methods
	[id(2), helpstring("method getTerm")] HRESULT getTerm([out,retval] ITerm** ret);
	[id(3), helpstring("method toString_ex")] HRESULT toString_ex([in] BSTR field, [out,retval] BSTR* ret);
	[id(4), helpstring("method rewrite")] HRESULT rewrite([in] IIndexReader* reader, [out,retval] IQuery** ret);
//inherited methods
	[id(5), helpstring("method setBoost")] HRESULT setBoost([in] float b);
	[id(6), helpstring("method getBoost")] HRESULT getBoost([out,retval] float* ret);
	[id(7), helpstring("method getSimilarity")] HRESULT getSimilarity([in] ISearcher* searcher, [out,retval] ISimilarity** ret);
	[id(8), helpstring("method equals")] HRESULT equals([in] IQuery* other, [out,retval] VARIANT_BOOL* ret);
	[id(9), helpstring("method toString")] HRESULT toString([out,retval] BSTR* ret);
};

// ITermVectorOffsetInfo (lucene::index::TermVectorOffsetInfo)
[
	object,
	uuid("4c4fae1a-7a66-4010-a235-fae260cfe556"),
	dual,	helpstring("ITermVectorOffsetInfo Interface"),
	pointer_default(unique)
]
interface ITermVectorOffsetInfo : IDispatch
{
//constructors
	[id(1), helpstring("method Initialise")] HRESULT Initialise();
	[id(2), helpstring("method Initialise__SWIG_1")] HRESULT Initialise__SWIG_1([in] LONG startOffset, [in] LONG endOffset);

//methods
	[id(3), helpstring("method getEndOffset")] HRESULT getEndOffset([out,retval] LONG* ret);
	[id(4), helpstring("method setEndOffset")] HRESULT setEndOffset([in] LONG endOffset);
	[id(5), helpstring("method getStartOffset")] HRESULT getStartOffset([out,retval] LONG* ret);
	[id(6), helpstring("method setStartOffset")] HRESULT setStartOffset([in] LONG startOffset);
	[id(7), helpstring("method equals")] HRESULT equals([in] ITermVectorOffsetInfo* o, [out,retval] VARIANT_BOOL* ret);
//inherited methods
};



[
	uuid(5b026b00-e7d0-4423-a80b-4c78c58b3437),
	version(1.0),
	helpstring("CLcom 1.0 Type Library")
]
library CLcom
{
	importlib("stdole2.tlb");

	[
		uuid(815a5af7-4aeb-4ff1-adf9-4563eeda0d55),
		helpstring("BooleanQuery Class")
	]
	coclass BooleanQuery
	{
		[default] interface IBooleanQuery;
	};

	[
		uuid(516d199d-a797-468c-8eae-b7db4e436387),
		helpstring("DateFilter Class")
	]
	coclass DateFilter
	{
		[default] interface IDateFilter;
	};

	[
		uuid(aa2b1d1c-0136-4fb2-b407-1b6419fb626f),
		helpstring("Term Class")
	]
	coclass Term
	{
		[default] interface ITerm;
	};

	[
		uuid(2d23d10d-40f0-483d-8700-fc792f2686a0),
		helpstring("TermFreqVector Class")
	]
	coclass TermFreqVector
	{
		[default] interface ITermFreqVector;
	};

	[
		uuid(666ba7f8-c032-42dc-9e84-57eb95209c25),
		helpstring("Analyzer Class")
	]
	coclass Analyzer
	{
		[default] interface IAnalyzer;
	};

	[
		uuid(563715b2-7a35-43a6-becb-9eeb0a2b5c01),
		helpstring("StringReader Class")
	]
	coclass StringReader
	{
		[default] interface IStringReader;
	};

	[
		uuid(4f827459-c8cd-4752-82c3-b17a0cf597bf),
		helpstring("Searchable Class")
	]
	coclass Searchable
	{
		[default] interface ISearchable;
	};

	[
		uuid(7816a74b-d938-4a89-8cf3-5e9fc4118a69),
		helpstring("Explanation Class")
	]
	coclass Explanation
	{
		[default] interface IExplanation;
	};

	[
		uuid(6f314bc0-9ba3-44bb-b2fd-ef568a9cfc18),
		helpstring("Similarity Class")
	]
	coclass Similarity
	{
		[default] interface ISimilarity;
	};

	[
		uuid(e3a64a84-ac43-42c5-8830-b9507954d32d),
		helpstring("Directory Class")
	]
	coclass Directory
	{
		[default] interface IDirectory;
	};

	[
		uuid(b72645aa-000b-46d0-b981-523a44527737),
		helpstring("Field Class")
	]
	coclass Field
	{
		[default] interface IField;
	};

	[
		uuid(1b7884b4-992a-413f-a94b-e57b5923bb07),
		helpstring("IndexSearcher Class")
	]
	coclass IndexSearcher
	{
		[default] interface IIndexSearcher;
	};

	[
		uuid(10358dec-c070-4676-b4c9-2f1908a131c2),
		helpstring("DateField Class")
	]
	coclass DateField
	{
		[default] interface IDateField;
	};

	[
		uuid(9773a620-d282-4653-aa92-66c8a235f38c),
		helpstring("Sort Class")
	]
	coclass Sort
	{
		[default] interface ISort;
	};

	[
		uuid(32932ab3-e408-44c3-b819-1321b73b9de4),
		helpstring("Filter Class")
	]
	coclass Filter
	{
		[default] interface IFilter;
	};

	[
		uuid(2e223b37-0a4c-475b-b3a9-2c1361684236),
		helpstring("StopAnalyzer Class")
	]
	coclass StopAnalyzer
	{
		[default] interface IStopAnalyzer;
	};

	[
		uuid(d58714a3-9b8c-4671-8cd3-7e4c416a759c),
		helpstring("Query Class")
	]
	coclass Query
	{
		[default] interface IQuery;
	};

	[
		uuid(b4e1cc00-d27d-42c3-b5a8-8c50df157738),
		helpstring("IndexReader Class")
	]
	coclass IndexReader
	{
		[default] interface IIndexReader;
	};

	[
		uuid(9ed09e08-a57d-463d-828a-8392fb9e7d66),
		helpstring("TermPositions Class")
	]
	coclass TermPositions
	{
		[default] interface ITermPositions;
	};

	[
		uuid(ff3331dc-48e3-4abe-bc2e-564e7da9a3cf),
		helpstring("IndexWriter Class")
	]
	coclass IndexWriter
	{
		[default] interface IIndexWriter;
	};

	[
		uuid(c678e706-2d8c-46a9-929b-cd6c72478c0f),
		helpstring("RAMDirectory Class")
	]
	coclass RAMDirectory
	{
		[default] interface IRAMDirectory;
	};

	[
		uuid(3e94a0bd-fcb8-4481-afd6-1a5a1000932f),
		helpstring("PhraseQuery Class")
	]
	coclass PhraseQuery
	{
		[default] interface IPhraseQuery;
	};

	[
		uuid(fddb2853-0067-40cb-99b1-ba6bc8f015d2),
		helpstring("TermQuery Class")
	]
	coclass TermQuery
	{
		[default] interface ITermQuery;
	};

	[
		uuid(757a0fe6-792c-45e8-84c3-6fed7f45b045),
		helpstring("MultiSearcher Class")
	]
	coclass MultiSearcher
	{
		[default] interface IMultiSearcher;
	};

	[
		uuid(a7863991-89bc-41b4-8877-71c6cc60e3ef),
		helpstring("Token Class")
	]
	coclass Token
	{
		[default] interface IToken;
	};

	[
		uuid(309b863d-9707-4855-9d06-e73bc8c942d1),
		helpstring("RangeQuery Class")
	]
	coclass RangeQuery
	{
		[default] interface IRangeQuery;
	};

	[
		uuid(93d59973-1e63-4fad-bd91-c84397519d3c),
		helpstring("TokenStream Class")
	]
	coclass TokenStream
	{
		[default] interface ITokenStream;
	};

	[
		uuid(2dc7092e-973e-452f-94d1-a0a20f1d3339),
		helpstring("MultiReader Class")
	]
	coclass MultiReader
	{
		[default] interface IMultiReader;
	};

	[
		uuid(80eb929f-115b-48df-8336-63b20ca5a444),
		helpstring("StandardAnalyzer Class")
	]
	coclass StandardAnalyzer
	{
		[default] interface IStandardAnalyzer;
	};

	[
		uuid(3173950a-39ef-4cc1-9a69-8a1912938c08),
		helpstring("WildcardQuery Class")
	]
	coclass WildcardQuery
	{
		[default] interface IWildcardQuery;
	};

	[
		uuid(f20e7da9-41ec-4133-aec7-f2374baa98f3),
		helpstring("FSDirectory Class")
	]
	coclass FSDirectory
	{
		[default] interface IFSDirectory;
	};

	[
		uuid(7326513e-86ae-40c8-8f34-5ea7070999f6),
		helpstring("PrefixQuery Class")
	]
	coclass PrefixQuery
	{
		[default] interface IPrefixQuery;
	};

	[
		uuid(baf364db-c6c9-46aa-ae6a-f8bda5443e38),
		helpstring("Reader Class")
	]
	coclass Reader
	{
		[default] interface IReader;
	};

	[
		uuid(f8f95266-360b-4e6f-bf16-5d8e7fe94217),
		helpstring("TermDocs Class")
	]
	coclass TermDocs
	{
		[default] interface ITermDocs;
	};

	[
		uuid(3541f8b7-78f9-4d8e-880f-a1948cdfb8af),
		helpstring("TermEnum Class")
	]
	coclass TermEnum
	{
		[default] interface ITermEnum;
	};

	[
		uuid(9f94baa7-236a-493f-b09e-359d1a437f2b),
		helpstring("BitSet Class")
	]
	coclass BitSet
	{
		[default] interface IBitSet;
	};

	[
		uuid(bd9bb1a4-6903-4480-9816-a895a0401632),
		helpstring("FileReader Class")
	]
	coclass FileReader
	{
		[default] interface IFileReader;
	};

	[
		uuid(66655764-2938-49a4-8aac-05f427dc080f),
		helpstring("WhitespaceAnalyzer Class")
	]
	coclass WhitespaceAnalyzer
	{
		[default] interface IWhitespaceAnalyzer;
	};

	[
		uuid(545eb0da-6463-48ac-a9f2-a44b93217b8f),
		helpstring("SortField Class")
	]
	coclass SortField
	{
		[default] interface ISortField;
	};

	[
		uuid(ef3e31af-ef30-43dc-ab84-842dc6d1ef8f),
		helpstring("QueryParser Class")
	]
	coclass QueryParser
	{
		[default] interface IQueryParser;
	};

	[
		uuid(59b9c43d-cb70-462c-b3ab-784b9e252038),
		helpstring("SimpleAnalyzer Class")
	]
	coclass SimpleAnalyzer
	{
		[default] interface ISimpleAnalyzer;
	};

	[
		uuid(3c2e62e4-cb38-48da-8700-2fc58a9299a2),
		helpstring("Searcher Class")
	]
	coclass Searcher
	{
		[default] interface ISearcher;
	};

	[
		uuid(cac3e9b1-8fea-4ae1-a984-6f1fe5538dc1),
		helpstring("Hits Class")
	]
	coclass Hits
	{
		[default] interface IHits;
	};

	[
		uuid(30d302ab-eb45-4b3c-8661-5d46766374cd),
		helpstring("Document Class")
	]
	coclass Document
	{
		[default] interface IDocument;
	};

	[
		uuid(24ddb0c5-fa0a-4071-9b6f-52e17523eb0b),
		helpstring("DocumentFieldEnumeration Class")
	]
	coclass DocumentFieldEnumeration
	{
		[default] interface IDocumentFieldEnumeration;
	};

	[
		uuid(7ea3838f-41c9-4e84-acd1-5cec1bc7d411),
		helpstring("PerFieldAnalyzerWrapper Class")
	]
	coclass PerFieldAnalyzerWrapper
	{
		[default] interface IPerFieldAnalyzerWrapper;
	};

	[
		uuid(f02b898d-0007-46c3-9b54-08501af4efd2),
		helpstring("MultiTermQuery Class")
	]
	coclass MultiTermQuery
	{
		[default] interface IMultiTermQuery;
	};

	[
		uuid(24b2aa97-72fa-4478-96db-aa09027cb8d4),
		helpstring("TermVectorOffsetInfo Class")
	]
	coclass TermVectorOffsetInfo
	{
		[default] interface ITermVectorOffsetInfo;
	};

};
