Jacek Caban : activscp.idl: Added IActiveScriptParseProcedure*64 interfaces and use it on Win64.
Alexandre Julliard
julliard at winehq.org
Tue Feb 10 07:45:25 CST 2009
Module: wine
Branch: master
Commit: 2e29c7d5162af30aa907e81fb7e9b4ffdef3973c
URL: http://source.winehq.org/git/wine.git/?a=commit;h=2e29c7d5162af30aa907e81fb7e9b4ffdef3973c
Author: Jacek Caban <jacek at 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),
More information about the wine-cvs
mailing list