1/** 2 * This file is part of the mingw-w64 runtime package. 3 * No warranty is given; refer to the file DISCLAIMER within this package. 4 */ 5 6import "unknwn.idl"; 7import "objidl.idl"; 8import "propidl.idl"; 9 10interface IFilter; 11 12cpp_quote("#include <winapifamily.h>") 13cpp_quote("") 14cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)") 15cpp_quote("#ifndef _TAGFULLPROPSPEC_DEFINED_") 16cpp_quote("#define _TAGFULLPROPSPEC_DEFINED_") 17typedef struct tagFULLPROPSPEC { 18 GUID guidPropSet; 19 PROPSPEC psProperty; 20} FULLPROPSPEC; 21cpp_quote("#endif") 22 23cpp_quote("#ifndef _tagIFILTER_INIT_DEFINED") 24cpp_quote("#define _tagIFILTER_INIT_DEFINED") 25typedef enum tagIFILTER_INIT { 26 IFILTER_INIT_CANON_PARAGRAPHS = 0x1, 27 IFILTER_INIT_HARD_LINE_BREAKS = 0x2, 28 IFILTER_INIT_CANON_HYPHENS = 0x4, 29 IFILTER_INIT_CANON_SPACES = 0x8, 30 IFILTER_INIT_APPLY_INDEX_ATTRIBUTES = 0x10, 31 IFILTER_INIT_APPLY_OTHER_ATTRIBUTES = 0x20, 32 IFILTER_INIT_INDEXING_ONLY = 0x40, 33 IFILTER_INIT_SEARCH_LINKS = 0x80, 34 IFILTER_INIT_APPLY_CRAWL_ATTRIBUTES = 0x100, 35 IFILTER_INIT_FILTER_OWNED_VALUE_OK = 0x200, 36 IFILTER_INIT_FILTER_AGGRESSIVE_BREAK = 0x400, 37 IFILTER_INIT_DISABLE_EMBEDDED = 0x800, 38 IFILTER_INIT_EMIT_FORMATTING = 0x1000 39} IFILTER_INIT; 40cpp_quote("#define _IFILTER_INIT_DEFINED") 41cpp_quote("#endif") 42 43cpp_quote("#ifndef _tagIFILTER_FLAGS_DEFINED") 44cpp_quote("#define _tagIFILTER_FLAGS_DEFINED") 45typedef enum tagIFILTER_FLAGS { 46 IFILTER_FLAGS_OLE_PROPERTIES = 1 47} IFILTER_FLAGS; 48cpp_quote("#define _IFILTER_FLAGS_DEFINED") 49cpp_quote("#endif") 50 51cpp_quote("#ifndef _tagCHUNKSTATE_DEFINED") 52cpp_quote("#define _tagCHUNKSTATE_DEFINED") 53typedef enum tagCHUNKSTATE { 54 CHUNK_TEXT = 0x1, 55 CHUNK_VALUE = 0x2, 56 CHUNK_FILTER_OWNED_VALUE = 0x4 57} CHUNKSTATE; 58cpp_quote("#define _CHUNKSTATE_DEFINED") 59cpp_quote("#endif") 60 61cpp_quote("#ifndef _tagCHUNK_BREAKTYPE_DEFINED") 62cpp_quote("#define _tagCHUNK_BREAKTYPE_DEFINED") 63typedef enum tagCHUNK_BREAKTYPE { 64 CHUNK_NO_BREAK = 0, 65 CHUNK_EOW = 1, 66 CHUNK_EOS = 2, 67 CHUNK_EOP = 3, 68 CHUNK_EOC = 4 69} CHUNK_BREAKTYPE; 70cpp_quote("#define _CHUNK_BREAKTYPE_DEFINED") 71cpp_quote("#endif") 72 73cpp_quote("#ifndef _tagFILTERREGION_DEFINED") 74cpp_quote("#define _tagFILTERREGION_DEFINED") 75typedef struct tagFILTERREGION { 76 ULONG idChunk; 77 ULONG cwcStart; 78 ULONG cwcExtent; 79} FILTERREGION; 80cpp_quote("#define _FILTERREGION_DEFINED") 81cpp_quote("#endif") 82 83cpp_quote("#ifndef _tagSTAT_CHUNK_DEFINED") 84cpp_quote("#define _tagSTAT_CHUNK_DEFINED") 85typedef struct tagSTAT_CHUNK { 86 ULONG idChunk; 87 CHUNK_BREAKTYPE breakType; 88 CHUNKSTATE flags; 89 LCID locale; 90 FULLPROPSPEC attribute; 91 ULONG idChunkSource; 92 ULONG cwcStartSource; 93 ULONG cwcLenSource; 94} STAT_CHUNK; 95cpp_quote("#define _STAT_CHUNK_DEFINED") 96cpp_quote("#endif") 97 98[object, uuid (89bcb740-6119-101a-BCB7-00dd010655af), pointer_default (unique)] 99interface IFilter : IUnknown { 100 SCODE Init ([in] ULONG grfFlags,[in] ULONG cAttributes,[in, size_is (cAttributes), unique] FULLPROPSPEC const *aAttributes,[out] ULONG *pFlags); 101 SCODE GetChunk ([out] STAT_CHUNK *pStat); 102 SCODE GetText ([in, out] ULONG *pcwcBuffer,[out, size_is (*pcwcBuffer)] WCHAR *awcBuffer); 103 SCODE GetValue ([out] PROPVARIANT **ppPropValue); 104 [local] SCODE BindRegion ([in] FILTERREGION origPos,[in] REFIID riid,[out] void **ppunk); 105} 106 107cpp_quote("#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */") 108