2 * Copyright 2008 Jacek Caban for CodeWeavers
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
22 #include "wine/debug.h"
24 WINE_DEFAULT_DEBUG_CHANNEL(jscript);
27 const IActiveScriptVtbl *lpIActiveScriptVtbl;
32 #define ACTSCRIPT(x) ((IActiveScript*) &(x)->lpIActiveScriptVtbl)
34 #define ACTSCRIPT_THIS(iface) DEFINE_THIS(JScript, IActiveScript, iface)
36 static HRESULT WINAPI JScript_QueryInterface(IActiveScript *iface, REFIID riid, void **ppv)
38 JScript *This = ACTSCRIPT_THIS(iface);
42 if(IsEqualGUID(riid, &IID_IUnknown)) {
43 TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv);
44 *ppv = ACTSCRIPT(This);
45 }else if(IsEqualGUID(riid, &IID_IActiveScript)) {
46 TRACE("(%p)->(IID_IActiveScript %p)\n", This, ppv);
47 *ppv = ACTSCRIPT(This);
51 IUnknown_AddRef((IUnknown*)*ppv);
55 FIXME("(%p)->(%s %p)\n", This, debugstr_guid(riid), ppv);
59 static ULONG WINAPI JScript_AddRef(IActiveScript *iface)
61 JScript *This = ACTSCRIPT_THIS(iface);
62 LONG ref = InterlockedIncrement(&This->ref);
64 TRACE("(%p) ref=%d\n", This, ref);
69 static ULONG WINAPI JScript_Release(IActiveScript *iface)
71 JScript *This = ACTSCRIPT_THIS(iface);
72 LONG ref = InterlockedDecrement(&This->ref);
74 TRACE("(%p) ref=%d\n", iface, ref);
82 static HRESULT WINAPI JScript_SetScriptSite(IActiveScript *iface,
83 IActiveScriptSite *pass)
85 JScript *This = ACTSCRIPT_THIS(iface);
86 FIXME("(%p)->(%p)\n", This, pass);
90 static HRESULT WINAPI JScript_GetScriptSite(IActiveScript *iface, REFIID riid,
93 JScript *This = ACTSCRIPT_THIS(iface);
94 FIXME("(%p)->()\n", This);
98 static HRESULT WINAPI JScript_SetScriptState(IActiveScript *iface, SCRIPTSTATE ss)
100 JScript *This = ACTSCRIPT_THIS(iface);
101 FIXME("(%p)->(%d)\n", This, ss);
105 static HRESULT WINAPI JScript_GetScriptState(IActiveScript *iface, SCRIPTSTATE *pssState)
107 JScript *This = ACTSCRIPT_THIS(iface);
108 FIXME("(%p)->(%p)\n", This, pssState);
112 static HRESULT WINAPI JScript_Close(IActiveScript *iface)
114 JScript *This = ACTSCRIPT_THIS(iface);
115 FIXME("(%p)->()\n", This);
119 static HRESULT WINAPI JScript_AddNamedItem(IActiveScript *iface,
120 LPCOLESTR pstrName, DWORD dwFlags)
122 JScript *This = ACTSCRIPT_THIS(iface);
123 FIXME("(%p)->(%s %x)\n", This, debugstr_w(pstrName), dwFlags);
127 static HRESULT WINAPI JScript_AddTypeLib(IActiveScript *iface, REFGUID rguidTypeLib,
128 DWORD dwMajor, DWORD dwMinor, DWORD dwFlags)
130 JScript *This = ACTSCRIPT_THIS(iface);
131 FIXME("(%p)->()\n", This);
135 static HRESULT WINAPI JScript_GetScriptDispatch(IActiveScript *iface, LPCOLESTR pstrItemName,
138 JScript *This = ACTSCRIPT_THIS(iface);
139 FIXME("(%p)->()\n", This);
143 static HRESULT WINAPI JScript_GetCurrentScriptThreadID(IActiveScript *iface,
144 SCRIPTTHREADID *pstridThread)
146 JScript *This = ACTSCRIPT_THIS(iface);
147 FIXME("(%p)->()\n", This);
151 static HRESULT WINAPI JScript_GetScriptThreadID(IActiveScript *iface,
152 DWORD dwWin32ThreadId, SCRIPTTHREADID *pstidThread)
154 JScript *This = ACTSCRIPT_THIS(iface);
155 FIXME("(%p)->()\n", This);
159 static HRESULT WINAPI JScript_GetScriptThreadState(IActiveScript *iface,
160 SCRIPTTHREADID stidThread, SCRIPTTHREADSTATE *pstsState)
162 JScript *This = ACTSCRIPT_THIS(iface);
163 FIXME("(%p)->()\n", This);
167 static HRESULT WINAPI JScript_InterruptScriptThread(IActiveScript *iface,
168 SCRIPTTHREADID stidThread, const EXCEPINFO *pexcepinfo, DWORD dwFlags)
170 JScript *This = ACTSCRIPT_THIS(iface);
171 FIXME("(%p)->()\n", This);
175 static HRESULT WINAPI JScript_Clone(IActiveScript *iface, IActiveScript **ppscript)
177 JScript *This = ACTSCRIPT_THIS(iface);
178 FIXME("(%p)->()\n", This);
182 #undef ACTSCRIPT_THIS
184 static const IActiveScriptVtbl JScriptVtbl = {
185 JScript_QueryInterface,
188 JScript_SetScriptSite,
189 JScript_GetScriptSite,
190 JScript_SetScriptState,
191 JScript_GetScriptState,
193 JScript_AddNamedItem,
195 JScript_GetScriptDispatch,
196 JScript_GetCurrentScriptThreadID,
197 JScript_GetScriptThreadID,
198 JScript_GetScriptThreadState,
199 JScript_InterruptScriptThread,
203 HRESULT WINAPI JScriptFactory_CreateInstance(IClassFactory *iface, IUnknown *pUnkOuter,
204 REFIID riid, void **ppv)
209 TRACE("(%p %s %p)\n", pUnkOuter, debugstr_guid(riid), ppv);
211 ret = heap_alloc(sizeof(*ret));
213 ret->lpIActiveScriptVtbl = &JScriptVtbl;
216 hres = IActiveScript_QueryInterface(ACTSCRIPT(ret), riid, ppv);
217 IActiveScript_Release(ACTSCRIPT(ret));