Module: wine Branch: master Commit: 2e29c7d5162af30aa907e81fb7e9b4ffdef3973c URL: http://source.winehq.org/git/wine.git/?a=commit;h=2e29c7d5162af30aa907e81fb7...
Author: Jacek Caban jacek@codeweavers.com Date: Mon Feb 9 21:11:36 2009 +0100
activscp.idl: Added IActiveScriptParseProcedure*64 interfaces and use it on Win64.
---
dlls/jscript/jscript.c | 8 +++-- dlls/mshtml/script.c | 4 +- dlls/mshtml/tests/script.c | 4 ++- include/activscp.idl | 80 ++++++++++++++++++++++++++++++++++++++++++-- 4 files changed, 87 insertions(+), 9 deletions(-)
diff --git a/dlls/jscript/jscript.c b/dlls/jscript/jscript.c index d53ac2f..fb99d24 100644 --- a/dlls/jscript/jscript.c +++ b/dlls/jscript/jscript.c @@ -28,11 +28,13 @@ WINE_DEFAULT_DEBUG_CHANNEL(jscript);
#define CTXARG_T DWORDLONG #define IActiveScriptParseVtbl IActiveScriptParse64Vtbl +#define IActiveScriptParseProcedure2Vtbl IActiveScriptParseProcedure2_64Vtbl
#else
#define CTXARG_T DWORD #define IActiveScriptParseVtbl IActiveScriptParse32Vtbl +#define IActiveScriptParseProcedure2Vtbl IActiveScriptParseProcedure2_32Vtbl
#endif
@@ -646,16 +648,16 @@ static ULONG WINAPI JScriptParseProcedure_Release(IActiveScriptParseProcedure2 * static HRESULT WINAPI JScriptParseProcedure_ParseProcedureText(IActiveScriptParseProcedure2 *iface, LPCOLESTR pstrCode, LPCOLESTR pstrFormalParams, LPCOLESTR pstrProcedureName, LPCOLESTR pstrItemName, IUnknown *punkContext, LPCOLESTR pstrDelimiter, - DWORD dwSourceContextCookie, ULONG ulStartingLineNumber, DWORD dwFlags, IDispatch **ppdisp) + CTXARG_T dwSourceContextCookie, ULONG ulStartingLineNumber, DWORD dwFlags, IDispatch **ppdisp) { JScript *This = ASPARSEPROC_THIS(iface); parser_ctx_t *parser_ctx; DispatchEx *dispex; HRESULT hres;
- TRACE("(%p)->(%s %s %s %s %p %s %x %u %x %p)\n", This, debugstr_w(pstrCode), debugstr_w(pstrFormalParams), + TRACE("(%p)->(%s %s %s %s %p %s %s %u %x %p)\n", This, debugstr_w(pstrCode), debugstr_w(pstrFormalParams), debugstr_w(pstrProcedureName), debugstr_w(pstrItemName), punkContext, debugstr_w(pstrDelimiter), - dwSourceContextCookie, ulStartingLineNumber, dwFlags, ppdisp); + wine_dbgstr_longlong(dwSourceContextCookie), ulStartingLineNumber, dwFlags, ppdisp);
if(This->thread_id != GetCurrentThreadId() || This->ctx->state == SCRIPTSTATE_CLOSED) return E_UNEXPECTED; diff --git a/dlls/mshtml/script.c b/dlls/mshtml/script.c index 43373e4..4b1a240 100644 --- a/dlls/mshtml/script.c +++ b/dlls/mshtml/script.c @@ -175,7 +175,7 @@ static void release_script_engine(ScriptHost *This)
default: if(This->parse_proc) { - IActiveScriptParseProcedure_Release(This->parse_proc); + IUnknown_Release(This->parse_proc); This->parse_proc = NULL; }
@@ -783,7 +783,7 @@ IDispatch *script_parse_event(HTMLDocument *doc, LPCWSTR text) if(!script_host || !script_host->parse_proc) return NULL;
- hres = IActiveScriptParseProcedure_ParseProcedureText(script_host->parse_proc, ptr, NULL, emptyW, + hres = IActiveScriptParseProcedure64_ParseProcedureText(script_host->parse_proc, ptr, NULL, emptyW, NULL, NULL, delimiterW, 0 /* FIXME */, 0, SCRIPTPROC_HOSTMANAGESSOURCE|SCRIPTPROC_IMPLICIT_THIS|SCRIPTPROC_IMPLICIT_PARENTS, &disp); if(FAILED(hres)) { diff --git a/dlls/mshtml/tests/script.c b/dlls/mshtml/tests/script.c index d6a5e5f..4faf78a 100644 --- a/dlls/mshtml/tests/script.c +++ b/dlls/mshtml/tests/script.c @@ -40,11 +40,13 @@ DEFINE_GUID(CLSID_IdentityUnmarshal,0x0000001b,0x0000,0x0000,0xc0,0x00,0x00,0x00
#define CTXARG_T DWORDLONG #define IActiveScriptParseVtbl IActiveScriptParse64Vtbl +#define IActiveScriptParseProcedure2Vtbl IActiveScriptParseProcedure2_64Vtbl
#else
#define CTXARG_T DWORD #define IActiveScriptParseVtbl IActiveScriptParse32Vtbl +#define IActiveScriptParseProcedure2Vtbl IActiveScriptParseProcedure2_32Vtbl
#endif
@@ -550,7 +552,7 @@ static ULONG WINAPI ActiveScriptParseProcedure_Release(IActiveScriptParseProcedu static HRESULT WINAPI ActiveScriptParseProcedure_ParseProcedureText(IActiveScriptParseProcedure2 *iface, LPCOLESTR pstrCode, LPCOLESTR pstrFormalParams, LPCOLESTR pstrProcedureName, LPCOLESTR pstrItemName, IUnknown *punkContext, LPCOLESTR pstrDelimiter, - DWORD dwSourceContextCookie, ULONG ulStartingLineNumber, DWORD dwFlags, IDispatch **ppdisp) + CTXARG_T dwSourceContextCookie, ULONG ulStartingLineNumber, DWORD dwFlags, IDispatch **ppdisp) { ok(0, "unexpected call\n"); return E_NOTIMPL; diff --git a/include/activscp.idl b/include/activscp.idl index 3fe6d62..e75fbec 100644 --- a/include/activscp.idl +++ b/include/activscp.idl @@ -350,7 +350,7 @@ object, uuid(1CFF0050-6FDD-11d0-9328-00A0C90DCAA9), pointer_default(unique) ] -interface IActiveScriptParseProcedureOld : IUnknown +interface IActiveScriptParseProcedureOld32 : IUnknown { HRESULT ParseProcedureText( [in] LPCOLESTR pstrCode, @@ -366,11 +366,39 @@ interface IActiveScriptParseProcedureOld : IUnknown }
[ + object, + uuid(21f57128-08c9-4638-ba12-22d15d88dc5c), + pointer_default(unique) +] +interface IActiveScriptParseProcedureOld64 : IUnknown +{ + HRESULT ParseProcedureText( + [in] LPCOLESTR pstrCode, + [in] LPCOLESTR pstrFormalParams, + [in] LPCOLESTR pstrItemName, + [in] IUnknown *punkContext, + [in] LPCOLESTR pstrDelimiter, + [in] DWORDLONG dwSourceContextCookie, + [in] ULONG ulStartingLineNumber, + [in] DWORD dwFlags, + [out] IDispatch **ppdisp + ); +} + +cpp_quote("#ifdef _WIN64") +cpp_quote("#define IActiveScriptParseProcedureOld IActiveScriptParseProcedureOld64") +cpp_quote("#define IID_IActiveScriptParseProcedureOld IID_IActiveScriptParseProcedureOld64") +cpp_quote("#else") +cpp_quote("#define IActiveScriptParseProcedureOld IActiveScriptParseProcedureOld32") +cpp_quote("#define IID_IActiveScriptParseProcedureOld IID_IActiveScriptParseProcedureOld32") +cpp_quote("#endif") + +[ object, uuid(AA5B6A80-B834-11d0-932F-00A0C90DCAA9), pointer_default(unique) ] -interface IActiveScriptParseProcedure : IUnknown +interface IActiveScriptParseProcedure32 : IUnknown { HRESULT ParseProcedureText( [in] LPCOLESTR pstrCode, @@ -388,13 +416,59 @@ interface IActiveScriptParseProcedure : IUnknown
[ object, + uuid(c64713b6-e029-4cc5-9200-438b72890b6a), + pointer_default(unique) +] +interface IActiveScriptParseProcedure64 : IUnknown +{ + HRESULT ParseProcedureText( + [in] LPCOLESTR pstrCode, + [in] LPCOLESTR pstrFormalParams, + [in] LPCOLESTR pstrProcedureName, + [in] LPCOLESTR pstrItemName, + [in] IUnknown *punkContext, + [in] LPCOLESTR pstrDelimiter, + [in] DWORDLONG dwSourceContextCookie, + [in] ULONG ulStartingLineNumber, + [in] DWORD dwFlags, + [out] IDispatch **ppdisp + ); +} + +cpp_quote("#ifdef _WIN64") +cpp_quote("#define IActiveScriptParseProcedure IActiveScriptParseProcedure64") +cpp_quote("#define IID_IActiveScriptParseProcedure IID_IActiveScriptParseProcedure64") +cpp_quote("#else") +cpp_quote("#define IActiveScriptParseProcedure IActiveScriptParseProcedure32") +cpp_quote("#define IID_IActiveScriptParseProcedure IID_IActiveScriptParseProcedure32") +cpp_quote("#endif") + +[ + object, uuid(71ee5b20-fb04-11d1-b3a8-00a0c911e8b2), pointer_default(unique) ] -interface IActiveScriptParseProcedure2 : IActiveScriptParseProcedure +interface IActiveScriptParseProcedure2_32 : IActiveScriptParseProcedure32 +{ +} + +[ + object, + uuid(fe7c4271-210c-448d-9f54-76dab7047b28), + pointer_default(unique) +] +interface IActiveScriptParseProcedure2_64 : IActiveScriptParseProcedure64 { }
+cpp_quote("#ifdef _WIN64") +cpp_quote("#define IActiveScriptParseProcedure2 IActiveScriptParseProcedure2_64") +cpp_quote("#define IID_IActiveScriptParseProcedure2 IID_IActiveScriptParseProcedure2_64") +cpp_quote("#else") +cpp_quote("#define IActiveScriptParseProcedure2 IActiveScriptParseProcedure2_32") +cpp_quote("#define IID_IActiveScriptParseProcedure2 IID_IActiveScriptParseProcedure2_32") +cpp_quote("#endif") + [ object, uuid(63CDBCB0-C1B1-11d0-9336-00A0C90DCAA9),