21#include "vbsregexp55.h"
28#define REGEXP_TID_LIST \
31 XDIID(MatchCollection2), \
35#define XDIID(iface) iface ## _tid
42#define XDIID(iface) &IID_I ## iface
59 ERR(
"LoadRegTypeLib failed: %08lx\n",
hres);
77 ITypeInfo_Release(ti);
107 IMatchCollection2 *
mc;
147 *
ppv = &
This->ISubMatches_iface;
150 *
ppv = &
This->ISubMatches_iface;
153 *
ppv = &
This->ISubMatches_iface;
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;
328 if(
result->parens[
i].index != -1)
393 ISubMatches_Release(&
This->sub_matches->ISubMatches_iface);
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);
641 *
ppv = &
This->IEnumVARIANT_iface;
644 *
ppv = &
This->IEnumVARIANT_iface;
673 IMatchCollection2_Release(
This->mc);
687 TRACE(
"(%p)->(%lu %p %p)\n",
This, celt, rgVar, pCeltFetched);
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]);
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);
1062 *match_collection = &
ret->IMatchCollection2_iface;
1147 ITypeInfo_AddRef(*ppTInfo);
1157 rgszNames, cNames,
lcid, rgDispId);
1159 return ITypeInfo_GetIDsOfNames(
typeinfos[RegExp2_tid], rgszNames, cNames, rgDispId);
1164 VARIANT *pVarResult, EXCEPINFO *pExcepInfo,
UINT *puArgErr)
1169 lcid,
wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
1171 return ITypeInfo_Invoke(
typeinfos[RegExp2_tid], iface, dispIdMember,
wFlags,
1172 pDispParams, pVarResult, pExcepInfo, puArgErr);
1184 if(!
This->pattern) {
1211 This->pattern = new_pattern;
1224 TRACE(
"(%p)->(%p)\n",
This, pIgnoreCase);
1229 *pIgnoreCase =
This->flags &
REG_FOLD ? VARIANT_TRUE : VARIANT_FALSE;
1237 TRACE(
"(%p)->(%s)\n",
This, ignoreCase ?
"true" :
"false");
1242 This->flags &= ~REG_FOLD;
1255 *pGlobal =
This->flags &
REG_GLOB ? VARIANT_TRUE : VARIANT_FALSE;
1268 This->flags &= ~REG_GLOB;
1276 TRACE(
"(%p)->(%p)\n",
This, pMultiline);
1289 TRACE(
"(%p)->(%s)\n",
This, multiline ?
"true" :
"false");
1294 This->flags &= ~REG_MULTILINE;
1304 IMatchCollection2 *match_collection;
1305 IMatch2 *add =
NULL;
1310 if(!
This->pattern) {
1323 IMatch2_Release(add);
1332 IMatchCollection2_Release(match_collection);
1336 *ppMatches = (
IDispatch*)match_collection;
1376 IMatch2_Release(add);
1385 IMatchCollection2_Release(match_collection);
1389 *ppMatches = (
IDispatch*)match_collection;
1402 if(!
This->pattern) {
1403 *pMatch = VARIANT_TRUE;
1431 *pMatch = VARIANT_TRUE;
1433 *pMatch = VARIANT_FALSE;
1450 if(len <= buf->
size)
1485 size_t match_len = 0, source_len, replace_len;
1527 match_len =
state->match_len;
1576 }
else if(
idx && idx <= state->paren_count) {
1584 if(
state->parens[
idx - 1].index != -1)
1639 size_t replace_len, find_len;
1650 while(string_end -
ptr >= find_len &&
cnt && find_len) {
1688 return IRegExp2_QueryInterface(&
This->IRegExp2_iface,
riid,
ppv);
1694 return IRegExp2_AddRef(&
This->IRegExp2_iface);
1700 return IRegExp2_Release(&
This->IRegExp2_iface);
1706 return IRegExp2_GetTypeInfoCount(&
This->IRegExp2_iface, pctinfo);
1713 return IRegExp2_GetTypeInfo(&
This->IRegExp2_iface, iTInfo,
lcid, ppTInfo);
1720 return IRegExp2_GetIDsOfNames(&
This->IRegExp2_iface,
riid, rgszNames, cNames,
lcid, rgDispId);
1725 VARIANT *pVarResult, EXCEPINFO *pExcepInfo,
UINT *puArgErr)
1728 return IRegExp2_Invoke(&
This->IRegExp2_iface, dispIdMember,
riid,
lcid,
1729 wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
1735 return IRegExp2_get_Pattern(&
This->IRegExp2_iface, pPattern);
1741 return IRegExp2_put_Pattern(&
This->IRegExp2_iface, pPattern);
1747 return IRegExp2_get_IgnoreCase(&
This->IRegExp2_iface, pIgnoreCase);
1753 return IRegExp2_put_IgnoreCase(&
This->IRegExp2_iface, pIgnoreCase);
1759 return IRegExp2_get_Global(&
This->IRegExp2_iface, pGlobal);
1765 return IRegExp2_put_Global(&
This->IRegExp2_iface, pGlobal);
1772 return IRegExp2_Execute(&
This->IRegExp2_iface, sourceString, ppMatches);
1778 return IRegExp2_Test(&
This->IRegExp2_iface, sourceString, pMatch);
1782 BSTR replaceString,
BSTR *pDestString)
1789 return IRegExp2_Replace(&
This->IRegExp2_iface, sourceString,
replace, pDestString);
1820 regexp =
calloc(1,
sizeof(*regexp));
1844 hres = IDispatch_QueryInterface(regexp,
riid,
ppv);
1845 IDispatch_Release(regexp);
#define InterlockedIncrement
#define InterlockedDecrement
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
static match_state_t * alloc_match_state(regexp_t *regexp, heap_pool_t *pool, const WCHAR *pos)
INT WINAPI DECLSPEC_HOTPATCH FindStringOrdinal(DWORD flag, const WCHAR *src, INT src_size, const WCHAR *val, INT val_size, BOOL ignore_case)
static wchar_t * wmemchr(const wchar_t *s, wchar_t c, size_t n)
HRESULT WINAPI LoadTypeLib(const OLECHAR *szFile, ITypeLib **pptLib)
static const char * debugstr_variant(const VARIANT *var)
GLuint GLuint GLsizei count
GLenum GLuint GLenum GLsizei const GLchar * buf
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)
void heap_pool_clear(heap_pool_t *)
heap_pool_t * heap_pool_mark(heap_pool_t *)
void heap_pool_init(heap_pool_t *)
void heap_pool_free(heap_pool_t *)
#define memcpy(s1, s2, n)
static VARIANTARG static DISPID
BSTR WINAPI SysAllocString(LPCOLESTR str)
UINT WINAPI SysStringLen(BSTR str)
void WINAPI DECLSPEC_HOTPATCH SysFreeString(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 VariantChangeType(VARIANTARG *pvargDest, VARIANTARG *pvargSrc, USHORT wFlags, VARTYPE vt)
HRESULT WINAPI DECLSPEC_HOTPATCH VariantClear(VARIANTARG *pVarg)
static HRESULT WINAPI RegExp2_QueryInterface(IRegExp2 *iface, REFIID riid, void **ppv)
static BOOL strbuf_ensure_size(strbuf_t *buf, unsigned len)
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)
BSTR string_replace(BSTR string, BSTR find, BSTR replace, int from, int cnt, int mode)
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 HRESULT strbuf_append(strbuf_t *buf, const WCHAR *str, DWORD len)
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 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 HRESULT WINAPI RegExp2_Replace(IRegExp2 *iface, BSTR source, VARIANT replaceVar, BSTR *ret)
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)
WINBASEAPI _In_ DWORD _Out_ _In_ WORD wFlags