40#define IActiveScriptParse_Release IActiveScriptParse64_Release
41#define IActiveScriptParse_InitNew IActiveScriptParse64_InitNew
42#define IActiveScriptParse_ParseScriptText IActiveScriptParse64_ParseScriptText
46#define IActiveScriptParse_Release IActiveScriptParse32_Release
47#define IActiveScriptParse_InitNew IActiveScriptParse32_InitNew
48#define IActiveScriptParse_ParseScriptText IActiveScriptParse32_ParseScriptText
71static void SVect_Free(SIMPLEVECTOR *pV)
78static void* SVect_Add(SIMPLEVECTOR *pV)
87 p = (
char*)
p + (pV->count * pV->itemsize);
102#define SVect_Delete(pV, pItem) ( (pV), (pItem) )
104static void* SVect_Get(SIMPLEVECTOR *pV,
UINT i)
106 return pV->mem &&
i < pV->count ? (
char*)pV->mem + (
i * pV->itemsize) :
NULL;
114SIMPLEVECTOR g_global_items = {
sizeof(GLOBAL_ITEM) };
116static void free_globals(
void)
121 GLOBAL_ITEM *
p = (GLOBAL_ITEM*)SVect_Get(&g_global_items,
i);
124 IUnknown_Release(
p->punk);
127 SVect_Free(&g_global_items);
139 item = SVect_Add(&g_global_items);
147 IUnknown_AddRef(punk);
150 SVect_Delete(&g_global_items,
item);
163 IUnknown_Release(punk);
174 GLOBAL_ITEM *
p = (GLOBAL_ITEM*)SVect_Get(&g_global_items,
i);
181 if (
Mask & SCRIPTINFO_IUNKNOWN)
186 IUnknown_AddRef(
p->punk);
230 HRESULT hr = get_globalitem_info(pstrName, dwReturnMask, ppunkItem, ppti, &handled);
239 if(dwReturnMask & SCRIPTINFO_ITYPEINFO) {
244 if(dwReturnMask & SCRIPTINFO_IUNKNOWN) {
260 const VARIANT *pvarResult,
const EXCEPINFO *pexcepinfo)
325 TRACE(
"(%p)\n", phwnd);
333 TRACE(
"(%x)\n", fEnable);
353 TRACE(
"(IID_IActiveScriptSite %p)\n",
ppv);
356 TRACE(
"(IID_IActiveScriptSiteWindow %p)\n",
ppv);
373 static const WCHAR wscript_exeW[] = {
'w',
's',
'c',
'r',
'i',
'p',
't',
'.',
'e',
'x',
'e',0};
395 static const WCHAR script_engineW[] =
396 {
'\\',
'S',
'c',
'r',
'i',
'p',
't',
'E',
'n',
'g',
'i',
'n',
'e',0};
428 IActiveScriptParse **
parser)
439 hres = IUnknown_QueryInterface(unk, &IID_IActiveScript, (
void**)&
script);
440 IUnknown_Release(unk);
444 hres = IActiveScript_QueryInterface(
script, &IID_IActiveScriptParse, (
void**)
parser);
446 IActiveScript_Release(
script);
473 hres = IActiveScript_AddNamedItem(
script,
wshW, SCRIPTITEM_ISVISIBLE);
483 const char *file_map;
523 SCRIPTTEXT_HOSTMANAGESSOURCE|SCRIPTITEM_ISVISIBLE,
NULL,
NULL);
545 if (bsname &&
SUCCEEDED(
hr = IXMLDOMNode_get_attributes(pnode, &
pmap)))
547 if (
SUCCEEDED(
hr = IXMLDOMNamedNodeMap_getNamedItem(
pmap, bsname, &pnode)))
552 hr = IXMLDOMNode_get_text(pnode, pout);
555 IXMLDOMNode_Release(pnode);
558 IXMLDOMNamedNodeMap_Release(
pmap);
570 if (bsname &&
SUCCEEDED(
hr = IXMLDOMElement_getElementsByTagName(pelem, bsname, &pnl)))
572 hr = IXMLDOMNodeList_get_item(pnl,
index, ppout);
575 IUnknown_Release(pnl);
588 hr = IUnknown_QueryInterface(pnode, &IID_IXMLDOMElement, (
void**)ppout);
589 IUnknown_Release(pnode);
597 if (
SUCCEEDED(xmldomnode_getattributevalue(
obj,
L"id", &bsid)))
601 hr = xmldomnode_getattributevalue(
obj,
L"clsid", &bsclsid);
605 if (
SUCCEEDED(
hr = xmldomnode_getattributevalue(
obj,
L"progid", &bsclsid)))
613 hr = add_globalitem_from_clsid(
script, bsid, &
clsid, SCRIPTITEM_ISVISIBLE);
626 if (
SUCCEEDED(xmldomelem_getelembytag(jobtag,
L"script", 0, &scripttag)))
629 IActiveScriptParse *
parser;
631 if (
FAILED(xmldomnode_getattributevalue(scripttag,
L"language", &
lang)))
650 IUnknown_Release(
obj);
661 SCRIPTTEXT_HOSTMANAGESSOURCE|SCRIPTITEM_ISVISIBLE,
666 IActiveScript_Close(
script);
676 IUnknown_Release(scripttag);
709 &IID_IXMLDOMDocument, (
void**)&pdoc);
718 if (!bsurl || (
hr = IXMLDOMDocument_load(pdoc,
v, &succ)) > 0 || (
SUCCEEDED(
hr) && !succ))
725 if (
SUCCEEDED(
hr = IXMLDOMElement_get_tagName(pdocelm, &tagName)))
731 if (
SUCCEEDED(
hr = xmldomelem_getelembytagasdomelem(pdocelm,
L"job", 0, &
p)))
733 IUnknown_Release(pdocelm);
746 hr = run_wsfjob(pdocelm);
748 IUnknown_Release(pdocelm);
751 IUnknown_Release(pdoc);
762 static const WCHAR nologoW[] = {
'n',
'o',
'l',
'o',
'g',
'o',0};
763 static const WCHAR iactive[] = {
'i',0};
764 static const WCHAR batch[] = {
'b',0};
774 if(
wcsicmp(prop, iactive) == 0)
776 else if(
wcsicmp(prop, batch) == 0)
778 else if(
wcsicmp(prop, nologoW) == 0)
791 IActiveScriptParse *
parser;
838 WINE_FIXME(
"Could not create script engine\n");
845 IActiveScript_Close(
script);
851 IActiveScript_Release(
script);
@ SCRIPTSTATE_INITIALIZED
enum tagSCRIPTSTATE SCRIPTSTATE
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
static ULONG WINAPI ActiveScriptSite_Release(IActiveScriptSite *iface)
static ULONG WINAPI ActiveScriptSiteWindow_Release(IActiveScriptSiteWindow *iface)
static HRESULT WINAPI ActiveScriptSite_OnLeaveScript(IActiveScriptSite *iface)
static BSTR get_script_str(const WCHAR *filename)
static HRESULT query_interface(REFIID, void **)
static const WCHAR wshW[]
static HRESULT WINAPI ActiveScriptSite_OnStateChange(IActiveScriptSite *iface, SCRIPTSTATE ssScriptState)
WCHAR scriptFullName[MAX_PATH]
static const IActiveScriptSiteWindowVtbl ActiveScriptSiteWindowVtbl
static void run_script(const WCHAR *filename, IActiveScript *script, IActiveScriptParse *parser)
static HRESULT WINAPI ActiveScriptSite_GetDocVersionString(IActiveScriptSite *iface, BSTR *pbstrVersion)
static BOOL get_engine_clsid(const WCHAR *ext, CLSID *clsid)
#define IActiveScriptParse_InitNew
#define IActiveScriptParse_ParseScriptText
#define IActiveScriptParse_Release
static BOOL init_engine(IActiveScript *script, IActiveScriptParse *parser)
static BOOL load_typelib(void)
static HRESULT WINAPI ActiveScriptSiteWindow_GetWindow(IActiveScriptSiteWindow *iface, HWND *phwnd)
static HRESULT WINAPI ActiveScriptSite_QueryInterface(IActiveScriptSite *iface, REFIID riid, void **ppv)
static BOOL create_engine(CLSID *clsid, IActiveScript **script_ret, IActiveScriptParse **parser)
static HRESULT WINAPI ActiveScriptSite_OnEnterScript(IActiveScriptSite *iface)
static const WCHAR wscriptW[]
static HRESULT WINAPI ActiveScriptSiteWindow_EnableModeless(IActiveScriptSiteWindow *iface, BOOL fEnable)
static ULONG WINAPI ActiveScriptSite_AddRef(IActiveScriptSite *iface)
static HRESULT WINAPI ActiveScriptSite_OnScriptTerminate(IActiveScriptSite *iface, const VARIANT *pvarResult, const EXCEPINFO *pexcepinfo)
static HRESULT WINAPI ActiveScriptSiteWindow_QueryInterface(IActiveScriptSiteWindow *iface, REFIID riid, void **ppv)
int WINAPI wWinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPWSTR cmdline, int cmdshow)
static IActiveScriptSiteWindow script_site_window
static IActiveScriptSiteVtbl ActiveScriptSiteVtbl
static HRESULT WINAPI ActiveScriptSite_GetLCID(IActiveScriptSite *iface, LCID *plcid)
static HRESULT WINAPI ActiveScriptSite_GetItemInfo(IActiveScriptSite *iface, LPCOLESTR pstrName, DWORD dwReturnMask, IUnknown **ppunkItem, ITypeInfo **ppti)
static HRESULT WINAPI ActiveScriptSite_OnScriptError(IActiveScriptSite *iface, IActiveScriptError *pscripterror)
static IActiveScriptSite script_site
static ULONG WINAPI ActiveScriptSiteWindow_AddRef(IActiveScriptSiteWindow *iface)
static BOOL set_host_properties(const WCHAR *prop)
#define RegCloseKey(hKey)
LONG WINAPI RegOpenKeyW(HKEY hKey, LPCWSTR lpSubKey, PHKEY phkResult)
LSTATUS WINAPI RegQueryValueW(HKEY hkey, LPCWSTR name, LPWSTR data, LPLONG count)
#define INVALID_HANDLE_VALUE
#define CreateFileMappingW(a, b, c, d, e, f)
#define ERROR_NO_MORE_ITEMS
#define MultiByteToWideChar
static const WCHAR *const ext[]
DWORD WINAPI GetFileSize(HANDLE hFile, LPDWORD lpFileSizeHigh)
DWORD WINAPI GetFullPathNameW(IN LPCWSTR lpFileName, IN DWORD nBufferLength, OUT LPWSTR lpBuffer, OUT LPWSTR *lpFilePart)
LPWSTR WINAPI GetCommandLineW(VOID)
int WINAPI lstrcmpW(LPCWSTR str1, LPCWSTR str2)
int WINAPI lstrcmpiW(LPCWSTR str1, LPCWSTR str2)
LCID WINAPI GetUserDefaultLCID(void)
HRESULT WINAPI DECLSPEC_HOTPATCH CoCreateInstance(REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext, REFIID iid, LPVOID *ppv)
HRESULT WINAPI DECLSPEC_HOTPATCH CLSIDFromProgID(LPCOLESTR progid, LPCLSID clsid)
HRESULT WINAPI CoInitialize(LPVOID lpReserved)
HRESULT WINAPI CLSIDFromString(LPCOLESTR idstr, LPCLSID id)
void WINAPI DECLSPEC_HOTPATCH CoUninitialize(void)
HRESULT WINAPI LoadTypeLib(const OLECHAR *szFile, ITypeLib **pptLib)
HRESULT WINAPI UrlCreateFromPathW(LPCWSTR pszPath, LPWSTR pszUrl, LPDWORD pcchUrl, DWORD dwReserved)
GLuint GLuint GLsizei count
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
HLOCAL NTAPI LocalReAlloc(HLOCAL hMem, SIZE_T dwBytes, UINT uFlags)
HLOCAL NTAPI LocalAlloc(UINT uFlags, SIZE_T dwBytes)
HLOCAL NTAPI LocalFree(HLOCAL hMem)
VARIANT_BOOL wshInteractive
LPWSTR WINAPI lstrcatW(LPWSTR lpString1, LPCWSTR lpString2)
static DWORD DWORD void LPSTR DWORD cch
#define FILE_ATTRIBUTE_READONLY
BSTR WINAPI SysAllocString(LPCOLESTR str)
void WINAPI DECLSPEC_HOTPATCH SysFreeString(BSTR str)
BSTR WINAPI SysAllocStringLen(const OLECHAR *str, unsigned int len)
#define IsEqualGUID(rguid1, rguid2)
static __inline const char * wine_dbgstr_guid(const GUID *id)
LPWSTR *WINAPI CommandLineToArgvW(LPCWSTR lpCmdline, int *numargs)
HRESULT WINAPI DECLSPEC_HOTPATCH VariantClear(VARIANTARG *pVarg)
static const WCHAR lang[]
#define HRESULT_FROM_WIN32(x)
#define HKEY_CLASSES_ROOT