• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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