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
73static void SVect_Free(SIMPLEVECTOR *pV)
80static void* SVect_Add(SIMPLEVECTOR *pV)
89 p = (
char*)
p + (pV->count * pV->itemsize);
104#define SVect_Delete(pV, pItem) ( (pV), (pItem) )
106static void* SVect_Get(SIMPLEVECTOR *pV,
UINT i)
108 return pV->mem &&
i < pV->count ? (
char*)pV->mem + (
i * pV->itemsize) :
NULL;
116SIMPLEVECTOR g_global_items = {
sizeof(GLOBAL_ITEM) };
118static void free_globals(
void)
123 GLOBAL_ITEM *
p = (GLOBAL_ITEM*)SVect_Get(&g_global_items,
i);
126 IUnknown_Release(
p->punk);
129 SVect_Free(&g_global_items);
141 item = SVect_Add(&g_global_items);
149 IUnknown_AddRef(
punk);
152 SVect_Delete(&g_global_items,
item);
165 IUnknown_Release(
punk);
176 GLOBAL_ITEM *
p = (GLOBAL_ITEM*)SVect_Get(&g_global_items,
i);
183 if (
Mask & SCRIPTINFO_IUNKNOWN)
188 IUnknown_AddRef(
p->punk);
232 HRESULT hr = get_globalitem_info(pstrName, dwReturnMask, ppunkItem, ppti, &handled);
241 if(dwReturnMask & SCRIPTINFO_ITYPEINFO) {
246 if(dwReturnMask & SCRIPTINFO_IUNKNOWN) {
262 const VARIANT *pvarResult,
const EXCEPINFO *pexcepinfo)
327 TRACE(
"(%p)\n", phwnd);
335 TRACE(
"(%x)\n", fEnable);
355 TRACE(
"(IID_IActiveScriptSite %p)\n",
ppv);
358 TRACE(
"(IID_IActiveScriptSiteWindow %p)\n",
ppv);
375 static const WCHAR wscript_exeW[] = {
'w',
's',
'c',
'r',
'i',
'p',
't',
'.',
'e',
'x',
'e',0};
397 static const WCHAR script_engineW[] =
398 {
'\\',
'S',
'c',
'r',
'i',
'p',
't',
'E',
'n',
'g',
'i',
'n',
'e',0};
430 IActiveScriptParse **
parser)
441 hres = IUnknown_QueryInterface(unk, &IID_IActiveScript, (
void**)&
script);
442 IUnknown_Release(unk);
446 hres = IActiveScript_QueryInterface(
script, &IID_IActiveScriptParse, (
void**)
parser);
448 IActiveScript_Release(
script);
475 hres = IActiveScript_AddNamedItem(
script,
wshW, SCRIPTITEM_ISVISIBLE);
485 const char *file_map;
506 if(
size >= 2 && (
BYTE)file_map[0] == 0xFF && (
BYTE)file_map[1] == 0xFE)
536 SCRIPTTEXT_HOSTMANAGESSOURCE|SCRIPTITEM_ISVISIBLE,
NULL,
NULL);
558 if (bsname &&
SUCCEEDED(
hr = IXMLDOMNode_get_attributes(pnode, &
pmap)))
560 if (
SUCCEEDED(
hr = IXMLDOMNamedNodeMap_getNamedItem(
pmap, bsname, &pnode)))
565 hr = IXMLDOMNode_get_text(pnode, pout);
568 IXMLDOMNode_Release(pnode);
571 IXMLDOMNamedNodeMap_Release(
pmap);
583 if (bsname &&
SUCCEEDED(
hr = IXMLDOMElement_getElementsByTagName(pelem, bsname, &pnl)))
585 hr = IXMLDOMNodeList_get_item(pnl,
index, ppout);
588 IUnknown_Release(pnl);
601 hr = IUnknown_QueryInterface(pnode, &IID_IXMLDOMElement, (
void**)ppout);
602 IUnknown_Release(pnode);
610 if (
SUCCEEDED(xmldomnode_getattributevalue(
obj,
L"id", &bsid)))
614 hr = xmldomnode_getattributevalue(
obj,
L"clsid", &bsclsid);
618 if (
SUCCEEDED(
hr = xmldomnode_getattributevalue(
obj,
L"progid", &bsclsid)))
626 hr = add_globalitem_from_clsid(
script, bsid, &
clsid, SCRIPTITEM_ISVISIBLE);
639 if (
SUCCEEDED(xmldomelem_getelembytag(jobtag,
L"script", 0, &scripttag)))
642 IActiveScriptParse *
parser;
644 if (
FAILED(xmldomnode_getattributevalue(scripttag,
L"language", &
lang)))
663 IUnknown_Release(
obj);
674 SCRIPTTEXT_HOSTMANAGESSOURCE|SCRIPTITEM_ISVISIBLE,
679 IActiveScript_Close(
script);
689 IUnknown_Release(scripttag);
722 &IID_IXMLDOMDocument, (
void**)&pdoc);
731 if (!bsurl || (
hr = IXMLDOMDocument_load(pdoc,
v, &succ)) > 0 || (
SUCCEEDED(
hr) && !succ))
738 if (
SUCCEEDED(
hr = IXMLDOMElement_get_tagName(pdocelm, &tagName)))
744 if (
SUCCEEDED(
hr = xmldomelem_getelembytagasdomelem(pdocelm,
L"job", 0, &
p)))
746 IUnknown_Release(pdocelm);
759 hr = run_wsfjob(pdocelm);
761 IUnknown_Release(pdocelm);
764 IUnknown_Release(pdoc);
775 static const WCHAR nologoW[] = {
'n',
'o',
'l',
'o',
'g',
'o',0};
776 static const WCHAR iactive[] = {
'i',0};
777 static const WCHAR batch[] = {
'b',0};
787 if(
wcsicmp(prop, iactive) == 0)
789 else if(
wcsicmp(prop, batch) == 0)
791 else if(
wcsicmp(prop, nologoW) == 0)
794 else if((prop[0] | 32) ==
'e' && prop[1] ==
':')
795 g_force_engine = &prop[2];
808 IActiveScriptParse *
parser;
860 WINE_FIXME(
"Could not create script engine\n");
867 IActiveScript_Close(
script);
873 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)
HRESULT WINAPI DECLSPEC_HOTPATCH CLSIDFromProgID(LPCOLESTR progid, CLSID *clsid)
void WINAPI DECLSPEC_HOTPATCH CoUninitialize(void)
HRESULT WINAPI CLSIDFromString(LPCOLESTR str, LPCLSID clsid)
HRESULT WINAPI DECLSPEC_HOTPATCH CoCreateInstance(REFCLSID rclsid, IUnknown *outer, DWORD cls_context, REFIID riid, void **obj)
#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)
int WINAPI lstrcmpW(LPCWSTR str1, LPCWSTR str2)
int WINAPI lstrcmpiW(LPCWSTR str1, LPCWSTR str2)
LCID WINAPI GetUserDefaultLCID(void)
HRESULT WINAPI UrlCreateFromPathW(const WCHAR *path, WCHAR *url, DWORD *url_len, DWORD reserved)
LPWSTR WINAPI GetCommandLineW(void)
HRESULT WINAPI CoInitialize(LPVOID lpReserved)
HRESULT WINAPI LoadTypeLib(const OLECHAR *szFile, ITypeLib **pptLib)
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)
#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[]
static HRESULT HRESULT_FROM_WIN32(unsigned int x)
#define HKEY_CLASSES_ROOT