Added IActiveScriptParse stub implementation.

Robert Wilhelm robert.wilhelm at gmx.net
Sun Mar 8 13:19:42 CDT 2009


---
 dlls/vbscript/tests/vbscript.c |    5 ++
 dlls/vbscript/vbscript.c       |   86 ++++++++++++++++++++++++++++++++++++++-
 2 files changed, 88 insertions(+), 3 deletions(-)

diff --git a/dlls/vbscript/tests/vbscript.c b/dlls/vbscript/tests/vbscript.c
index e365ca0..e65b4ba 100644
--- a/dlls/vbscript/tests/vbscript.c
+++ b/dlls/vbscript/tests/vbscript.c
@@ -35,6 +35,7 @@ static const CLSID CLSID_VBScript =
 static void test_vbscript(void)
 {
     IUnknown *unk;
+    IActiveScriptParse *parse;
     IActiveScript *script;
     ULONG ref;
     HRESULT hres;
@@ -48,6 +49,10 @@ static void test_vbscript(void)
     hres = IUnknown_QueryInterface(unk, &IID_IActiveScript, (void**)&script);
     ok(hres == S_OK, "Could not get IActiveScript: %08x\n", hres);
 
+    hres = IUnknown_QueryInterface(unk, &IID_IActiveScriptParse, (void**)&parse);
+    ok(hres == S_OK, "Could not get IActiveScriptParse: %08x\n", hres);
+
+    IUnknown_Release(parse);
     IActiveScript_Release(script);
 
     ref = IUnknown_Release(unk);
diff --git a/dlls/vbscript/vbscript.c b/dlls/vbscript/vbscript.c
index 1f6557a..b57146a 100644
--- a/dlls/vbscript/vbscript.c
+++ b/dlls/vbscript/vbscript.c
@@ -24,17 +24,29 @@
 
 WINE_DEFAULT_DEBUG_CHANNEL(vbscript);
 
+#ifdef _WIN64
+
+#define IActiveScriptParseVtbl IActiveScriptParse64Vtbl
+
+#else
+
+#define IActiveScriptParseVtbl IActiveScriptParse32Vtbl
+
+#endif
 
 typedef struct {
-    const IActiveScriptVtbl                 *lpIActiveScriptVtbl;
+    const IActiveScriptVtbl          *lpIActiveScriptVtbl;
+    const IActiveScriptParseVtbl     *lpIActiveScriptParseVtbl;
  
     LONG ref;
 
  
 } VBScript;
 
-#define ACTSCRIPT(x)    ((IActiveScript*) &(x)->lpIActiveScriptVtbl)
+#define ACTSCRIPT(x)    ((IActiveScript*)          &(x)->lpIActiveScriptVtbl)
+#define ASPARSE(x)      ((IActiveScriptParse*)     &(x)->lpIActiveScriptParseVtbl)
 
+ 
 #define ACTSCRIPT_THIS(iface) DEFINE_THIS(VBScript, IActiveScript, iface)
 
 
@@ -50,6 +62,9 @@ static HRESULT WINAPI VBScript_QueryInterface(IActiveScript *iface, REFIID riid,
     }else if(IsEqualGUID(riid, &IID_IActiveScript)) {
         TRACE("(%p)->(IID_IActiveScript %p)\n", This, ppv);
         *ppv = ACTSCRIPT(This);
+    }else if(IsEqualGUID(riid, &IID_IActiveScriptParse)) {
+        TRACE("(%p)->(IID_IActiveScriptParse %p)\n", This, ppv);
+        *ppv = ASPARSE(This);
     }
 
     if(*ppv) {
@@ -208,6 +223,70 @@ static const IActiveScriptVtbl VBScriptVtbl = {
     VBScript_Clone
 };
 
+#define ASPARSE_THIS(iface) DEFINE_THIS(VBScript, IActiveScriptParse, iface)
+
+static HRESULT WINAPI VBScriptParse_QueryInterface(IActiveScriptParse *iface, REFIID riid, void **ppv)
+{
+    VBScript *This = ASPARSE_THIS(iface);
+    return IActiveScript_QueryInterface(ACTSCRIPT(This), riid, ppv);
+}
+
+static ULONG WINAPI VBScriptParse_AddRef(IActiveScriptParse *iface)
+{
+    VBScript *This = ASPARSE_THIS(iface);
+    return IActiveScript_AddRef(ACTSCRIPT(This));
+}
+
+static ULONG WINAPI VBScriptParse_Release(IActiveScriptParse *iface)
+{
+    VBScript *This = ASPARSE_THIS(iface);
+    return IActiveScript_Release(ACTSCRIPT(This));
+}
+
+static HRESULT WINAPI VBScriptParse_InitNew(IActiveScriptParse *iface)
+{
+    VBScript *This = ASPARSE_THIS(iface);
+    FIXME("(%p)\n", This);
+    return E_NOTIMPL;
+}
+
+static HRESULT WINAPI VBScriptParse_AddScriptlet(IActiveScriptParse *iface,
+       LPCOLESTR pstrDefaultName, LPCOLESTR pstrCode, LPCOLESTR pstrItemName,
+       LPCOLESTR pstrSubItemName, LPCOLESTR pstrEventName, LPCOLESTR pstrDelimiter,
+       DWORD dwSourceContextCookie, ULONG ulStartingLineNumber, DWORD dwFlags,
+       BSTR *pbstrName, EXCEPINFO *pexcepinfo)
+{
+    VBScript *This = ASPARSE_THIS(iface);
+    FIXME("(%p)->(%s %s %s %s %s %s %x %u %x %p %p)\n", This, debugstr_w(pstrDefaultName),
+          debugstr_w(pstrCode), debugstr_w(pstrItemName), debugstr_w(pstrSubItemName),
+          debugstr_w(pstrEventName), debugstr_w(pstrDelimiter), dwSourceContextCookie,
+          ulStartingLineNumber, dwFlags, pbstrName, pexcepinfo);
+    return E_NOTIMPL;
+}
+
+static HRESULT WINAPI VBScriptParse_ParseScriptText(IActiveScriptParse *iface,
+        LPCOLESTR pstrCode, LPCOLESTR pstrItemName, IUnknown *punkContext,
+        LPCOLESTR pstrDelimiter, DWORD dwSourceContextCookie, ULONG ulStartingLine,
+        DWORD dwFlags, VARIANT *pvarResult, EXCEPINFO *pexcepinfo)
+{
+    VBScript *This = ASPARSE_THIS(iface);
+    FIXME("(%p)->(%s %s %p %s %x %u %x %p %p)\n", This, debugstr_w(pstrCode),
+          debugstr_w(pstrItemName), punkContext, debugstr_w(pstrDelimiter),
+          dwSourceContextCookie, ulStartingLine, dwFlags, pvarResult, pexcepinfo);
+    return E_NOTIMPL;
+}
+
+#undef ASPARSE_THIS
+
+static const IActiveScriptParseVtbl VBScriptParseVtbl = {
+    VBScriptParse_QueryInterface,
+    VBScriptParse_AddRef,
+    VBScriptParse_Release,
+    VBScriptParse_InitNew,
+    VBScriptParse_AddScriptlet,
+    VBScriptParse_ParseScriptText
+};
+
 HRESULT WINAPI VBScriptFactory_CreateInstance(IClassFactory *iface, IUnknown *pUnkOuter,
                                               REFIID riid, void **ppv)
 {
@@ -222,7 +301,8 @@ HRESULT WINAPI VBScriptFactory_CreateInstance(IClassFactory *iface, IUnknown *pU
     if(!ret)
         return E_OUTOFMEMORY;
 
-    ret->lpIActiveScriptVtbl = &VBScriptVtbl;
+    ret->lpIActiveScriptVtbl          = &VBScriptVtbl;
+    ret->lpIActiveScriptParseVtbl     = &VBScriptParseVtbl;
     ret->ref = 1;
  
     hres = IActiveScript_QueryInterface(ACTSCRIPT(ret), riid, ppv);
-- 
1.6.0.6


--=-yg1yi9bLD2B8Gkt16zpX--




More information about the wine-patches mailing list