1/*
2 * Copyright 2013 Piotr Caban for CodeWeavers
3 *
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.
8 *
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.
13 *
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
17 */
18
19#pragma makedep header
20
21import "oaidl.idl";
22
23#include "vbscript_defs.h"
24
25[
26    helpstring("Microsoft VBScript Regular Expressions 5.5"),
27    id(3),
28    uuid(3f4daca7-160d-11d2-a8e9-00104b365c9f),
29    version(5.5)
30]
31library VBScript_RegExp_55
32{
33    importlib("stdole2.tlb");
34
35    [
36        dual,
37        hidden,
38        nonextensible,
39        odl,
40        oleautomation,
41        uuid(3f4daca0-160d-11d2-a8e9-00104b365c9f),
42    ]
43    interface IRegExp : IDispatch
44    {
45        [id(DISPID_REGEXP_PATTERN), propget]
46        HRESULT Pattern([out, retval] BSTR *pPattern);
47
48        [id(DISPID_REGEXP_PATTERN), propput]
49        HRESULT Pattern([in] BSTR pPattern);
50
51        [id(DISPID_REGEXP_IGNORECASE), propget]
52        HRESULT IgnoreCase([out, retval] VARIANT_BOOL *pIgnoreCase);
53
54        [id(DISPID_REGEXP_IGNORECASE), propput]
55        HRESULT IgnoreCase([in] VARIANT_BOOL pIgnoreCase);
56
57        [id(DISPID_REGEXP_GLOBAL), propget]
58        HRESULT Global([out, retval] VARIANT_BOOL *pGlobal);
59
60        [id(DISPID_REGEXP_GLOBAL), propput]
61        HRESULT Global([in] VARIANT_BOOL pGlobal);
62
63        [id(DISPID_REGEXP_EXECUTE)]
64        HRESULT Execute(
65                [in] BSTR sourceString,
66                [out, retval] IDispatch **ppMatches);
67
68        [id(DISPID_REGEXP_TEST)]
69        HRESULT Test(
70                [in] BSTR sourceString,
71                [out, retval] VARIANT_BOOL *pMatch);
72
73        [id(DISPID_REGEXP_REPLACE)]
74        HRESULT Replace(
75                [in] BSTR sourceString,
76                [in] BSTR replaceString,
77                [out, retval] BSTR *pDestString);
78    }
79
80    [
81        dual,
82        hidden,
83        nonextensible,
84        odl,
85        oleautomation,
86        uuid(3f4dacb0-160d-11d2-a8e9-00104b365c9f)
87    ]
88    interface IRegExp2 : IDispatch
89    {
90        [id(DISPID_REGEXP_PATTERN), propget]
91        HRESULT Pattern([out, retval] BSTR *pPattern);
92
93        [id(DISPID_REGEXP_PATTERN), propput]
94        HRESULT Pattern([in] BSTR pPattern);
95
96        [id(DISPID_REGEXP_IGNORECASE), propget]
97        HRESULT IgnoreCase([out, retval] VARIANT_BOOL *pIgnoreCase);
98
99        [id(DISPID_REGEXP_IGNORECASE), propput]
100        HRESULT IgnoreCase([in] VARIANT_BOOL pIgnoreCase);
101
102        [id(DISPID_REGEXP_GLOBAL), propget]
103        HRESULT Global([out, retval] VARIANT_BOOL *pGlobal);
104
105        [id(DISPID_REGEXP_GLOBAL), propput]
106        HRESULT Global([in] VARIANT_BOOL pGlobal);
107
108        [id(DISPID_REGEXP_MULTILINE), propget]
109        HRESULT Multiline([out, retval] VARIANT_BOOL *pMultiline);
110
111        [id(DISPID_REGEXP_MULTILINE), propput]
112        HRESULT Multiline([in] VARIANT_BOOL pMultiline);
113
114        [id(DISPID_REGEXP_EXECUTE)]
115        HRESULT Execute(
116                [in] BSTR sourceString,
117                [out, retval] IDispatch **ppMatches);
118
119        [id(DISPID_REGEXP_TEST)]
120        HRESULT Test(
121                [in] BSTR sourceString,
122                [out, retval] VARIANT_BOOL *pMatch);
123
124        [id(DISPID_REGEXP_REPLACE)]
125        HRESULT Replace(
126                [in] BSTR sourceString,
127                [in] VARIANT replaceVar,
128                [out, retval] BSTR *pDestString);
129    }
130
131    [
132        dual,
133        hidden,
134        nonextensible,
135        odl,
136        oleautomation,
137        uuid(3f4daca1-160d-11d2-a8e9-00104b365c9f)
138    ]
139    interface IMatch : IDispatch
140    {
141        [id(DISPID_VALUE), propget]
142        HRESULT Value([out, retval] BSTR *pValue);
143
144        [id(DISPID_MATCH_FIRSTINDEX), propget]
145        HRESULT FirstIndex([out, retval] LONG *pFirstIndex);
146
147        [id(DISPID_MATCH_LENGTH), propget]
148        HRESULT Length([out, retval] LONG *pLength);
149    }
150
151    [
152        odl,
153        uuid(3f4dacb1-160d-11d2-a8e9-00104b365c9f),
154        hidden,
155        dual,
156        nonextensible,
157        oleautomation
158    ]
159    interface IMatch2 : IDispatch
160    {
161        [id(DISPID_VALUE), propget]
162        HRESULT Value([out, retval] BSTR *pValue);
163
164        [id(DISPID_MATCH_FIRSTINDEX), propget]
165        HRESULT FirstIndex([out, retval] LONG *pFirstIndex);
166
167        [id(DISPID_MATCH_LENGTH), propget]
168        HRESULT Length([out, retval] LONG *pLength);
169
170        [id(DISPID_MATCH_SUBMATCHES), propget]
171        HRESULT SubMatches([out, retval] IDispatch **ppSubMatches);
172    }
173
174    [
175        dual,
176        hidden,
177        nonextensible,
178        odl,
179        oleautomation,
180        uuid(3f4daca2-160d-11d2-a8e9-00104b365c9f)
181    ]
182    interface IMatchCollection : IDispatch
183    {
184        [id(DISPID_VALUE), propget]
185        HRESULT Item(
186                [in] LONG index,
187                [out, retval] IDispatch **ppMatch);
188
189        [id(DISPID_MATCHCOLLECTION_COUNT), propget]
190        HRESULT Count([out, retval] LONG *pCount);
191
192        [id(DISPID_NEWENUM), propget]
193        HRESULT _NewEnum([out, retval] IUnknown **ppEnum);
194    }
195
196    [
197        dual,
198        hidden,
199        nonextensible,
200        odl,
201        oleautomation,
202        uuid(3f4dacb2-160d-11d2-a8e9-00104b365c9f)
203    ]
204    interface IMatchCollection2 : IDispatch
205    {
206        [id(DISPID_VALUE), propget]
207        HRESULT Item(
208                [in] LONG index,
209                [out, retval] IDispatch **ppMatch);
210
211        [id(DISPID_MATCHCOLLECTION_COUNT), propget]
212        HRESULT Count([out, retval] LONG *pCount);
213
214        [id(DISPID_NEWENUM), propget]
215        HRESULT _NewEnum([out, retval] IUnknown **ppEnum);
216    }
217
218    [
219        dual,
220        hidden,
221        nonextensible,
222        odl,
223        oleautomation,
224        uuid(3f4dacb3-160d-11d2-a8e9-00104b365c9f)
225    ]
226    interface ISubMatches : IDispatch
227    {
228        [id(DISPID_VALUE), propget]
229        HRESULT Item(
230                [in] LONG index,
231                [out, retval] VARIANT *pSubMatch);
232
233        [id(DISPID_SUBMATCHES_COUNT), propget]
234        HRESULT Count([out, retval] LONG *pCount);
235
236        [id(DISPID_NEWENUM), propget]
237        HRESULT _NewEnum([out, retval] IUnknown **ppEnum);
238    }
239
240    [
241        uuid(3f4daca4-160d-11d2-a8e9-00104b365c9f)
242    ]
243    coclass RegExp
244    {
245        [default] interface IRegExp2;
246    }
247
248    [
249        noncreatable,
250        uuid(3f4daca5-160d-11d2-a8e9-00104b365c9f)
251    ]
252    coclass Match
253    {
254        [default] interface IMatch2;
255    }
256
257    [
258        noncreatable,
259        uuid(3f4daca6-160d-11d2-a8e9-00104b365c9f)
260    ]
261    coclass MatchCollection
262    {
263        [default] interface IMatchCollection2;
264    }
265
266    [
267        noncreatable,
268        uuid(3f4dacc0-160d-11d2-a8e9-00104b365c9f)
269    ]
270    coclass SubMatches {
271        [default] interface ISubMatches;
272    }
273}
274