mshtml: COM cleanup for the IActiveScriptSite* ifaces.
This commit is contained in:
parent
7021fd321b
commit
f341ed11e2
|
@ -51,10 +51,10 @@ static const CLSID CLSID_JScript =
|
||||||
{0xf414c260,0x6ac0,0x11cf,{0xb6,0xd1,0x00,0xaa,0x00,0xbb,0xbb,0x58}};
|
{0xf414c260,0x6ac0,0x11cf,{0xb6,0xd1,0x00,0xaa,0x00,0xbb,0xbb,0x58}};
|
||||||
|
|
||||||
struct ScriptHost {
|
struct ScriptHost {
|
||||||
const IActiveScriptSiteVtbl *lpIActiveScriptSiteVtbl;
|
IActiveScriptSite IActiveScriptSite_iface;
|
||||||
const IActiveScriptSiteInterruptPollVtbl *lpIActiveScriptSiteInterruptPollVtbl;
|
IActiveScriptSiteInterruptPoll IActiveScriptSiteInterruptPoll_iface;
|
||||||
const IActiveScriptSiteWindowVtbl *lpIActiveScriptSiteWindowVtbl;
|
IActiveScriptSiteWindow IActiveScriptSiteWindow_iface;
|
||||||
const IActiveScriptSiteDebugVtbl *lpIActiveScriptSiteDebugVtbl;
|
IActiveScriptSiteDebug IActiveScriptSiteDebug_iface;
|
||||||
IServiceProvider IServiceProvider_iface;
|
IServiceProvider IServiceProvider_iface;
|
||||||
|
|
||||||
LONG ref;
|
LONG ref;
|
||||||
|
@ -71,11 +71,6 @@ struct ScriptHost {
|
||||||
struct list entry;
|
struct list entry;
|
||||||
};
|
};
|
||||||
|
|
||||||
#define ACTSCPSITE(x) ((IActiveScriptSite*) &(x)->lpIActiveScriptSiteVtbl)
|
|
||||||
#define ACTSCPPOLL(x) (&(x)->lpIActiveScriptSiteInterruptPollVtbl)
|
|
||||||
#define ACTSCPWIN(x) (&(x)->lpIActiveScriptSiteWindowVtbl)
|
|
||||||
#define ACTSCPDBG(x) (&(x)->lpIActiveScriptSiteDebugVtbl)
|
|
||||||
|
|
||||||
static void set_script_prop(ScriptHost *script_host, DWORD property, VARIANT *val)
|
static void set_script_prop(ScriptHost *script_host, DWORD property, VARIANT *val)
|
||||||
{
|
{
|
||||||
IActiveScriptProperty *script_prop;
|
IActiveScriptProperty *script_prop;
|
||||||
|
@ -145,7 +140,7 @@ static BOOL init_script_engine(ScriptHost *script_host)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
hres = IActiveScript_SetScriptSite(script_host->script, ACTSCPSITE(script_host));
|
hres = IActiveScript_SetScriptSite(script_host->script, &script_host->IActiveScriptSite_iface);
|
||||||
if(FAILED(hres)) {
|
if(FAILED(hres)) {
|
||||||
WARN("SetScriptSite failed: %08x\n", hres);
|
WARN("SetScriptSite failed: %08x\n", hres);
|
||||||
IActiveScript_Close(script_host->script);
|
IActiveScript_Close(script_host->script);
|
||||||
|
@ -225,29 +220,32 @@ void connect_scripts(HTMLWindow *window)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#define ACTSCPSITE_THIS(iface) DEFINE_THIS(ScriptHost, IActiveScriptSite, iface)
|
static inline ScriptHost *impl_from_IActiveScriptSite(IActiveScriptSite *iface)
|
||||||
|
{
|
||||||
|
return CONTAINING_RECORD(iface, ScriptHost, IActiveScriptSite_iface);
|
||||||
|
}
|
||||||
|
|
||||||
static HRESULT WINAPI ActiveScriptSite_QueryInterface(IActiveScriptSite *iface, REFIID riid, void **ppv)
|
static HRESULT WINAPI ActiveScriptSite_QueryInterface(IActiveScriptSite *iface, REFIID riid, void **ppv)
|
||||||
{
|
{
|
||||||
ScriptHost *This = ACTSCPSITE_THIS(iface);
|
ScriptHost *This = impl_from_IActiveScriptSite(iface);
|
||||||
|
|
||||||
*ppv = NULL;
|
*ppv = NULL;
|
||||||
|
|
||||||
if(IsEqualGUID(&IID_IUnknown, riid)) {
|
if(IsEqualGUID(&IID_IUnknown, riid)) {
|
||||||
TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv);
|
TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv);
|
||||||
*ppv = ACTSCPSITE(This);
|
*ppv = &This->IActiveScriptSite_iface;
|
||||||
}else if(IsEqualGUID(&IID_IActiveScriptSite, riid)) {
|
}else if(IsEqualGUID(&IID_IActiveScriptSite, riid)) {
|
||||||
TRACE("(%p)->(IID_IActiveScriptSite %p)\n", This, ppv);
|
TRACE("(%p)->(IID_IActiveScriptSite %p)\n", This, ppv);
|
||||||
*ppv = ACTSCPSITE(This);
|
*ppv = &This->IActiveScriptSite_iface;
|
||||||
}else if(IsEqualGUID(&IID_IActiveScriptSiteInterruptPoll, riid)) {
|
}else if(IsEqualGUID(&IID_IActiveScriptSiteInterruptPoll, riid)) {
|
||||||
TRACE("(%p)->(IID_IActiveScriptSiteInterruprtPoll %p)\n", This, ppv);
|
TRACE("(%p)->(IID_IActiveScriptSiteInterruprtPoll %p)\n", This, ppv);
|
||||||
*ppv = ACTSCPPOLL(This);
|
*ppv = &This->IActiveScriptSiteInterruptPoll_iface;
|
||||||
}else if(IsEqualGUID(&IID_IActiveScriptSiteWindow, riid)) {
|
}else if(IsEqualGUID(&IID_IActiveScriptSiteWindow, riid)) {
|
||||||
TRACE("(%p)->(IID_IActiveScriptSiteWindow %p)\n", This, ppv);
|
TRACE("(%p)->(IID_IActiveScriptSiteWindow %p)\n", This, ppv);
|
||||||
*ppv = ACTSCPWIN(This);
|
*ppv = &This->IActiveScriptSiteWindow_iface;
|
||||||
}else if(IsEqualGUID(&IID_IActiveScriptSiteDebug, riid)) {
|
}else if(IsEqualGUID(&IID_IActiveScriptSiteDebug, riid)) {
|
||||||
TRACE("(%p)->(IID_IActiveScriptSiteDebug %p)\n", This, ppv);
|
TRACE("(%p)->(IID_IActiveScriptSiteDebug %p)\n", This, ppv);
|
||||||
*ppv = ACTSCPDBG(This);
|
*ppv = &This->IActiveScriptSiteDebug_iface;
|
||||||
}else if(IsEqualGUID(&IID_IServiceProvider, riid)) {
|
}else if(IsEqualGUID(&IID_IServiceProvider, riid)) {
|
||||||
TRACE("(%p)->(IID_IServiceProvider %p)\n", This, ppv);
|
TRACE("(%p)->(IID_IServiceProvider %p)\n", This, ppv);
|
||||||
*ppv = &This->IServiceProvider_iface;
|
*ppv = &This->IServiceProvider_iface;
|
||||||
|
@ -265,7 +263,7 @@ static HRESULT WINAPI ActiveScriptSite_QueryInterface(IActiveScriptSite *iface,
|
||||||
|
|
||||||
static ULONG WINAPI ActiveScriptSite_AddRef(IActiveScriptSite *iface)
|
static ULONG WINAPI ActiveScriptSite_AddRef(IActiveScriptSite *iface)
|
||||||
{
|
{
|
||||||
ScriptHost *This = ACTSCPSITE_THIS(iface);
|
ScriptHost *This = impl_from_IActiveScriptSite(iface);
|
||||||
LONG ref = InterlockedIncrement(&This->ref);
|
LONG ref = InterlockedIncrement(&This->ref);
|
||||||
|
|
||||||
TRACE("(%p) ref=%d\n", This, ref);
|
TRACE("(%p) ref=%d\n", This, ref);
|
||||||
|
@ -275,7 +273,7 @@ static ULONG WINAPI ActiveScriptSite_AddRef(IActiveScriptSite *iface)
|
||||||
|
|
||||||
static ULONG WINAPI ActiveScriptSite_Release(IActiveScriptSite *iface)
|
static ULONG WINAPI ActiveScriptSite_Release(IActiveScriptSite *iface)
|
||||||
{
|
{
|
||||||
ScriptHost *This = ACTSCPSITE_THIS(iface);
|
ScriptHost *This = impl_from_IActiveScriptSite(iface);
|
||||||
LONG ref = InterlockedDecrement(&This->ref);
|
LONG ref = InterlockedDecrement(&This->ref);
|
||||||
|
|
||||||
TRACE("(%p) ref=%d\n", This, ref);
|
TRACE("(%p) ref=%d\n", This, ref);
|
||||||
|
@ -292,7 +290,7 @@ static ULONG WINAPI ActiveScriptSite_Release(IActiveScriptSite *iface)
|
||||||
|
|
||||||
static HRESULT WINAPI ActiveScriptSite_GetLCID(IActiveScriptSite *iface, LCID *plcid)
|
static HRESULT WINAPI ActiveScriptSite_GetLCID(IActiveScriptSite *iface, LCID *plcid)
|
||||||
{
|
{
|
||||||
ScriptHost *This = ACTSCPSITE_THIS(iface);
|
ScriptHost *This = impl_from_IActiveScriptSite(iface);
|
||||||
|
|
||||||
TRACE("(%p)->(%p)\n", This, plcid);
|
TRACE("(%p)->(%p)\n", This, plcid);
|
||||||
|
|
||||||
|
@ -303,7 +301,7 @@ static HRESULT WINAPI ActiveScriptSite_GetLCID(IActiveScriptSite *iface, LCID *p
|
||||||
static HRESULT WINAPI ActiveScriptSite_GetItemInfo(IActiveScriptSite *iface, LPCOLESTR pstrName,
|
static HRESULT WINAPI ActiveScriptSite_GetItemInfo(IActiveScriptSite *iface, LPCOLESTR pstrName,
|
||||||
DWORD dwReturnMask, IUnknown **ppiunkItem, ITypeInfo **ppti)
|
DWORD dwReturnMask, IUnknown **ppiunkItem, ITypeInfo **ppti)
|
||||||
{
|
{
|
||||||
ScriptHost *This = ACTSCPSITE_THIS(iface);
|
ScriptHost *This = impl_from_IActiveScriptSite(iface);
|
||||||
|
|
||||||
TRACE("(%p)->(%s %x %p %p)\n", This, debugstr_w(pstrName), dwReturnMask, ppiunkItem, ppti);
|
TRACE("(%p)->(%s %x %p %p)\n", This, debugstr_w(pstrName), dwReturnMask, ppiunkItem, ppti);
|
||||||
|
|
||||||
|
@ -329,7 +327,7 @@ static HRESULT WINAPI ActiveScriptSite_GetItemInfo(IActiveScriptSite *iface, LPC
|
||||||
|
|
||||||
static HRESULT WINAPI ActiveScriptSite_GetDocVersionString(IActiveScriptSite *iface, BSTR *pbstrVersion)
|
static HRESULT WINAPI ActiveScriptSite_GetDocVersionString(IActiveScriptSite *iface, BSTR *pbstrVersion)
|
||||||
{
|
{
|
||||||
ScriptHost *This = ACTSCPSITE_THIS(iface);
|
ScriptHost *This = impl_from_IActiveScriptSite(iface);
|
||||||
FIXME("(%p)->(%p)\n", This, pbstrVersion);
|
FIXME("(%p)->(%p)\n", This, pbstrVersion);
|
||||||
return E_NOTIMPL;
|
return E_NOTIMPL;
|
||||||
}
|
}
|
||||||
|
@ -337,14 +335,14 @@ static HRESULT WINAPI ActiveScriptSite_GetDocVersionString(IActiveScriptSite *if
|
||||||
static HRESULT WINAPI ActiveScriptSite_OnScriptTerminate(IActiveScriptSite *iface,
|
static HRESULT WINAPI ActiveScriptSite_OnScriptTerminate(IActiveScriptSite *iface,
|
||||||
const VARIANT *pvarResult, const EXCEPINFO *pexcepinfo)
|
const VARIANT *pvarResult, const EXCEPINFO *pexcepinfo)
|
||||||
{
|
{
|
||||||
ScriptHost *This = ACTSCPSITE_THIS(iface);
|
ScriptHost *This = impl_from_IActiveScriptSite(iface);
|
||||||
FIXME("(%p)->(%p %p)\n", This, pvarResult, pexcepinfo);
|
FIXME("(%p)->(%p %p)\n", This, pvarResult, pexcepinfo);
|
||||||
return E_NOTIMPL;
|
return E_NOTIMPL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT WINAPI ActiveScriptSite_OnStateChange(IActiveScriptSite *iface, SCRIPTSTATE ssScriptState)
|
static HRESULT WINAPI ActiveScriptSite_OnStateChange(IActiveScriptSite *iface, SCRIPTSTATE ssScriptState)
|
||||||
{
|
{
|
||||||
ScriptHost *This = ACTSCPSITE_THIS(iface);
|
ScriptHost *This = impl_from_IActiveScriptSite(iface);
|
||||||
|
|
||||||
TRACE("(%p)->(%x)\n", This, ssScriptState);
|
TRACE("(%p)->(%x)\n", This, ssScriptState);
|
||||||
|
|
||||||
|
@ -354,14 +352,14 @@ static HRESULT WINAPI ActiveScriptSite_OnStateChange(IActiveScriptSite *iface, S
|
||||||
|
|
||||||
static HRESULT WINAPI ActiveScriptSite_OnScriptError(IActiveScriptSite *iface, IActiveScriptError *pscripterror)
|
static HRESULT WINAPI ActiveScriptSite_OnScriptError(IActiveScriptSite *iface, IActiveScriptError *pscripterror)
|
||||||
{
|
{
|
||||||
ScriptHost *This = ACTSCPSITE_THIS(iface);
|
ScriptHost *This = impl_from_IActiveScriptSite(iface);
|
||||||
FIXME("(%p)->(%p)\n", This, pscripterror);
|
FIXME("(%p)->(%p)\n", This, pscripterror);
|
||||||
return E_NOTIMPL;
|
return E_NOTIMPL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT WINAPI ActiveScriptSite_OnEnterScript(IActiveScriptSite *iface)
|
static HRESULT WINAPI ActiveScriptSite_OnEnterScript(IActiveScriptSite *iface)
|
||||||
{
|
{
|
||||||
ScriptHost *This = ACTSCPSITE_THIS(iface);
|
ScriptHost *This = impl_from_IActiveScriptSite(iface);
|
||||||
|
|
||||||
TRACE("(%p)->()\n", This);
|
TRACE("(%p)->()\n", This);
|
||||||
|
|
||||||
|
@ -370,15 +368,13 @@ static HRESULT WINAPI ActiveScriptSite_OnEnterScript(IActiveScriptSite *iface)
|
||||||
|
|
||||||
static HRESULT WINAPI ActiveScriptSite_OnLeaveScript(IActiveScriptSite *iface)
|
static HRESULT WINAPI ActiveScriptSite_OnLeaveScript(IActiveScriptSite *iface)
|
||||||
{
|
{
|
||||||
ScriptHost *This = ACTSCPSITE_THIS(iface);
|
ScriptHost *This = impl_from_IActiveScriptSite(iface);
|
||||||
|
|
||||||
TRACE("(%p)->()\n", This);
|
TRACE("(%p)->()\n", This);
|
||||||
|
|
||||||
return S_OK;
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
#undef ACTSCPSITE_THIS
|
|
||||||
|
|
||||||
static const IActiveScriptSiteVtbl ActiveScriptSiteVtbl = {
|
static const IActiveScriptSiteVtbl ActiveScriptSiteVtbl = {
|
||||||
ActiveScriptSite_QueryInterface,
|
ActiveScriptSite_QueryInterface,
|
||||||
ActiveScriptSite_AddRef,
|
ActiveScriptSite_AddRef,
|
||||||
|
@ -393,38 +389,39 @@ static const IActiveScriptSiteVtbl ActiveScriptSiteVtbl = {
|
||||||
ActiveScriptSite_OnLeaveScript
|
ActiveScriptSite_OnLeaveScript
|
||||||
};
|
};
|
||||||
|
|
||||||
#define ACTSCPPOLL_THIS(iface) DEFINE_THIS(ScriptHost, IActiveScriptSiteInterruptPoll, iface)
|
static inline ScriptHost *impl_from_IActiveScriptSiteInterruptPoll(IActiveScriptSiteInterruptPoll *iface)
|
||||||
|
{
|
||||||
|
return CONTAINING_RECORD(iface, ScriptHost, IActiveScriptSiteInterruptPoll_iface);
|
||||||
|
}
|
||||||
|
|
||||||
static HRESULT WINAPI ActiveScriptSiteInterruptPoll_QueryInterface(IActiveScriptSiteInterruptPoll *iface,
|
static HRESULT WINAPI ActiveScriptSiteInterruptPoll_QueryInterface(IActiveScriptSiteInterruptPoll *iface,
|
||||||
REFIID riid, void **ppv)
|
REFIID riid, void **ppv)
|
||||||
{
|
{
|
||||||
ScriptHost *This = ACTSCPPOLL_THIS(iface);
|
ScriptHost *This = impl_from_IActiveScriptSiteInterruptPoll(iface);
|
||||||
return IActiveScriptSite_QueryInterface(ACTSCPSITE(This), riid, ppv);
|
return IActiveScriptSite_QueryInterface(&This->IActiveScriptSite_iface, riid, ppv);
|
||||||
}
|
}
|
||||||
|
|
||||||
static ULONG WINAPI ActiveScriptSiteInterruptPoll_AddRef(IActiveScriptSiteInterruptPoll *iface)
|
static ULONG WINAPI ActiveScriptSiteInterruptPoll_AddRef(IActiveScriptSiteInterruptPoll *iface)
|
||||||
{
|
{
|
||||||
ScriptHost *This = ACTSCPPOLL_THIS(iface);
|
ScriptHost *This = impl_from_IActiveScriptSiteInterruptPoll(iface);
|
||||||
return IActiveScriptSite_AddRef(ACTSCPSITE(This));
|
return IActiveScriptSite_AddRef(&This->IActiveScriptSite_iface);
|
||||||
}
|
}
|
||||||
|
|
||||||
static ULONG WINAPI ActiveScriptSiteInterruptPoll_Release(IActiveScriptSiteInterruptPoll *iface)
|
static ULONG WINAPI ActiveScriptSiteInterruptPoll_Release(IActiveScriptSiteInterruptPoll *iface)
|
||||||
{
|
{
|
||||||
ScriptHost *This = ACTSCPPOLL_THIS(iface);
|
ScriptHost *This = impl_from_IActiveScriptSiteInterruptPoll(iface);
|
||||||
return IActiveScriptSite_Release(ACTSCPSITE(This));
|
return IActiveScriptSite_Release(&This->IActiveScriptSite_iface);
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT WINAPI ActiveScriptSiteInterruptPoll_QueryContinue(IActiveScriptSiteInterruptPoll *iface)
|
static HRESULT WINAPI ActiveScriptSiteInterruptPoll_QueryContinue(IActiveScriptSiteInterruptPoll *iface)
|
||||||
{
|
{
|
||||||
ScriptHost *This = ACTSCPPOLL_THIS(iface);
|
ScriptHost *This = impl_from_IActiveScriptSiteInterruptPoll(iface);
|
||||||
|
|
||||||
TRACE("(%p)\n", This);
|
TRACE("(%p)\n", This);
|
||||||
|
|
||||||
return S_OK;
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
#undef ACTSCPPOLL_THIS
|
|
||||||
|
|
||||||
static const IActiveScriptSiteInterruptPollVtbl ActiveScriptSiteInterruptPollVtbl = {
|
static const IActiveScriptSiteInterruptPollVtbl ActiveScriptSiteInterruptPollVtbl = {
|
||||||
ActiveScriptSiteInterruptPoll_QueryInterface,
|
ActiveScriptSiteInterruptPoll_QueryInterface,
|
||||||
ActiveScriptSiteInterruptPoll_AddRef,
|
ActiveScriptSiteInterruptPoll_AddRef,
|
||||||
|
@ -432,43 +429,44 @@ static const IActiveScriptSiteInterruptPollVtbl ActiveScriptSiteInterruptPollVtb
|
||||||
ActiveScriptSiteInterruptPoll_QueryContinue
|
ActiveScriptSiteInterruptPoll_QueryContinue
|
||||||
};
|
};
|
||||||
|
|
||||||
#define ACTSCPWIN_THIS(iface) DEFINE_THIS(ScriptHost, IActiveScriptSiteWindow, iface)
|
static inline ScriptHost *impl_from_IActiveScriptSiteWindow(IActiveScriptSiteWindow *iface)
|
||||||
|
{
|
||||||
|
return CONTAINING_RECORD(iface, ScriptHost, IActiveScriptSiteWindow_iface);
|
||||||
|
}
|
||||||
|
|
||||||
static HRESULT WINAPI ActiveScriptSiteWindow_QueryInterface(IActiveScriptSiteWindow *iface,
|
static HRESULT WINAPI ActiveScriptSiteWindow_QueryInterface(IActiveScriptSiteWindow *iface,
|
||||||
REFIID riid, void **ppv)
|
REFIID riid, void **ppv)
|
||||||
{
|
{
|
||||||
ScriptHost *This = ACTSCPWIN_THIS(iface);
|
ScriptHost *This = impl_from_IActiveScriptSiteWindow(iface);
|
||||||
return IActiveScriptSite_QueryInterface(ACTSCPSITE(This), riid, ppv);
|
return IActiveScriptSite_QueryInterface(&This->IActiveScriptSite_iface, riid, ppv);
|
||||||
}
|
}
|
||||||
|
|
||||||
static ULONG WINAPI ActiveScriptSiteWindow_AddRef(IActiveScriptSiteWindow *iface)
|
static ULONG WINAPI ActiveScriptSiteWindow_AddRef(IActiveScriptSiteWindow *iface)
|
||||||
{
|
{
|
||||||
ScriptHost *This = ACTSCPWIN_THIS(iface);
|
ScriptHost *This = impl_from_IActiveScriptSiteWindow(iface);
|
||||||
return IActiveScriptSite_AddRef(ACTSCPSITE(This));
|
return IActiveScriptSite_AddRef(&This->IActiveScriptSite_iface);
|
||||||
}
|
}
|
||||||
|
|
||||||
static ULONG WINAPI ActiveScriptSiteWindow_Release(IActiveScriptSiteWindow *iface)
|
static ULONG WINAPI ActiveScriptSiteWindow_Release(IActiveScriptSiteWindow *iface)
|
||||||
{
|
{
|
||||||
ScriptHost *This = ACTSCPWIN_THIS(iface);
|
ScriptHost *This = impl_from_IActiveScriptSiteWindow(iface);
|
||||||
return IActiveScriptSite_Release(ACTSCPSITE(This));
|
return IActiveScriptSite_Release(&This->IActiveScriptSite_iface);
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT WINAPI ActiveScriptSiteWindow_GetWindow(IActiveScriptSiteWindow *iface, HWND *phwnd)
|
static HRESULT WINAPI ActiveScriptSiteWindow_GetWindow(IActiveScriptSiteWindow *iface, HWND *phwnd)
|
||||||
{
|
{
|
||||||
ScriptHost *This = ACTSCPWIN_THIS(iface);
|
ScriptHost *This = impl_from_IActiveScriptSiteWindow(iface);
|
||||||
FIXME("(%p)->(%p)\n", This, phwnd);
|
FIXME("(%p)->(%p)\n", This, phwnd);
|
||||||
return E_NOTIMPL;
|
return E_NOTIMPL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT WINAPI ActiveScriptSiteWindow_EnableModeless(IActiveScriptSiteWindow *iface, BOOL fEnable)
|
static HRESULT WINAPI ActiveScriptSiteWindow_EnableModeless(IActiveScriptSiteWindow *iface, BOOL fEnable)
|
||||||
{
|
{
|
||||||
ScriptHost *This = ACTSCPWIN_THIS(iface);
|
ScriptHost *This = impl_from_IActiveScriptSiteWindow(iface);
|
||||||
FIXME("(%p)->(%x)\n", This, fEnable);
|
FIXME("(%p)->(%x)\n", This, fEnable);
|
||||||
return E_NOTIMPL;
|
return E_NOTIMPL;
|
||||||
}
|
}
|
||||||
|
|
||||||
#undef ACTSCPWIN_THIS
|
|
||||||
|
|
||||||
static const IActiveScriptSiteWindowVtbl ActiveScriptSiteWindowVtbl = {
|
static const IActiveScriptSiteWindowVtbl ActiveScriptSiteWindowVtbl = {
|
||||||
ActiveScriptSiteWindow_QueryInterface,
|
ActiveScriptSiteWindow_QueryInterface,
|
||||||
ActiveScriptSiteWindow_AddRef,
|
ActiveScriptSiteWindow_AddRef,
|
||||||
|
@ -477,31 +475,34 @@ static const IActiveScriptSiteWindowVtbl ActiveScriptSiteWindowVtbl = {
|
||||||
ActiveScriptSiteWindow_EnableModeless
|
ActiveScriptSiteWindow_EnableModeless
|
||||||
};
|
};
|
||||||
|
|
||||||
#define ACTSCPDBG_THIS(iface) DEFINE_THIS(ScriptHost, IActiveScriptSiteDebug, iface)
|
static inline ScriptHost *impl_from_IActiveScriptSiteDebug(IActiveScriptSiteDebug *iface)
|
||||||
|
{
|
||||||
|
return CONTAINING_RECORD(iface, ScriptHost, IActiveScriptSiteDebug_iface);
|
||||||
|
}
|
||||||
|
|
||||||
static HRESULT WINAPI ActiveScriptSiteDebug_QueryInterface(IActiveScriptSiteDebug *iface,
|
static HRESULT WINAPI ActiveScriptSiteDebug_QueryInterface(IActiveScriptSiteDebug *iface,
|
||||||
REFIID riid, void **ppv)
|
REFIID riid, void **ppv)
|
||||||
{
|
{
|
||||||
ScriptHost *This = ACTSCPDBG_THIS(iface);
|
ScriptHost *This = impl_from_IActiveScriptSiteDebug(iface);
|
||||||
return IActiveScriptSite_QueryInterface(ACTSCPSITE(This), riid, ppv);
|
return IActiveScriptSite_QueryInterface(&This->IActiveScriptSite_iface, riid, ppv);
|
||||||
}
|
}
|
||||||
|
|
||||||
static ULONG WINAPI ActiveScriptSiteDebug_AddRef(IActiveScriptSiteDebug *iface)
|
static ULONG WINAPI ActiveScriptSiteDebug_AddRef(IActiveScriptSiteDebug *iface)
|
||||||
{
|
{
|
||||||
ScriptHost *This = ACTSCPDBG_THIS(iface);
|
ScriptHost *This = impl_from_IActiveScriptSiteDebug(iface);
|
||||||
return IActiveScriptSite_AddRef(ACTSCPSITE(This));
|
return IActiveScriptSite_AddRef(&This->IActiveScriptSite_iface);
|
||||||
}
|
}
|
||||||
|
|
||||||
static ULONG WINAPI ActiveScriptSiteDebug_Release(IActiveScriptSiteDebug *iface)
|
static ULONG WINAPI ActiveScriptSiteDebug_Release(IActiveScriptSiteDebug *iface)
|
||||||
{
|
{
|
||||||
ScriptHost *This = ACTSCPDBG_THIS(iface);
|
ScriptHost *This = impl_from_IActiveScriptSiteDebug(iface);
|
||||||
return IActiveScriptSite_Release(ACTSCPSITE(This));
|
return IActiveScriptSite_Release(&This->IActiveScriptSite_iface);
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT WINAPI ActiveScriptSiteDebug_GetDocumentContextFromPosition(IActiveScriptSiteDebug *iface,
|
static HRESULT WINAPI ActiveScriptSiteDebug_GetDocumentContextFromPosition(IActiveScriptSiteDebug *iface,
|
||||||
CTXARG_T dwSourceContext, ULONG uCharacterOffset, ULONG uNumChars, IDebugDocumentContext **ppsc)
|
CTXARG_T dwSourceContext, ULONG uCharacterOffset, ULONG uNumChars, IDebugDocumentContext **ppsc)
|
||||||
{
|
{
|
||||||
ScriptHost *This = ACTSCPDBG_THIS(iface);
|
ScriptHost *This = impl_from_IActiveScriptSiteDebug(iface);
|
||||||
FIXME("(%p)->(%s %u %u %p)\n", This, wine_dbgstr_longlong(dwSourceContext), uCharacterOffset,
|
FIXME("(%p)->(%s %u %u %p)\n", This, wine_dbgstr_longlong(dwSourceContext), uCharacterOffset,
|
||||||
uNumChars, ppsc);
|
uNumChars, ppsc);
|
||||||
return E_NOTIMPL;
|
return E_NOTIMPL;
|
||||||
|
@ -509,7 +510,7 @@ static HRESULT WINAPI ActiveScriptSiteDebug_GetDocumentContextFromPosition(IActi
|
||||||
|
|
||||||
static HRESULT WINAPI ActiveScriptSiteDebug_GetApplication(IActiveScriptSiteDebug *iface, IDebugApplication **ppda)
|
static HRESULT WINAPI ActiveScriptSiteDebug_GetApplication(IActiveScriptSiteDebug *iface, IDebugApplication **ppda)
|
||||||
{
|
{
|
||||||
ScriptHost *This = ACTSCPDBG_THIS(iface);
|
ScriptHost *This = impl_from_IActiveScriptSiteDebug(iface);
|
||||||
FIXME("(%p)->(%p)\n", This, ppda);
|
FIXME("(%p)->(%p)\n", This, ppda);
|
||||||
return E_NOTIMPL;
|
return E_NOTIMPL;
|
||||||
}
|
}
|
||||||
|
@ -517,7 +518,7 @@ static HRESULT WINAPI ActiveScriptSiteDebug_GetApplication(IActiveScriptSiteDebu
|
||||||
static HRESULT WINAPI ActiveScriptSiteDebug_GetRootApplicationNode(IActiveScriptSiteDebug *iface,
|
static HRESULT WINAPI ActiveScriptSiteDebug_GetRootApplicationNode(IActiveScriptSiteDebug *iface,
|
||||||
IDebugApplicationNode **ppdanRoot)
|
IDebugApplicationNode **ppdanRoot)
|
||||||
{
|
{
|
||||||
ScriptHost *This = ACTSCPDBG_THIS(iface);
|
ScriptHost *This = impl_from_IActiveScriptSiteDebug(iface);
|
||||||
FIXME("(%p)->(%p)\n", This, ppdanRoot);
|
FIXME("(%p)->(%p)\n", This, ppdanRoot);
|
||||||
return E_NOTIMPL;
|
return E_NOTIMPL;
|
||||||
}
|
}
|
||||||
|
@ -525,13 +526,11 @@ static HRESULT WINAPI ActiveScriptSiteDebug_GetRootApplicationNode(IActiveScript
|
||||||
static HRESULT WINAPI ActiveScriptSiteDebug_OnScriptErrorDebug(IActiveScriptSiteDebug *iface,
|
static HRESULT WINAPI ActiveScriptSiteDebug_OnScriptErrorDebug(IActiveScriptSiteDebug *iface,
|
||||||
IActiveScriptErrorDebug *pErrorDebug, BOOL *pfEnterDebugger, BOOL *pfCallOnScriptErrorWhenContinuing)
|
IActiveScriptErrorDebug *pErrorDebug, BOOL *pfEnterDebugger, BOOL *pfCallOnScriptErrorWhenContinuing)
|
||||||
{
|
{
|
||||||
ScriptHost *This = ACTSCPDBG_THIS(iface);
|
ScriptHost *This = impl_from_IActiveScriptSiteDebug(iface);
|
||||||
FIXME("(%p)->(%p %p %p)\n", This, pErrorDebug, pfEnterDebugger, pfCallOnScriptErrorWhenContinuing);
|
FIXME("(%p)->(%p %p %p)\n", This, pErrorDebug, pfEnterDebugger, pfCallOnScriptErrorWhenContinuing);
|
||||||
return E_NOTIMPL;
|
return E_NOTIMPL;
|
||||||
}
|
}
|
||||||
|
|
||||||
#undef ACTSCPDBG_THIS
|
|
||||||
|
|
||||||
static const IActiveScriptSiteDebugVtbl ActiveScriptSiteDebugVtbl = {
|
static const IActiveScriptSiteDebugVtbl ActiveScriptSiteDebugVtbl = {
|
||||||
ActiveScriptSiteDebug_QueryInterface,
|
ActiveScriptSiteDebug_QueryInterface,
|
||||||
ActiveScriptSiteDebug_AddRef,
|
ActiveScriptSiteDebug_AddRef,
|
||||||
|
@ -550,19 +549,19 @@ static inline ScriptHost *impl_from_IServiceProvider(IServiceProvider *iface)
|
||||||
static HRESULT WINAPI ASServiceProvider_QueryInterface(IServiceProvider *iface, REFIID riid, void **ppv)
|
static HRESULT WINAPI ASServiceProvider_QueryInterface(IServiceProvider *iface, REFIID riid, void **ppv)
|
||||||
{
|
{
|
||||||
ScriptHost *This = impl_from_IServiceProvider(iface);
|
ScriptHost *This = impl_from_IServiceProvider(iface);
|
||||||
return IActiveScriptSite_QueryInterface(ACTSCPSITE(This), riid, ppv);
|
return IActiveScriptSite_QueryInterface(&This->IActiveScriptSite_iface, riid, ppv);
|
||||||
}
|
}
|
||||||
|
|
||||||
static ULONG WINAPI ASServiceProvider_AddRef(IServiceProvider *iface)
|
static ULONG WINAPI ASServiceProvider_AddRef(IServiceProvider *iface)
|
||||||
{
|
{
|
||||||
ScriptHost *This = impl_from_IServiceProvider(iface);
|
ScriptHost *This = impl_from_IServiceProvider(iface);
|
||||||
return IActiveScriptSite_AddRef(ACTSCPSITE(This));
|
return IActiveScriptSite_AddRef(&This->IActiveScriptSite_iface);
|
||||||
}
|
}
|
||||||
|
|
||||||
static ULONG WINAPI ASServiceProvider_Release(IServiceProvider *iface)
|
static ULONG WINAPI ASServiceProvider_Release(IServiceProvider *iface)
|
||||||
{
|
{
|
||||||
ScriptHost *This = impl_from_IServiceProvider(iface);
|
ScriptHost *This = impl_from_IServiceProvider(iface);
|
||||||
return IActiveScriptSite_Release(ACTSCPSITE(This));
|
return IActiveScriptSite_Release(&This->IActiveScriptSite_iface);
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT WINAPI ASServiceProvider_QueryService(IServiceProvider *iface, REFGUID guidService,
|
static HRESULT WINAPI ASServiceProvider_QueryService(IServiceProvider *iface, REFGUID guidService,
|
||||||
|
@ -597,10 +596,10 @@ static ScriptHost *create_script_host(HTMLWindow *window, const GUID *guid)
|
||||||
HRESULT hres;
|
HRESULT hres;
|
||||||
|
|
||||||
ret = heap_alloc_zero(sizeof(*ret));
|
ret = heap_alloc_zero(sizeof(*ret));
|
||||||
ret->lpIActiveScriptSiteVtbl = &ActiveScriptSiteVtbl;
|
ret->IActiveScriptSite_iface.lpVtbl = &ActiveScriptSiteVtbl;
|
||||||
ret->lpIActiveScriptSiteInterruptPollVtbl = &ActiveScriptSiteInterruptPollVtbl;
|
ret->IActiveScriptSiteInterruptPoll_iface.lpVtbl = &ActiveScriptSiteInterruptPollVtbl;
|
||||||
ret->lpIActiveScriptSiteWindowVtbl = &ActiveScriptSiteWindowVtbl;
|
ret->IActiveScriptSiteWindow_iface.lpVtbl = &ActiveScriptSiteWindowVtbl;
|
||||||
ret->lpIActiveScriptSiteDebugVtbl = &ActiveScriptSiteDebugVtbl;
|
ret->IActiveScriptSiteDebug_iface.lpVtbl = &ActiveScriptSiteDebugVtbl;
|
||||||
ret->IServiceProvider_iface.lpVtbl = &ASServiceProviderVtbl;
|
ret->IServiceProvider_iface.lpVtbl = &ASServiceProviderVtbl;
|
||||||
ret->ref = 1;
|
ret->ref = 1;
|
||||||
ret->window = window;
|
ret->window = window;
|
||||||
|
@ -1016,6 +1015,6 @@ void release_script_hosts(HTMLWindow *window)
|
||||||
release_script_engine(iter);
|
release_script_engine(iter);
|
||||||
list_remove(&iter->entry);
|
list_remove(&iter->entry);
|
||||||
iter->window = NULL;
|
iter->window = NULL;
|
||||||
IActiveScript_Release(ACTSCPSITE(iter));
|
IActiveScript_Release(&iter->IActiveScriptSite_iface);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue