Jacek Caban : wscript: Added IActiveScriptSiteWindow implementation.
Alexandre Julliard
julliard at wine.codeweavers.com
Wed Jul 23 14:44:09 CDT 2014
Module: wine
Branch: master
Commit: e2fcd874e073d165e5e581fee8b0ce652f0ca881
URL: http://source.winehq.org/git/wine.git/?a=commit;h=e2fcd874e073d165e5e581fee8b0ce652f0ca881
Author: Jacek Caban <jacek at codeweavers.com>
Date: Wed Jul 23 17:44:03 2014 +0200
wscript: Added IActiveScriptSiteWindow implementation.
---
programs/wscript/main.c | 79 +++++++++++++++++++++++++++++++++++++++----------
1 file changed, 64 insertions(+), 15 deletions(-)
diff --git a/programs/wscript/main.c b/programs/wscript/main.c
index fe0a2ed..d354c90 100644
--- a/programs/wscript/main.c
+++ b/programs/wscript/main.c
@@ -56,23 +56,12 @@ WCHAR scriptFullName[MAX_PATH];
ITypeInfo *host_ti;
ITypeInfo *arguments_ti;
+static HRESULT query_interface(REFIID,void**);
+
static HRESULT WINAPI ActiveScriptSite_QueryInterface(IActiveScriptSite *iface,
REFIID riid, void **ppv)
{
- if(IsEqualGUID(riid, &IID_IUnknown)) {
- WINE_TRACE("(IID_IUnknown %p)\n", ppv);
- *ppv = iface;
- }else if(IsEqualGUID(riid, &IID_IActiveScriptSite)) {
- WINE_TRACE("(IID_IActiveScriptSite %p)\n", ppv);
- *ppv = iface;
- }else {
- *ppv = NULL;
- WINE_TRACE("(%s %p)\n", wine_dbgstr_guid(riid), ppv);
- return E_NOINTERFACE;
- }
-
- IUnknown_AddRef((IUnknown*)*ppv);
- return S_OK;
+ return query_interface(riid, ppv);
}
static ULONG WINAPI ActiveScriptSite_AddRef(IActiveScriptSite *iface)
@@ -168,7 +157,67 @@ static IActiveScriptSiteVtbl ActiveScriptSiteVtbl = {
ActiveScriptSite_OnLeaveScript
};
-IActiveScriptSite script_site = { &ActiveScriptSiteVtbl };
+static IActiveScriptSite script_site = { &ActiveScriptSiteVtbl };
+
+static HRESULT WINAPI ActiveScriptSiteWindow_QueryInterface(IActiveScriptSiteWindow *iface, REFIID riid, void **ppv)
+{
+ return query_interface(riid, ppv);
+}
+
+static ULONG WINAPI ActiveScriptSiteWindow_AddRef(IActiveScriptSiteWindow *iface)
+{
+ return 2;
+}
+
+static ULONG WINAPI ActiveScriptSiteWindow_Release(IActiveScriptSiteWindow *iface)
+{
+ return 1;
+}
+
+static HRESULT WINAPI ActiveScriptSiteWindow_GetWindow(IActiveScriptSiteWindow *iface, HWND *phwnd)
+{
+ TRACE("(%p)\n", phwnd);
+
+ *phwnd = NULL;
+ return S_OK;
+}
+
+static HRESULT WINAPI ActiveScriptSiteWindow_EnableModeless(IActiveScriptSiteWindow *iface, BOOL fEnable)
+{
+ TRACE("(%x)\n", fEnable);
+ return S_OK;
+}
+
+static const IActiveScriptSiteWindowVtbl ActiveScriptSiteWindowVtbl = {
+ ActiveScriptSiteWindow_QueryInterface,
+ ActiveScriptSiteWindow_AddRef,
+ ActiveScriptSiteWindow_Release,
+ ActiveScriptSiteWindow_GetWindow,
+ ActiveScriptSiteWindow_EnableModeless
+};
+
+static IActiveScriptSiteWindow script_site_window = { &ActiveScriptSiteWindowVtbl };
+
+static HRESULT query_interface(REFIID riid, void **ppv)
+{
+ if(IsEqualGUID(riid, &IID_IUnknown)) {
+ TRACE("(IID_IUnknown %p)\n", ppv);
+ *ppv = &script_site;
+ }else if(IsEqualGUID(riid, &IID_IActiveScriptSite)) {
+ TRACE("(IID_IActiveScriptSite %p)\n", ppv);
+ *ppv = &script_site;
+ }else if(IsEqualGUID(riid, &IID_IActiveScriptSiteWindow)) {
+ TRACE("(IID_IActiveScriptSiteWindow %p)\n", ppv);
+ *ppv = &script_site_window;
+ }else {
+ *ppv = NULL;
+ TRACE("(%s %p)\n", wine_dbgstr_guid(riid), ppv);
+ return E_NOINTERFACE;
+ }
+
+ IUnknown_AddRef((IUnknown*)*ppv);
+ return S_OK;
+}
static BOOL load_typelib(void)
{
More information about the wine-cvs
mailing list