1*c2c66affSColin Finck/* 2*c2c66affSColin Finck * Copyright 2013 Piotr Caban for CodeWeavers 3*c2c66affSColin Finck * 4*c2c66affSColin Finck * This library is free software; you can redistribute it and/or 5*c2c66affSColin Finck * modify it under the terms of the GNU Lesser General Public 6*c2c66affSColin Finck * License as published by the Free Software Foundation; either 7*c2c66affSColin Finck * version 2.1 of the License, or (at your option) any later version. 8*c2c66affSColin Finck * 9*c2c66affSColin Finck * This library is distributed in the hope that it will be useful, 10*c2c66affSColin Finck * but WITHOUT ANY WARRANTY; without even the implied warranty of 11*c2c66affSColin Finck * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12*c2c66affSColin Finck * Lesser General Public License for more details. 13*c2c66affSColin Finck * 14*c2c66affSColin Finck * You should have received a copy of the GNU Lesser General Public 15*c2c66affSColin Finck * License along with this library; if not, write to the Free Software 16*c2c66affSColin Finck * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 17*c2c66affSColin Finck */ 18*c2c66affSColin Finck 19*c2c66affSColin Finck#pragma makedep regtypelib 20*c2c66affSColin Finck 21*c2c66affSColin Finckimport "oaidl.idl"; 22*c2c66affSColin Finck 23*c2c66affSColin Finck#include "vbscript_defs.h" 24*c2c66affSColin Finck 25*c2c66affSColin Finck[ 26*c2c66affSColin Finck helpstring("Microsoft VBScript Regular Expressions 5.5"), 27*c2c66affSColin Finck uuid(3f4daca7-160d-11d2-a8e9-00104b365c9f), 28*c2c66affSColin Finck version(5.5) 29*c2c66affSColin Finck] 30*c2c66affSColin Fincklibrary VBScript_RegExp_55 31*c2c66affSColin Finck{ 32*c2c66affSColin Finck importlib("stdole2.tlb"); 33*c2c66affSColin Finck 34*c2c66affSColin Finck [ 35*c2c66affSColin Finck dual, 36*c2c66affSColin Finck hidden, 37*c2c66affSColin Finck nonextensible, 38*c2c66affSColin Finck odl, 39*c2c66affSColin Finck oleautomation, 40*c2c66affSColin Finck uuid(3f4daca0-160d-11d2-a8e9-00104b365c9f), 41*c2c66affSColin Finck ] 42*c2c66affSColin Finck interface IRegExp : IDispatch 43*c2c66affSColin Finck { 44*c2c66affSColin Finck [id(DISPID_REGEXP_PATTERN), propget] 45*c2c66affSColin Finck HRESULT Pattern([out, retval] BSTR *pPattern); 46*c2c66affSColin Finck 47*c2c66affSColin Finck [id(DISPID_REGEXP_PATTERN), propput] 48*c2c66affSColin Finck HRESULT Pattern([in] BSTR pPattern); 49*c2c66affSColin Finck 50*c2c66affSColin Finck [id(DISPID_REGEXP_IGNORECASE), propget] 51*c2c66affSColin Finck HRESULT IgnoreCase([out, retval] VARIANT_BOOL *pIgnoreCase); 52*c2c66affSColin Finck 53*c2c66affSColin Finck [id(DISPID_REGEXP_IGNORECASE), propput] 54*c2c66affSColin Finck HRESULT IgnoreCase([in] VARIANT_BOOL pIgnoreCase); 55*c2c66affSColin Finck 56*c2c66affSColin Finck [id(DISPID_REGEXP_GLOBAL), propget] 57*c2c66affSColin Finck HRESULT Global([out, retval] VARIANT_BOOL *pGlobal); 58*c2c66affSColin Finck 59*c2c66affSColin Finck [id(DISPID_REGEXP_GLOBAL), propput] 60*c2c66affSColin Finck HRESULT Global([in] VARIANT_BOOL pGlobal); 61*c2c66affSColin Finck 62*c2c66affSColin Finck [id(DISPID_REGEXP_EXECUTE)] 63*c2c66affSColin Finck HRESULT Execute( 64*c2c66affSColin Finck [in] BSTR sourceString, 65*c2c66affSColin Finck [out, retval] IDispatch **ppMatches); 66*c2c66affSColin Finck 67*c2c66affSColin Finck [id(DISPID_REGEXP_TEST)] 68*c2c66affSColin Finck HRESULT Test( 69*c2c66affSColin Finck [in] BSTR sourceString, 70*c2c66affSColin Finck [out, retval] VARIANT_BOOL *pMatch); 71*c2c66affSColin Finck 72*c2c66affSColin Finck [id(DISPID_REGEXP_REPLACE)] 73*c2c66affSColin Finck HRESULT Replace( 74*c2c66affSColin Finck [in] BSTR sourceString, 75*c2c66affSColin Finck [in] BSTR replaceString, 76*c2c66affSColin Finck [out, retval] BSTR *pDestString); 77*c2c66affSColin Finck } 78*c2c66affSColin Finck 79*c2c66affSColin Finck [ 80*c2c66affSColin Finck dual, 81*c2c66affSColin Finck hidden, 82*c2c66affSColin Finck nonextensible, 83*c2c66affSColin Finck odl, 84*c2c66affSColin Finck oleautomation, 85*c2c66affSColin Finck uuid(3f4dacb0-160d-11d2-a8e9-00104b365c9f) 86*c2c66affSColin Finck ] 87*c2c66affSColin Finck interface IRegExp2 : IDispatch 88*c2c66affSColin Finck { 89*c2c66affSColin Finck [id(DISPID_REGEXP_PATTERN), propget] 90*c2c66affSColin Finck HRESULT Pattern([out, retval] BSTR *pPattern); 91*c2c66affSColin Finck 92*c2c66affSColin Finck [id(DISPID_REGEXP_PATTERN), propput] 93*c2c66affSColin Finck HRESULT Pattern([in] BSTR pPattern); 94*c2c66affSColin Finck 95*c2c66affSColin Finck [id(DISPID_REGEXP_IGNORECASE), propget] 96*c2c66affSColin Finck HRESULT IgnoreCase([out, retval] VARIANT_BOOL *pIgnoreCase); 97*c2c66affSColin Finck 98*c2c66affSColin Finck [id(DISPID_REGEXP_IGNORECASE), propput] 99*c2c66affSColin Finck HRESULT IgnoreCase([in] VARIANT_BOOL pIgnoreCase); 100*c2c66affSColin Finck 101*c2c66affSColin Finck [id(DISPID_REGEXP_GLOBAL), propget] 102*c2c66affSColin Finck HRESULT Global([out, retval] VARIANT_BOOL *pGlobal); 103*c2c66affSColin Finck 104*c2c66affSColin Finck [id(DISPID_REGEXP_GLOBAL), propput] 105*c2c66affSColin Finck HRESULT Global([in] VARIANT_BOOL pGlobal); 106*c2c66affSColin Finck 107*c2c66affSColin Finck [id(DISPID_REGEXP_MULTILINE), propget] 108*c2c66affSColin Finck HRESULT Multiline([out, retval] VARIANT_BOOL *pMultiline); 109*c2c66affSColin Finck 110*c2c66affSColin Finck [id(DISPID_REGEXP_MULTILINE), propput] 111*c2c66affSColin Finck HRESULT Multiline([in] VARIANT_BOOL pMultiline); 112*c2c66affSColin Finck 113*c2c66affSColin Finck [id(DISPID_REGEXP_EXECUTE)] 114*c2c66affSColin Finck HRESULT Execute( 115*c2c66affSColin Finck [in] BSTR sourceString, 116*c2c66affSColin Finck [out, retval] IDispatch **ppMatches); 117*c2c66affSColin Finck 118*c2c66affSColin Finck [id(DISPID_REGEXP_TEST)] 119*c2c66affSColin Finck HRESULT Test( 120*c2c66affSColin Finck [in] BSTR sourceString, 121*c2c66affSColin Finck [out, retval] VARIANT_BOOL *pMatch); 122*c2c66affSColin Finck 123*c2c66affSColin Finck [id(DISPID_REGEXP_REPLACE)] 124*c2c66affSColin Finck HRESULT Replace( 125*c2c66affSColin Finck [in] BSTR sourceString, 126*c2c66affSColin Finck [in] VARIANT replaceVar, 127*c2c66affSColin Finck [out, retval] BSTR *pDestString); 128*c2c66affSColin Finck } 129*c2c66affSColin Finck 130*c2c66affSColin Finck [ 131*c2c66affSColin Finck dual, 132*c2c66affSColin Finck hidden, 133*c2c66affSColin Finck nonextensible, 134*c2c66affSColin Finck odl, 135*c2c66affSColin Finck oleautomation, 136*c2c66affSColin Finck uuid(3f4daca1-160d-11d2-a8e9-00104b365c9f) 137*c2c66affSColin Finck ] 138*c2c66affSColin Finck interface IMatch : IDispatch 139*c2c66affSColin Finck { 140*c2c66affSColin Finck [id(DISPID_VALUE), propget] 141*c2c66affSColin Finck HRESULT Value([out, retval] BSTR *pValue); 142*c2c66affSColin Finck 143*c2c66affSColin Finck [id(DISPID_MATCH_FIRSTINDEX), propget] 144*c2c66affSColin Finck HRESULT FirstIndex([out, retval] LONG *pFirstIndex); 145*c2c66affSColin Finck 146*c2c66affSColin Finck [id(DISPID_MATCH_LENGTH), propget] 147*c2c66affSColin Finck HRESULT Length([out, retval] LONG *pLength); 148*c2c66affSColin Finck } 149*c2c66affSColin Finck 150*c2c66affSColin Finck [ 151*c2c66affSColin Finck odl, 152*c2c66affSColin Finck uuid(3f4dacb1-160d-11d2-a8e9-00104b365c9f), 153*c2c66affSColin Finck hidden, 154*c2c66affSColin Finck dual, 155*c2c66affSColin Finck nonextensible, 156*c2c66affSColin Finck oleautomation 157*c2c66affSColin Finck ] 158*c2c66affSColin Finck interface IMatch2 : IDispatch 159*c2c66affSColin Finck { 160*c2c66affSColin Finck [id(DISPID_VALUE), propget] 161*c2c66affSColin Finck HRESULT Value([out, retval] BSTR *pValue); 162*c2c66affSColin Finck 163*c2c66affSColin Finck [id(DISPID_MATCH_FIRSTINDEX), propget] 164*c2c66affSColin Finck HRESULT FirstIndex([out, retval] LONG *pFirstIndex); 165*c2c66affSColin Finck 166*c2c66affSColin Finck [id(DISPID_MATCH_LENGTH), propget] 167*c2c66affSColin Finck HRESULT Length([out, retval] LONG *pLength); 168*c2c66affSColin Finck 169*c2c66affSColin Finck [id(DISPID_MATCH_SUBMATCHES), propget] 170*c2c66affSColin Finck HRESULT SubMatches([out, retval] IDispatch **ppSubMatches); 171*c2c66affSColin Finck } 172*c2c66affSColin Finck 173*c2c66affSColin Finck [ 174*c2c66affSColin Finck dual, 175*c2c66affSColin Finck hidden, 176*c2c66affSColin Finck nonextensible, 177*c2c66affSColin Finck odl, 178*c2c66affSColin Finck oleautomation, 179*c2c66affSColin Finck uuid(3f4daca2-160d-11d2-a8e9-00104b365c9f) 180*c2c66affSColin Finck ] 181*c2c66affSColin Finck interface IMatchCollection : IDispatch 182*c2c66affSColin Finck { 183*c2c66affSColin Finck [id(DISPID_VALUE), propget] 184*c2c66affSColin Finck HRESULT Item( 185*c2c66affSColin Finck [in] LONG index, 186*c2c66affSColin Finck [out, retval] IDispatch **ppMatch); 187*c2c66affSColin Finck 188*c2c66affSColin Finck [id(DISPID_MATCHCOLLECTION_COUNT), propget] 189*c2c66affSColin Finck HRESULT Count([out, retval] LONG *pCount); 190*c2c66affSColin Finck 191*c2c66affSColin Finck [id(DISPID_NEWENUM), propget] 192*c2c66affSColin Finck HRESULT _NewEnum([out, retval] IUnknown **ppEnum); 193*c2c66affSColin Finck } 194*c2c66affSColin Finck 195*c2c66affSColin Finck [ 196*c2c66affSColin Finck dual, 197*c2c66affSColin Finck hidden, 198*c2c66affSColin Finck nonextensible, 199*c2c66affSColin Finck odl, 200*c2c66affSColin Finck oleautomation, 201*c2c66affSColin Finck uuid(3f4dacb2-160d-11d2-a8e9-00104b365c9f) 202*c2c66affSColin Finck ] 203*c2c66affSColin Finck interface IMatchCollection2 : IDispatch 204*c2c66affSColin Finck { 205*c2c66affSColin Finck [id(DISPID_VALUE), propget] 206*c2c66affSColin Finck HRESULT Item( 207*c2c66affSColin Finck [in] LONG index, 208*c2c66affSColin Finck [out, retval] IDispatch **ppMatch); 209*c2c66affSColin Finck 210*c2c66affSColin Finck [id(DISPID_MATCHCOLLECTION_COUNT), propget] 211*c2c66affSColin Finck HRESULT Count([out, retval] LONG *pCount); 212*c2c66affSColin Finck 213*c2c66affSColin Finck [id(DISPID_NEWENUM), propget] 214*c2c66affSColin Finck HRESULT _NewEnum([out, retval] IUnknown **ppEnum); 215*c2c66affSColin Finck } 216*c2c66affSColin Finck 217*c2c66affSColin Finck [ 218*c2c66affSColin Finck dual, 219*c2c66affSColin Finck hidden, 220*c2c66affSColin Finck nonextensible, 221*c2c66affSColin Finck odl, 222*c2c66affSColin Finck oleautomation, 223*c2c66affSColin Finck uuid(3f4dacb3-160d-11d2-a8e9-00104b365c9f) 224*c2c66affSColin Finck ] 225*c2c66affSColin Finck interface ISubMatches : IDispatch 226*c2c66affSColin Finck { 227*c2c66affSColin Finck [id(DISPID_VALUE), propget] 228*c2c66affSColin Finck HRESULT Item( 229*c2c66affSColin Finck [in] LONG index, 230*c2c66affSColin Finck [out, retval] VARIANT *pSubMatch); 231*c2c66affSColin Finck 232*c2c66affSColin Finck [id(DISPID_SUBMATCHES_COUNT), propget] 233*c2c66affSColin Finck HRESULT Count([out, retval] LONG *pCount); 234*c2c66affSColin Finck 235*c2c66affSColin Finck [id(DISPID_NEWENUM), propget] 236*c2c66affSColin Finck HRESULT _NewEnum([out, retval] IUnknown **ppEnum); 237*c2c66affSColin Finck } 238*c2c66affSColin Finck 239*c2c66affSColin Finck [ 240*c2c66affSColin Finck uuid(3f4daca4-160d-11d2-a8e9-00104b365c9f) 241*c2c66affSColin Finck ] 242*c2c66affSColin Finck coclass RegExp 243*c2c66affSColin Finck { 244*c2c66affSColin Finck [default] interface IRegExp2; 245*c2c66affSColin Finck } 246*c2c66affSColin Finck 247*c2c66affSColin Finck [ 248*c2c66affSColin Finck noncreatable, 249*c2c66affSColin Finck uuid(3f4daca5-160d-11d2-a8e9-00104b365c9f) 250*c2c66affSColin Finck ] 251*c2c66affSColin Finck coclass Match 252*c2c66affSColin Finck { 253*c2c66affSColin Finck [default] interface IMatch2; 254*c2c66affSColin Finck } 255*c2c66affSColin Finck 256*c2c66affSColin Finck [ 257*c2c66affSColin Finck noncreatable, 258*c2c66affSColin Finck uuid(3f4daca6-160d-11d2-a8e9-00104b365c9f) 259*c2c66affSColin Finck ] 260*c2c66affSColin Finck coclass MatchCollection 261*c2c66affSColin Finck { 262*c2c66affSColin Finck [default] interface IMatchCollection2; 263*c2c66affSColin Finck } 264*c2c66affSColin Finck 265*c2c66affSColin Finck [ 266*c2c66affSColin Finck noncreatable, 267*c2c66affSColin Finck uuid(3f4dacc0-160d-11d2-a8e9-00104b365c9f) 268*c2c66affSColin Finck ] 269*c2c66affSColin Finck coclass SubMatches { 270*c2c66affSColin Finck [default] interface ISubMatches; 271*c2c66affSColin Finck } 272*c2c66affSColin Finck} 273