21#include "vbsregexp55.h"
27#define REGEXP_TID_LIST \
30 XDIID(MatchCollection2), \
34#define XDIID(iface) iface ## _tid
41#define XDIID(iface) &IID_I ## iface
54 static const WCHAR vbscript_dll3W[] = {
'v',
'b',
's',
'c',
'r',
'i',
'p',
't',
'.',
'd',
'l',
'l',
'\\',
'3',0};
59 ERR(
"LoadRegTypeLib failed: %08x\n",
hres);
77 ITypeInfo_Release(ti);
107 IMatchCollection2 *
mc;
147 *
ppv = &
This->ISubMatches_iface;
150 *
ppv = &
This->ISubMatches_iface;
153 *
ppv = &
This->ISubMatches_iface;
208 FIXME(
"(%p)->(%u %u %p)\n",
This, iTInfo, lcid, ppTInfo);
218 rgszNames, cNames, lcid, rgDispId);
220 return ITypeInfo_GetIDsOfNames(
typeinfos[SubMatches_tid], rgszNames, cNames, rgDispId);
225 VARIANT *pVarResult, EXCEPINFO *pExcepInfo,
UINT *puArgErr)
230 lcid,
wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
232 return ITypeInfo_Invoke(
typeinfos[SubMatches_tid], iface, dispIdMember,
wFlags,
233 pDispParams, pVarResult, pExcepInfo, puArgErr);
249 if(
This->result->parens[
index].index == -1) {
276 *pCount =
This->result->paren_count;
310 ret = heap_alloc_zero(
sizeof(*
ret));
328 if(
result->parens[
i].index != -1)
393 ISubMatches_Release(&
This->sub_matches->ISubMatches_iface);
414 FIXME(
"(%p)->(%u %u %p)\n",
This, iTInfo, lcid, ppTInfo);
424 rgszNames, cNames, lcid, rgDispId);
426 return ITypeInfo_GetIDsOfNames(
typeinfos[Match2_tid], rgszNames, cNames, rgDispId);
431 VARIANT *pVarResult, EXCEPINFO *pExcepInfo,
UINT *puArgErr)
436 lcid,
wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
438 return ITypeInfo_Invoke(
typeinfos[Match2_tid], iface, dispIdMember,
wFlags,
439 pDispParams, pVarResult, pExcepInfo, puArgErr);
451 if(!
This->sub_matches->match) {
464 TRACE(
"(%p)->(%p)\n",
This, pFirstIndex);
469 *pFirstIndex =
This->index;
482 if(
This->sub_matches->result)
483 *pLength =
This->sub_matches->result->match_len;
493 TRACE(
"(%p)->(%p)\n",
This, ppSubMatches);
498 *ppSubMatches = (
IDispatch*)&
This->sub_matches->ISubMatches_iface;
499 ISubMatches_AddRef(&
This->sub_matches->ISubMatches_iface);
525 return IMatch2_QueryInterface(&
This->IMatch2_iface,
riid,
ppv);
531 return IMatch2_AddRef(&
This->IMatch2_iface);
537 return IMatch2_Release(&
This->IMatch2_iface);
543 return IMatch2_GetTypeInfoCount(&
This->IMatch2_iface, pctinfo);
549 return IMatch2_GetTypeInfo(&
This->IMatch2_iface, iTInfo, lcid, ppTInfo);
556 return IMatch2_GetIDsOfNames(&
This->IMatch2_iface,
riid, rgszNames, cNames, lcid, rgDispId);
561 VARIANT *pVarResult, EXCEPINFO *pExcepInfo,
UINT *puArgErr)
564 return IMatch2_Invoke(&
This->IMatch2_iface, dispIdMember,
riid, lcid,
565 wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
571 return IMatch2_get_Value(&
This->IMatch2_iface,
pValue);
577 return IMatch2_get_FirstIndex(&
This->IMatch2_iface, pFirstIndex);
583 return IMatch2_get_Length(&
This->IMatch2_iface, pLength);
608 ret = heap_alloc_zero(
sizeof(*
ret));
641 *
ppv = &
This->IEnumVARIANT_iface;
644 *
ppv = &
This->IEnumVARIANT_iface;
673 IMatchCollection2_Release(
This->mc);
687 TRACE(
"(%p)->(%u %p %p)\n",
This, celt, rgVar, pCeltFetched);
757 ret = heap_alloc_zero(
sizeof(*
ret));
764 IMatchCollection2_get_Count(mc, &
ret->count);
766 IMatchCollection2_AddRef(mc);
768 *enum_variant = &
ret->IEnumVARIANT_iface;
784 *
ppv = &
This->IMatchCollection2_iface;
787 *
ppv = &
This->IMatchCollection2_iface;
790 *
ppv = &
This->IMatchCollection2_iface;
793 *
ppv = &
This->IMatchCollection_iface;
829 IMatch2_Release(
This->matches[
i]);
852 FIXME(
"(%p)->(%u %u %p)\n",
This, iTInfo, lcid, ppTInfo);
862 rgszNames, cNames, lcid, rgDispId);
864 return ITypeInfo_GetIDsOfNames(
typeinfos[MatchCollection2_tid], rgszNames, cNames, rgDispId);
869 VARIANT *pVarResult, EXCEPINFO *pExcepInfo,
UINT *puArgErr)
874 lcid,
wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
876 return ITypeInfo_Invoke(
typeinfos[MatchCollection2_tid], iface, dispIdMember,
wFlags,
877 pDispParams, pVarResult, pExcepInfo, puArgErr);
907 *pCount =
This->count;
944 return IMatchCollection2_QueryInterface(&
This->IMatchCollection2_iface,
riid,
ppv);
950 return IMatchCollection2_AddRef(&
This->IMatchCollection2_iface);
956 return IMatchCollection2_Release(&
This->IMatchCollection2_iface);
962 return IMatchCollection2_GetTypeInfoCount(&
This->IMatchCollection2_iface, pctinfo);
969 return IMatchCollection2_GetTypeInfo(&
This->IMatchCollection2_iface, iTInfo, lcid, ppTInfo);
976 return IMatchCollection2_GetIDsOfNames(&
This->IMatchCollection2_iface,
977 riid, rgszNames, cNames, lcid, rgDispId);
982 EXCEPINFO *pExcepInfo,
UINT *puArgErr)
985 return IMatchCollection2_Invoke(&
This->IMatchCollection2_iface, dispIdMember,
986 riid, lcid,
wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
992 return IMatchCollection2_get_Item(&
This->IMatchCollection2_iface,
index, ppMatch);
998 return IMatchCollection2_get_Count(&
This->IMatchCollection2_iface, pCount);
1004 return IMatchCollection2_get__NewEnum(&
This->IMatchCollection2_iface, ppEnum);
1031 }
else if(
This->size ==
This->count) {
1036 This->matches = new_matches;
1040 This->matches[
This->count++] = add;
1041 IMatch2_AddRef(add);
1054 ret = heap_alloc_zero(
sizeof(*
ret));
1062 *match_collection = &
ret->IMatchCollection2_iface;
1143 FIXME(
"(%p)->(%u %u %p)\n",
This, iTInfo, lcid, ppTInfo);
1153 rgszNames, cNames, lcid, rgDispId);
1155 return ITypeInfo_GetIDsOfNames(
typeinfos[RegExp2_tid], rgszNames, cNames, rgDispId);
1160 VARIANT *pVarResult, EXCEPINFO *pExcepInfo,
UINT *puArgErr)
1165 lcid,
wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
1167 return ITypeInfo_Invoke(
typeinfos[RegExp2_tid], iface, dispIdMember,
wFlags,
1168 pDispParams, pVarResult, pExcepInfo, puArgErr);
1180 if(!
This->pattern) {
1207 This->pattern = new_pattern;
1220 TRACE(
"(%p)->(%p)\n",
This, pIgnoreCase);
1225 *pIgnoreCase =
This->flags &
REG_FOLD ? VARIANT_TRUE : VARIANT_FALSE;
1233 TRACE(
"(%p)->(%s)\n",
This, ignoreCase ?
"true" :
"false");
1238 This->flags &= ~REG_FOLD;
1251 *pGlobal =
This->flags &
REG_GLOB ? VARIANT_TRUE : VARIANT_FALSE;
1264 This->flags &= ~REG_GLOB;
1272 TRACE(
"(%p)->(%p)\n",
This, pMultiline);
1285 TRACE(
"(%p)->(%s)\n",
This, multiline ?
"true" :
"false");
1290 This->flags &= ~REG_MULTILINE;
1300 IMatchCollection2 *match_collection;
1301 IMatch2 *add =
NULL;
1306 if(!
This->pattern) {
1321 IMatch2_Release(add);
1328 IMatchCollection2_Release(match_collection);
1332 *ppMatches = (
IDispatch*)match_collection;
1372 IMatch2_Release(add);
1381 IMatchCollection2_Release(match_collection);
1385 *ppMatches = (
IDispatch*)match_collection;
1398 if(!
This->pattern) {
1399 *pMatch = VARIANT_TRUE;
1427 *pMatch = VARIANT_TRUE;
1429 *pMatch = VARIANT_FALSE;
1473 return IRegExp2_QueryInterface(&
This->IRegExp2_iface,
riid,
ppv);
1479 return IRegExp2_AddRef(&
This->IRegExp2_iface);
1485 return IRegExp2_Release(&
This->IRegExp2_iface);
1491 return IRegExp2_GetTypeInfoCount(&
This->IRegExp2_iface, pctinfo);
1498 return IRegExp2_GetTypeInfo(&
This->IRegExp2_iface, iTInfo, lcid, ppTInfo);
1505 return IRegExp2_GetIDsOfNames(&
This->IRegExp2_iface,
riid, rgszNames, cNames, lcid, rgDispId);
1510 VARIANT *pVarResult, EXCEPINFO *pExcepInfo,
UINT *puArgErr)
1513 return IRegExp2_Invoke(&
This->IRegExp2_iface, dispIdMember,
riid, lcid,
1514 wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
1520 return IRegExp2_get_Pattern(&
This->IRegExp2_iface, pPattern);
1526 return IRegExp2_put_Pattern(&
This->IRegExp2_iface, pPattern);
1532 return IRegExp2_get_IgnoreCase(&
This->IRegExp2_iface, pIgnoreCase);
1538 return IRegExp2_put_IgnoreCase(&
This->IRegExp2_iface, pIgnoreCase);
1544 return IRegExp2_get_Global(&
This->IRegExp2_iface, pGlobal);
1550 return IRegExp2_put_Global(&
This->IRegExp2_iface, pGlobal);
1557 return IRegExp2_Execute(&
This->IRegExp2_iface, sourceString, ppMatches);
1563 return IRegExp2_Test(&
This->IRegExp2_iface, sourceString, pMatch);
1567 BSTR replaceString,
BSTR *pDestString)
1574 return IRegExp2_Replace(&
This->IRegExp2_iface, sourceString,
replace, pDestString);
1605 regexp = heap_alloc_zero(
sizeof(*regexp));
1629 hres = IDispatch_QueryInterface(regexp,
riid,
ppv);
1630 IDispatch_Release(regexp);
static void * heap_alloc(size_t len)
static BOOL heap_free(void *mem)
static void * heap_realloc(void *mem, size_t len)
#define InterlockedIncrement
#define InterlockedDecrement
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
HRESULT WINAPI LoadTypeLib(const OLECHAR *szFile, ITypeLib **pptLib)
GLuint GLuint GLsizei count
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
#define InterlockedCompareExchangePointer
HRESULT regexp_execute(regexp_t *regexp, void *cx, heap_pool_t *pool, const WCHAR *str, DWORD str_len, match_state_t *result)
regexp_t * regexp_new(void *cx, heap_pool_t *pool, const WCHAR *str, DWORD str_len, WORD flags, BOOL flat)
void regexp_destroy(regexp_t *re)
static match_state_t * alloc_match_state(regexp_t *regexp, heap_pool_t *pool, const WCHAR *pos)
void heap_pool_clear(heap_pool_t *) DECLSPEC_HIDDEN
void heap_pool_free(heap_pool_t *) DECLSPEC_HIDDEN
heap_pool_t * heap_pool_mark(heap_pool_t *) DECLSPEC_HIDDEN
void heap_pool_init(heap_pool_t *) DECLSPEC_HIDDEN
#define memcpy(s1, s2, n)
static const char * debugstr_variant(const VARIANT *var)
static VARIANTARG static DISPID
BSTR WINAPI SysAllocString(LPCOLESTR str)
UINT WINAPI SysStringLen(BSTR str)
BSTR WINAPI SysAllocStringLen(const OLECHAR *str, unsigned int len)
#define IsEqualGUID(rguid1, rguid2)
INT replace(TCHAR source[MAX_PATH], TCHAR dest[MAX_PATH], DWORD dwFlags, BOOL *doMore)
IMatchCollection2 IMatchCollection2_iface
IMatchCollection IMatchCollection_iface
IEnumVARIANT IEnumVARIANT_iface
ISubMatches ISubMatches_iface
#define CONTAINING_RECORD(address, type, field)
HRESULT WINAPI DECLSPEC_HOTPATCH VariantClear(VARIANTARG *pVarg)
static HRESULT WINAPI RegExp2_QueryInterface(IRegExp2 *iface, REFIID riid, void **ppv)
static HRESULT WINAPI Match_GetIDsOfNames(IMatch *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
static MatchCollection2 * impl_from_IMatchCollection(IMatchCollection *iface)
HRESULT create_regexp(IDispatch **ret)
static MatchCollection2 * impl_from_IMatchCollection2(IMatchCollection2 *iface)
static IRegExpVtbl RegExpVtbl
static HRESULT WINAPI RegExp_GetIDsOfNames(IRegExp *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
static HRESULT WINAPI MatchCollection_GetTypeInfo(IMatchCollection *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
static HRESULT WINAPI Match2_get_SubMatches(IMatch2 *iface, IDispatch **ppSubMatches)
static const IEnumVARIANTVtbl MatchCollectionEnum_Vtbl
static HRESULT WINAPI SubMatches_GetTypeInfo(ISubMatches *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
static HRESULT add_match(IMatchCollection2 *iface, IMatch2 *add)
static ULONG WINAPI MatchCollectionEnum_AddRef(IEnumVARIANT *iface)
static HRESULT WINAPI MatchCollection2_GetIDsOfNames(IMatchCollection2 *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
static HRESULT WINAPI MatchCollection2_Invoke(IMatchCollection2 *iface, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
static ULONG WINAPI MatchCollection_Release(IMatchCollection *iface)
static HRESULT WINAPI RegExp2_GetTypeInfo(IRegExp2 *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
static HRESULT WINAPI RegExp2_GetIDsOfNames(IRegExp2 *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
static HRESULT WINAPI MatchCollectionEnum_Skip(IEnumVARIANT *iface, ULONG celt)
static const IMatchCollection2Vtbl MatchCollection2Vtbl
static HRESULT create_sub_matches(DWORD pos, match_state_t *result, SubMatches **sub_matches)
static HRESULT create_enum_variant_mc2(IMatchCollection2 *mc, ULONG pos, IEnumVARIANT **enum_variant)
static HRESULT WINAPI MatchCollectionEnum_QueryInterface(IEnumVARIANT *iface, REFIID riid, void **ppv)
static HRESULT WINAPI RegExp_get_Global(IRegExp *iface, VARIANT_BOOL *pGlobal)
static HRESULT WINAPI Match2_QueryInterface(IMatch2 *iface, REFIID riid, void **ppv)
static const IMatchCollectionVtbl MatchCollectionVtbl
static HRESULT WINAPI SubMatches_GetIDsOfNames(ISubMatches *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
static ITypeLib * typelib
static HRESULT WINAPI Match_get_FirstIndex(IMatch *iface, LONG *pFirstIndex)
static SubMatches * impl_from_ISubMatches(ISubMatches *iface)
static HRESULT WINAPI RegExp_Test(IRegExp *iface, BSTR sourceString, VARIANT_BOOL *pMatch)
static HRESULT WINAPI Match2_Invoke(IMatch2 *iface, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
static HRESULT WINAPI Match_QueryInterface(IMatch *iface, REFIID riid, void **ppv)
HRESULT WINAPI VBScriptRegExpFactory_CreateInstance(IClassFactory *iface, IUnknown *pUnkOuter, REFIID riid, void **ppv)
static HRESULT WINAPI RegExp2_put_Global(IRegExp2 *iface, VARIANT_BOOL global)
static ULONG WINAPI MatchCollection2_Release(IMatchCollection2 *iface)
static HRESULT WINAPI Match2_get_FirstIndex(IMatch2 *iface, LONG *pFirstIndex)
static HRESULT WINAPI RegExp_QueryInterface(IRegExp *iface, REFIID riid, void **ppv)
static HRESULT WINAPI RegExp_Execute(IRegExp *iface, BSTR sourceString, IDispatch **ppMatches)
static HRESULT WINAPI RegExp2_Invoke(IRegExp2 *iface, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
static HRESULT WINAPI MatchCollection_GetTypeInfoCount(IMatchCollection *iface, UINT *pctinfo)
static HRESULT WINAPI SubMatches_get_Count(ISubMatches *iface, LONG *pCount)
static const IMatch2Vtbl Match2Vtbl
static ULONG WINAPI Match2_Release(IMatch2 *iface)
static Match2 * impl_from_IMatch2(IMatch2 *iface)
static HRESULT WINAPI MatchCollection_QueryInterface(IMatchCollection *iface, REFIID riid, void **ppv)
static HRESULT WINAPI MatchCollection2_GetTypeInfoCount(IMatchCollection2 *iface, UINT *pctinfo)
static HRESULT WINAPI MatchCollection_GetIDsOfNames(IMatchCollection *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
static ULONG WINAPI MatchCollection_AddRef(IMatchCollection *iface)
static HRESULT WINAPI RegExp2_put_IgnoreCase(IRegExp2 *iface, VARIANT_BOOL ignoreCase)
static HRESULT WINAPI Match2_GetTypeInfoCount(IMatch2 *iface, UINT *pctinfo)
static HRESULT WINAPI RegExp2_Execute(IRegExp2 *iface, BSTR sourceString, IDispatch **ppMatches)
static HRESULT WINAPI RegExp_put_Pattern(IRegExp *iface, BSTR pPattern)
static ULONG WINAPI RegExp_AddRef(IRegExp *iface)
static ULONG WINAPI SubMatches_AddRef(ISubMatches *iface)
static HRESULT WINAPI RegExp_Invoke(IRegExp *iface, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
static HRESULT WINAPI MatchCollectionEnum_Clone(IEnumVARIANT *iface, IEnumVARIANT **ppEnum)
static HRESULT WINAPI RegExp_get_IgnoreCase(IRegExp *iface, VARIANT_BOOL *pIgnoreCase)
static HRESULT WINAPI SubMatches_get_Item(ISubMatches *iface, LONG index, VARIANT *pSubMatch)
static Match2 * impl_from_IMatch(IMatch *iface)
static IMatchVtbl MatchVtbl
static HRESULT WINAPI Match_get_Value(IMatch *iface, BSTR *pValue)
static HRESULT WINAPI RegExp2_get_Multiline(IRegExp2 *iface, VARIANT_BOOL *pMultiline)
static HRESULT WINAPI MatchCollection2_get_Count(IMatchCollection2 *iface, LONG *pCount)
static HRESULT WINAPI RegExp2_put_Pattern(IRegExp2 *iface, BSTR pattern)
static HRESULT WINAPI Match2_GetTypeInfo(IMatch2 *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
static RegExp2 * impl_from_IRegExp(IRegExp *iface)
static HRESULT WINAPI Match_GetTypeInfoCount(IMatch *iface, UINT *pctinfo)
static HRESULT WINAPI MatchCollectionEnum_Next(IEnumVARIANT *iface, ULONG celt, VARIANT *rgVar, ULONG *pCeltFetched)
static HRESULT WINAPI Match_GetTypeInfo(IMatch *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
static HRESULT WINAPI MatchCollection2_get_Item(IMatchCollection2 *iface, LONG index, IDispatch **ppMatch)
static HRESULT WINAPI RegExp2_Test(IRegExp2 *iface, BSTR sourceString, VARIANT_BOOL *pMatch)
static HRESULT WINAPI RegExp2_get_IgnoreCase(IRegExp2 *iface, VARIANT_BOOL *pIgnoreCase)
static HRESULT WINAPI RegExp_put_Global(IRegExp *iface, VARIANT_BOOL pGlobal)
static HRESULT WINAPI RegExp_put_IgnoreCase(IRegExp *iface, VARIANT_BOOL pIgnoreCase)
static HRESULT WINAPI MatchCollection_get__NewEnum(IMatchCollection *iface, IUnknown **ppEnum)
static HRESULT WINAPI RegExp2_get_Pattern(IRegExp2 *iface, BSTR *pPattern)
static HRESULT WINAPI Match_Invoke(IMatch *iface, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
static ULONG WINAPI Match_Release(IMatch *iface)
static RegExp2 * impl_from_IRegExp2(IRegExp2 *iface)
static HRESULT WINAPI MatchCollectionEnum_Reset(IEnumVARIANT *iface)
static HRESULT WINAPI SubMatches_Invoke(ISubMatches *iface, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
static HRESULT WINAPI RegExp2_Replace(IRegExp2 *iface, BSTR sourceString, VARIANT replaceVar, BSTR *pDestString)
static HRESULT WINAPI Match2_get_Length(IMatch2 *iface, LONG *pLength)
static HRESULT WINAPI RegExp2_get_Global(IRegExp2 *iface, VARIANT_BOOL *pGlobal)
static HRESULT WINAPI Match_get_Length(IMatch *iface, LONG *pLength)
static ITypeInfo * typeinfos[REGEXP_LAST_tid]
static ULONG WINAPI MatchCollectionEnum_Release(IEnumVARIANT *iface)
static HRESULT WINAPI RegExp_Replace(IRegExp *iface, BSTR sourceString, BSTR replaceString, BSTR *pDestString)
static HRESULT WINAPI RegExp_GetTypeInfoCount(IRegExp *iface, UINT *pctinfo)
static HRESULT WINAPI MatchCollection2_get__NewEnum(IMatchCollection2 *iface, IUnknown **ppEnum)
static const IRegExp2Vtbl RegExp2Vtbl
static ULONG WINAPI RegExp_Release(IRegExp *iface)
void release_regexp_typelib(void)
static HRESULT WINAPI RegExp_get_Pattern(IRegExp *iface, BSTR *pPattern)
static HRESULT WINAPI RegExp_GetTypeInfo(IRegExp *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
static HRESULT init_regexp_typeinfo(regexp_tid_t tid)
static HRESULT WINAPI SubMatches_get__NewEnum(ISubMatches *iface, IUnknown **ppEnum)
static HRESULT WINAPI MatchCollection_get_Item(IMatchCollection *iface, LONG index, IDispatch **ppMatch)
static HRESULT WINAPI MatchCollection2_QueryInterface(IMatchCollection2 *iface, REFIID riid, void **ppv)
static HRESULT WINAPI RegExp2_put_Multiline(IRegExp2 *iface, VARIANT_BOOL multiline)
static ULONG WINAPI Match2_AddRef(IMatch2 *iface)
static HRESULT WINAPI MatchCollection2_GetTypeInfo(IMatchCollection2 *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
static HRESULT WINAPI RegExp2_GetTypeInfoCount(IRegExp2 *iface, UINT *pctinfo)
static HRESULT WINAPI SubMatches_QueryInterface(ISubMatches *iface, REFIID riid, void **ppv)
static ULONG WINAPI MatchCollection2_AddRef(IMatchCollection2 *iface)
static const ISubMatchesVtbl SubMatchesVtbl
static HRESULT create_match2(DWORD pos, match_state_t **result, IMatch2 **match)
static HRESULT WINAPI MatchCollection_get_Count(IMatchCollection *iface, LONG *pCount)
static HRESULT WINAPI SubMatches_GetTypeInfoCount(ISubMatches *iface, UINT *pctinfo)
static ULONG WINAPI RegExp2_AddRef(IRegExp2 *iface)
static ULONG WINAPI Match_AddRef(IMatch *iface)
static ULONG WINAPI RegExp2_Release(IRegExp2 *iface)
static HRESULT WINAPI Match2_get_Value(IMatch2 *iface, BSTR *pValue)
static ULONG WINAPI SubMatches_Release(ISubMatches *iface)
static HRESULT create_match_collection2(IMatchCollection2 **match_collection)
static MatchCollectionEnum * impl_from_IMatchCollectionEnum(IEnumVARIANT *iface)
static HRESULT WINAPI MatchCollection_Invoke(IMatchCollection *iface, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
static HRESULT WINAPI Match2_GetIDsOfNames(IMatch2 *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
HRESULT regexp_set_flags(regexp_t **regexp, void *cx, heap_pool_t *pool, WORD flags)
_In_ DWORD _Out_ _In_ WORD wFlags