2 * Copyright 2019 Alistair Leslie-Hughes
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
23 typedef struct tagFULLPROPSPEC
31 uuid(89bcb740
-6119-101a
-bcb7
-00dd010655af
),
32 pointer_default(unique)
35 interface IFilter
: IUnknown
37 typedef enum tagIFILTER_INIT
39 IFILTER_INIT_CANON_PARAGRAPHS
= 1,
40 IFILTER_INIT_HARD_LINE_BREAKS
= 2,
41 IFILTER_INIT_CANON_HYPHENS
= 4,
42 IFILTER_INIT_CANON_SPACES
= 8,
43 IFILTER_INIT_APPLY_INDEX_ATTRIBUTES
= 16,
44 IFILTER_INIT_APPLY_OTHER_ATTRIBUTES
= 32,
45 IFILTER_INIT_INDEXING_ONLY
= 64,
46 IFILTER_INIT_SEARCH_LINKS
= 128,
47 IFILTER_INIT_APPLY_CRAWL_ATTRIBUTES
= 256,
48 IFILTER_INIT_FILTER_OWNED_VALUE_OK
= 512,
49 IFILTER_INIT_FILTER_AGGRESSIVE_BREAK
= 1024,
50 IFILTER_INIT_DISABLE_EMBEDDED
= 2048,
51 IFILTER_INIT_EMIT_FORMATTING
= 4096
54 typedef enum tagIFILTER_FLAGS
56 IFILTER_FLAGS_OLE_PROPERTIES
= 1
59 typedef enum tagCHUNKSTATE
63 CHUNK_FILTER_OWNED_VALUE
= 0x4
66 typedef enum tagCHUNK_BREAKTYPE
75 typedef struct tagFILTERREGION
82 typedef struct tagSTAT_CHUNK
85 CHUNK_BREAKTYPE breakType
;
88 FULLPROPSPEC attribute
;
94 SCODE Init
([in] ULONG flags
, [in] ULONG cnt
, [in, size_is(cnt
), unique] FULLPROPSPEC
const *attributes
, [out] ULONG
*out_flags
);
95 SCODE GetChunk
([out] STAT_CHUNK
*stat
);
96 SCODE GetText
([in, out] ULONG
*cnt
, [out, size_is(*cnt
)] WCHAR
*buffer
);
97 SCODE GetValue
([out] PROPVARIANT
**value
);
100 SCODE BindRegion
([in] FILTERREGION pos
, [in] REFIID riid
, [out] void **unk
);