riched20: Use cell ptrs in the rtf parsing code.
[wine/zf.git] / include / filter.idl
blobf176ac3be5ea7903260fad49c282a99739a32650
1 /*
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
19 import "unknwn.idl";
20 import "objidl.idl";
21 import "propidl.idl";
23 typedef struct tagFULLPROPSPEC
25 GUID guidPropSet;
26 PROPSPEC psProperty;
27 } FULLPROPSPEC;
30 object,
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
52 } IFILTER_INIT;
54 typedef enum tagIFILTER_FLAGS
56 IFILTER_FLAGS_OLE_PROPERTIES = 1
57 } IFILTER_FLAGS;
59 typedef enum tagCHUNKSTATE
61 CHUNK_TEXT = 0x1,
62 CHUNK_VALUE = 0x2,
63 CHUNK_FILTER_OWNED_VALUE = 0x4
64 } CHUNKSTATE;
66 typedef enum tagCHUNK_BREAKTYPE
68 CHUNK_NO_BREAK = 0,
69 CHUNK_EOW = 1,
70 CHUNK_EOS = 2,
71 CHUNK_EOP = 3,
72 CHUNK_EOC = 4
73 } CHUNK_BREAKTYPE;
75 typedef struct tagFILTERREGION
77 ULONG idChunk;
78 ULONG cwcStart;
79 ULONG cwcExtent;
80 } FILTERREGION;
82 typedef struct tagSTAT_CHUNK
84 ULONG idChunk;
85 CHUNK_BREAKTYPE breakType;
86 CHUNKSTATE flags;
87 LCID locale;
88 FULLPROPSPEC attribute;
89 ULONG idChunkSource;
90 ULONG cwcStartSource;
91 ULONG cwcLenSource;
92 } STAT_CHUNK;
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);
99 [local]
100 SCODE BindRegion([in] FILTERREGION pos, [in] REFIID riid, [out] void **unk);