ReactOS 0.4.17-dev-357-ga8f14ff
main.c File Reference
#include <stdarg.h>
#include <windef.h>
#include <winbase.h>
#include <winreg.h>
#include <ole2.h>
#include <shellapi.h>
#include <activscp.h>
#include <initguid.h>
#include "wscript.h"
#include "resource.h"
#include <wine/debug.h>
Include dependency graph for main.c:

Go to the source code of this file.

Macros

#define COBJMACROS
 
#define IActiveScriptParse_Release   IActiveScriptParse32_Release
 
#define IActiveScriptParse_InitNew   IActiveScriptParse32_InitNew
 
#define IActiveScriptParse_ParseScriptText   IActiveScriptParse32_ParseScriptText
 

Functions

 WINE_DEFAULT_DEBUG_CHANNEL (wscript)
 
static HRESULT query_interface (REFIID, void **)
 
static HRESULT WINAPI ActiveScriptSite_QueryInterface (IActiveScriptSite *iface, REFIID riid, void **ppv)
 
static ULONG WINAPI ActiveScriptSite_AddRef (IActiveScriptSite *iface)
 
static ULONG WINAPI ActiveScriptSite_Release (IActiveScriptSite *iface)
 
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_GetDocVersionString (IActiveScriptSite *iface, BSTR *pbstrVersion)
 
static HRESULT WINAPI ActiveScriptSite_OnScriptTerminate (IActiveScriptSite *iface, const VARIANT *pvarResult, const EXCEPINFO *pexcepinfo)
 
static HRESULT WINAPI ActiveScriptSite_OnStateChange (IActiveScriptSite *iface, SCRIPTSTATE ssScriptState)
 
static void write_to_handle (HANDLE handle, const WCHAR *string)
 
static void print_error (const WCHAR *string)
 
static void print_string (const WCHAR *string)
 
static void output_writeconsole (const WCHAR *str, DWORD wlen)
 
static void output_formatstring (const WCHAR *fmt, va_list va_args)
 
static void WINAPIV print_resource (unsigned int id,...)
 
static DWORD WINAPI timeout_thread_proc (void *arg)
 
void schedule_timeout (LONG seconds)
 
static void print_banner (void)
 
static HRESULT WINAPI ActiveScriptSite_OnScriptError (IActiveScriptSite *iface, IActiveScriptError *pscripterror)
 
static HRESULT WINAPI ActiveScriptSite_OnEnterScript (IActiveScriptSite *iface)
 
static HRESULT WINAPI ActiveScriptSite_OnLeaveScript (IActiveScriptSite *iface)
 
static HRESULT WINAPI ActiveScriptSiteWindow_QueryInterface (IActiveScriptSiteWindow *iface, REFIID riid, void **ppv)
 
static ULONG WINAPI ActiveScriptSiteWindow_AddRef (IActiveScriptSiteWindow *iface)
 
static ULONG WINAPI ActiveScriptSiteWindow_Release (IActiveScriptSiteWindow *iface)
 
static HRESULT WINAPI ActiveScriptSiteWindow_GetWindow (IActiveScriptSiteWindow *iface, HWND *phwnd)
 
static HRESULT WINAPI ActiveScriptSiteWindow_EnableModeless (IActiveScriptSiteWindow *iface, BOOL fEnable)
 
static BOOL load_typelib (void)
 
static BOOL get_engine_clsid (const WCHAR *ext, CLSID *clsid)
 
static BOOL create_engine (CLSID *clsid, IActiveScript **script_ret, IActiveScriptParse **parser)
 
static BOOL init_engine (IActiveScript *script, IActiveScriptParse *parser)
 
static BSTR get_script_str (const WCHAR *filename)
 
static BOOL run_script (BSTR text, IActiveScript *script, IActiveScriptParse *parser)
 
static BOOL set_host_properties (const WCHAR *prop)
 
int WINAPI wWinMain (HINSTANCE hInst, HINSTANCE hPrevInst, LPWSTR cmdline, int cmdshow)
 

Variables

WCHAR scriptFullName [MAX_PATH]
 
ITypeInfohost_ti
 
ITypeInfoarguments_ti
 
static BOOL nologo
 
static HANDLE timeout_cancel_event
 
static HANDLE timeout_thread
 
static IActiveScriptSiteVtbl ActiveScriptSiteVtbl
 
static IActiveScriptSite script_site = { &ActiveScriptSiteVtbl }
 
static const IActiveScriptSiteWindowVtbl ActiveScriptSiteWindowVtbl
 
static IActiveScriptSiteWindow script_site_window = { &ActiveScriptSiteWindowVtbl }
 

Macro Definition Documentation

◆ COBJMACROS

#define COBJMACROS

Definition at line 21 of file main.c.

◆ IActiveScriptParse_InitNew

#define IActiveScriptParse_InitNew   IActiveScriptParse32_InitNew

Definition at line 48 of file main.c.

◆ IActiveScriptParse_ParseScriptText

#define IActiveScriptParse_ParseScriptText   IActiveScriptParse32_ParseScriptText

Definition at line 49 of file main.c.

◆ IActiveScriptParse_Release

#define IActiveScriptParse_Release   IActiveScriptParse32_Release

Definition at line 47 of file main.c.

Function Documentation

◆ ActiveScriptSite_AddRef()

static ULONG WINAPI ActiveScriptSite_AddRef ( IActiveScriptSite iface)
static

Definition at line 206 of file main.c.

207{
208 return 2;
209}

◆ ActiveScriptSite_GetDocVersionString()

static HRESULT WINAPI ActiveScriptSite_GetDocVersionString ( IActiveScriptSite iface,
BSTR pbstrVersion 
)
static

Definition at line 254 of file main.c.

256{
257 WINE_FIXME("()\n");
258 return E_NOTIMPL;
259}
#define E_NOTIMPL
Definition: ddrawi.h:99
#define WINE_FIXME
Definition: debug.h:340

◆ ActiveScriptSite_GetItemInfo()

static HRESULT WINAPI ActiveScriptSite_GetItemInfo ( IActiveScriptSite iface,
LPCOLESTR  pstrName,
DWORD  dwReturnMask,
IUnknown **  ppunkItem,
ITypeInfo **  ppti 
)
static

Definition at line 224 of file main.c.

226{
227 WINE_TRACE("(%s %lx %p %p)\n", wine_dbgstr_w(pstrName), dwReturnMask, ppunkItem, ppti);
228
229#ifdef __REACTOS__
230 {
231 BOOL handled = FALSE;
232 HRESULT hr = get_globalitem_info(pstrName, dwReturnMask, ppunkItem, ppti, &handled);
233 if (handled)
234 return hr;
235 }
236#endif
237
238 if(lstrcmpW(pstrName, L"WSH") && lstrcmpW(pstrName, L"WScript"))
239 return E_FAIL;
240
241 if(dwReturnMask & SCRIPTINFO_ITYPEINFO) {
242 ITypeInfo_AddRef(host_ti);
243 *ppti = host_ti;
244 }
245
246 if(dwReturnMask & SCRIPTINFO_IUNKNOWN) {
247 IHost_AddRef(&host_obj);
248 *ppunkItem = (IUnknown*)&host_obj;
249 }
250
251 return S_OK;
252}
ITypeInfo * host_ti
Definition: main.c:56
#define E_FAIL
Definition: ddrawi.h:102
HRESULT hr
Definition: delayimp.cpp:582
#define FALSE
Definition: types.h:117
int WINAPI lstrcmpW(LPCWSTR str1, LPCWSTR str2)
Definition: locale.c:4152
#define L(x)
Definition: resources.c:13
unsigned int BOOL
Definition: ntddk_ex.h:94
IHost host_obj
Definition: host.c:474
#define S_OK
Definition: intsafe.h:52
#define wine_dbgstr_w
Definition: kernel32.h:34
#define WINE_TRACE
Definition: debug.h:328

◆ ActiveScriptSite_GetLCID()

static HRESULT WINAPI ActiveScriptSite_GetLCID ( IActiveScriptSite iface,
LCID plcid 
)
static

Definition at line 216 of file main.c.

217{
218 WINE_TRACE("()\n");
219
220 *plcid = GetUserDefaultLCID();
221 return S_OK;
222}
LCID WINAPI GetUserDefaultLCID(void)
Definition: locale.c:1216

◆ ActiveScriptSite_OnEnterScript()

static HRESULT WINAPI ActiveScriptSite_OnEnterScript ( IActiveScriptSite iface)
static

Definition at line 485 of file main.c.

486{
487 WINE_TRACE("()\n");
488 return S_OK;
489}

◆ ActiveScriptSite_OnLeaveScript()

static HRESULT WINAPI ActiveScriptSite_OnLeaveScript ( IActiveScriptSite iface)
static

Definition at line 491 of file main.c.

492{
493 WINE_TRACE("()\n");
494 return S_OK;
495}

◆ ActiveScriptSite_OnScriptError()

static HRESULT WINAPI ActiveScriptSite_OnScriptError ( IActiveScriptSite iface,
IActiveScriptError pscripterror 
)
static

Definition at line 452 of file main.c.

454{
456 ULONG line;
459 WCHAR buf[1024];
460
461 WINE_TRACE("()\n");
462
463 memset(&excepinfo, 0, sizeof(excepinfo));
464 hres = IActiveScriptError_GetExceptionInfo(pscripterror, &excepinfo);
465 if(SUCCEEDED(hres)) {
466 line = 0;
467 character = 0;
468 IActiveScriptError_GetSourcePosition(pscripterror, NULL, &line, &character);
469
470 swprintf(buf, ARRAY_SIZE(buf), L"%s(%lu, %ld) %s: %s",
471 scriptFullName, line + 1, character + 1,
472 excepinfo.bstrSource ? excepinfo.bstrSource : L"",
473 excepinfo.bstrDescription ? excepinfo.bstrDescription : L"");
474
476
477 SysFreeString(excepinfo.bstrSource);
478 SysFreeString(excepinfo.bstrDescription);
479 SysFreeString(excepinfo.bstrHelpFile);
480 }
481
482 return S_OK;
483}
WCHAR scriptFullName[MAX_PATH]
Definition: main.c:54
static void print_error(const WCHAR *string)
Definition: main.c:298
#define ARRAY_SIZE(A)
Definition: main.h:20
#define NULL
Definition: types.h:112
#define swprintf
Definition: precomp.h:40
GLenum GLuint GLenum GLsizei const GLchar * buf
Definition: glext.h:7751
#define SUCCEEDED(hr)
Definition: intsafe.h:50
HRESULT hres
Definition: protocol.c:465
static EXCEPINFO excepinfo
Definition: automation.c:47
struct stdole::EXCEPINFO EXCEPINFO
void WINAPI DECLSPEC_HOTPATCH SysFreeString(BSTR str)
Definition: oleaut.c:271
short WCHAR
Definition: pedump.c:58
long LONG
Definition: pedump.c:60
#define memset(x, y, z)
Definition: compat.h:39
Definition: parser.c:49
uint32_t ULONG
Definition: typedefs.h:59

◆ ActiveScriptSite_OnScriptTerminate()

static HRESULT WINAPI ActiveScriptSite_OnScriptTerminate ( IActiveScriptSite iface,
const VARIANT pvarResult,
const EXCEPINFO *  pexcepinfo 
)
static

Definition at line 261 of file main.c.

263{
264 WINE_FIXME("()\n");
265 return E_NOTIMPL;
266}

◆ ActiveScriptSite_OnStateChange()

static HRESULT WINAPI ActiveScriptSite_OnStateChange ( IActiveScriptSite iface,
SCRIPTSTATE  ssScriptState 
)
static

Definition at line 268 of file main.c.

270{
271 WINE_TRACE("(%x)\n", ssScriptState);
272 return S_OK;
273}

◆ ActiveScriptSite_QueryInterface()

static HRESULT WINAPI ActiveScriptSite_QueryInterface ( IActiveScriptSite iface,
REFIID  riid,
void **  ppv 
)
static

Definition at line 200 of file main.c.

202{
203 return query_interface(riid, ppv);
204}
static HRESULT query_interface(REFIID, void **)
Definition: main.c:552
REFIID riid
Definition: atlbase.h:39
REFIID LPVOID * ppv
Definition: atlbase.h:39

◆ ActiveScriptSite_Release()

static ULONG WINAPI ActiveScriptSite_Release ( IActiveScriptSite iface)
static

Definition at line 211 of file main.c.

212{
213 return 1;
214}

◆ ActiveScriptSiteWindow_AddRef()

static ULONG WINAPI ActiveScriptSiteWindow_AddRef ( IActiveScriptSiteWindow iface)
static

Definition at line 518 of file main.c.

519{
520 return 2;
521}

◆ ActiveScriptSiteWindow_EnableModeless()

static HRESULT WINAPI ActiveScriptSiteWindow_EnableModeless ( IActiveScriptSiteWindow iface,
BOOL  fEnable 
)
static

Definition at line 536 of file main.c.

537{
538 TRACE("(%x)\n", fEnable);
539 return S_OK;
540}
#define TRACE(s)
Definition: solgame.cpp:4

◆ ActiveScriptSiteWindow_GetWindow()

static HRESULT WINAPI ActiveScriptSiteWindow_GetWindow ( IActiveScriptSiteWindow iface,
HWND phwnd 
)
static

Definition at line 528 of file main.c.

529{
530 TRACE("(%p)\n", phwnd);
531
532 *phwnd = NULL;
533 return S_OK;
534}

◆ ActiveScriptSiteWindow_QueryInterface()

static HRESULT WINAPI ActiveScriptSiteWindow_QueryInterface ( IActiveScriptSiteWindow iface,
REFIID  riid,
void **  ppv 
)
static

Definition at line 513 of file main.c.

514{
515 return query_interface(riid, ppv);
516}

◆ ActiveScriptSiteWindow_Release()

static ULONG WINAPI ActiveScriptSiteWindow_Release ( IActiveScriptSiteWindow iface)
static

Definition at line 523 of file main.c.

524{
525 return 1;
526}

◆ create_engine()

static BOOL create_engine ( CLSID clsid,
IActiveScript **  script_ret,
IActiveScriptParse **  parser 
)
static

Definition at line 627 of file main.c.

629{
631 IUnknown *unk;
633
634 hres = CoCreateInstance(clsid, NULL, CLSCTX_INPROC_SERVER|CLSCTX_INPROC_HANDLER,
635 &IID_IUnknown, (void**)&unk);
636 if(FAILED(hres))
637 return FALSE;
638
639 hres = IUnknown_QueryInterface(unk, &IID_IActiveScript, (void**)&script);
640 IUnknown_Release(unk);
641 if(FAILED(hres))
642 return FALSE;
643
644 hres = IActiveScript_QueryInterface(script, &IID_IActiveScriptParse, (void**)parser);
645 if(FAILED(hres)) {
646 IActiveScript_Release(script);
647 return FALSE;
648 }
649
650 *script_ret = script;
651 return TRUE;
652}
const GUID IID_IUnknown
#define TRUE
Definition: types.h:120
HRESULT WINAPI DECLSPEC_HOTPATCH CoCreateInstance(REFCLSID rclsid, IUnknown *outer, DWORD cls_context, REFIID riid, void **obj)
Definition: combase.c:1685
#define FAILED(hr)
Definition: intsafe.h:51
const CLSID * clsid
Definition: msctf.cpp:50
script
Definition: msipriv.h:383
Definition: import.c:81

Referenced by wWinMain().

◆ get_engine_clsid()

static BOOL get_engine_clsid ( const WCHAR ext,
CLSID clsid 
)
static

Definition at line 590 of file main.c.

591{
592 WCHAR fileid[64], progid[64];
593 DWORD res;
594 LONG size;
595 HKEY hkey;
597
599 if(res != ERROR_SUCCESS)
600 return FALSE;
601
602 size = ARRAY_SIZE(fileid);
603 res = RegQueryValueW(hkey, NULL, fileid, &size);
604 RegCloseKey(hkey);
605 if(res != ERROR_SUCCESS)
606 return FALSE;
607
608 WINE_TRACE("fileid is %s\n", wine_dbgstr_w(fileid));
609
610 lstrcatW(fileid, L"\\ScriptEngine");
611 res = RegOpenKeyW(HKEY_CLASSES_ROOT, fileid, &hkey);
612 if(res != ERROR_SUCCESS)
613 return FALSE;
614
616 res = RegQueryValueW(hkey, NULL, progid, &size);
617 RegCloseKey(hkey);
618 if(res != ERROR_SUCCESS)
619 return FALSE;
620
621 WINE_TRACE("ProgID is %s\n", wine_dbgstr_w(progid));
622
624 return SUCCEEDED(hres);
625}
#define RegCloseKey(hKey)
Definition: registry.h:49
#define ERROR_SUCCESS
Definition: deptool.c:10
LONG WINAPI RegOpenKeyW(HKEY hKey, LPCWSTR lpSubKey, PHKEY phkResult)
Definition: reg.c:3268
LSTATUS WINAPI RegQueryValueW(HKEY hkey, LPCWSTR name, LPWSTR data, LPLONG count)
Definition: reg.c:4241
HRESULT WINAPI DECLSPEC_HOTPATCH CLSIDFromProgID(LPCOLESTR progid, CLSID *clsid)
Definition: combase.c:1437
static const WCHAR *const ext[]
Definition: module.c:53
#define progid(str)
Definition: exdisp.idl:31
unsigned long DWORD
Definition: ntddk_ex.h:95
GLuint res
Definition: glext.h:9613
GLsizeiptr size
Definition: glext.h:5919
LPWSTR WINAPI lstrcatW(LPWSTR lpString1, LPCWSTR lpString2)
Definition: lstring.c:274
#define HKEY_CLASSES_ROOT
Definition: winreg.h:10

Referenced by wWinMain().

◆ get_script_str()

static BSTR get_script_str ( const WCHAR filename)
static

Definition at line 681 of file main.c.

682{
683 const char *file_map;
684 HANDLE file, map;
685 DWORD size, len;
686 BSTR ret;
687
690 return NULL;
691
693 if(!size) {
695 return SysAllocStringLen(NULL, 0);
696 }
697
701 return NULL;
702
703 file_map = MapViewOfFile(map, FILE_MAP_READ, 0, 0, 0);
705 if(!file_map)
706 return NULL;
707
708#ifdef __REACTOS__
709 if(size >= 2 && (BYTE)file_map[0] == 0xFF && (BYTE)file_map[1] == 0xFE) // UTF-16LE
710 {
712 if (ret)
713 CopyMemory(ret, file_map + 2, size - 2);
714 UnmapViewOfFile(file_map);
715 return ret;
716 }
717#endif
718
719 len = MultiByteToWideChar(CP_ACP, 0, file_map, size, NULL, 0);
721 MultiByteToWideChar(CP_ACP, 0, file_map, size, ret, len);
722
723 UnmapViewOfFile(file_map);
724 return ret;
725}
Definition: _map.h:48
#define CloseHandle
Definition: compat.h:739
#define PAGE_READONLY
Definition: compat.h:138
#define UnmapViewOfFile
Definition: compat.h:746
#define CP_ACP
Definition: compat.h:109
#define OPEN_EXISTING
Definition: compat.h:775
#define INVALID_HANDLE_VALUE
Definition: compat.h:731
#define CreateFileMappingW(a, b, c, d, e, f)
Definition: compat.h:744
OLECHAR * BSTR
Definition: compat.h:2293
#define GENERIC_READ
Definition: compat.h:135
#define CreateFileW
Definition: compat.h:741
#define FILE_MAP_READ
Definition: compat.h:776
#define MapViewOfFile
Definition: compat.h:745
#define MultiByteToWideChar
Definition: compat.h:110
DWORD WINAPI GetFileSize(HANDLE hFile, LPDWORD lpFileSizeHigh)
Definition: fileinfo.c:331
return ret
Definition: mutex.c:146
GLenum GLsizei len
Definition: glext.h:6722
const char * filename
Definition: ioapi.h:137
#define CopyMemory
Definition: minwinbase.h:29
#define FILE_ATTRIBUTE_READONLY
Definition: nt_native.h:702
BSTR WINAPI SysAllocStringLen(const OLECHAR *str, unsigned int len)
Definition: oleaut.c:339
Definition: fci.c:127
unsigned char BYTE
Definition: xxhash.c:193

Referenced by wWinMain().

◆ init_engine()

static BOOL init_engine ( IActiveScript script,
IActiveScriptParse *  parser 
)
static

Definition at line 654 of file main.c.

655{
657
658 if(!load_typelib())
659 return FALSE;
660
661 hres = IActiveScript_SetScriptSite(script, &script_site);
662 if(FAILED(hres))
663 return FALSE;
664
666 if(FAILED(hres))
667 return FALSE;
668
669 hres = IActiveScript_AddNamedItem(script, L"WScript", SCRIPTITEM_ISVISIBLE);
670 if(FAILED(hres))
671 return FALSE;
672
673 hres = IActiveScript_AddNamedItem(script, L"WSH", SCRIPTITEM_ISVISIBLE);
674 if(FAILED(hres))
675 return FALSE;
676
677 hres = IActiveScript_SetScriptState(script, SCRIPTSTATE_INITIALIZED);
678 return SUCCEEDED(hres);
679}
@ SCRIPTSTATE_INITIALIZED
Definition: activscp.idl:62
#define IActiveScriptParse_InitNew
Definition: main.c:48
static BOOL load_typelib(void)
Definition: main.c:573

Referenced by wWinMain().

◆ load_typelib()

static BOOL load_typelib ( void  )
static

Definition at line 573 of file main.c.

574{
577
578 hres = LoadTypeLib(L"wscript.exe", &typelib);
579 if(FAILED(hres))
580 return FALSE;
581
582 hres = ITypeLib_GetTypeInfoOfGuid(typelib, &IID_IHost, &host_ti);
583 if(SUCCEEDED(hres))
584 hres = ITypeLib_GetTypeInfoOfGuid(typelib, &IID_IArguments2, &arguments_ti);
585
586 ITypeLib_Release(typelib);
587 return SUCCEEDED(hres);
588}
ITypeInfo * arguments_ti
Definition: main.c:57
HRESULT WINAPI LoadTypeLib(const OLECHAR *szFile, ITypeLib **pptLib)
Definition: typelib.c:458

Referenced by init_engine(), and ITERATE_RegisterTypeLibraries().

◆ output_formatstring()

static void output_formatstring ( const WCHAR fmt,
va_list  va_args 
)
static

Definition at line 332 of file main.c.

333{
334 WCHAR *str;
335 DWORD len;
336
338 fmt, 0, 0, (WCHAR *)&str, 0, &va_args);
339 if(len == 0 && GetLastError() != ERROR_NO_WORK_DONE) {
340 WINE_FIXME("Could not format string: le=%lu, fmt=%s\n", GetLastError(), wine_dbgstr_w(fmt));
341 return;
342 }
343 if(wshInteractive) {
344 MessageBoxW(NULL, str, L"Windows Script Host", MB_OK);
345 }else {
347 }
348 LocalFree(str);
349}
static void output_writeconsole(const WCHAR *str, DWORD wlen)
Definition: main.c:313
DWORD WINAPI FormatMessageW(DWORD dwFlags, LPCVOID lpSource, DWORD dwMessageId, DWORD dwLanguageId, LPWSTR lpBuffer, DWORD nSize, __ms_va_list *args)
Definition: format_msg.c:583
HLOCAL NTAPI LocalFree(HLOCAL hMem)
Definition: heapmem.c:1594
VARIANT_BOOL wshInteractive
Definition: host.c:37
const WCHAR * str
Definition: dsound.c:943
DWORD WINAPI GetLastError(void)
Definition: except.c:1042
#define FORMAT_MESSAGE_FROM_STRING
Definition: winbase.h:398
#define FORMAT_MESSAGE_ALLOCATE_BUFFER
Definition: winbase.h:396
#define ERROR_NO_WORK_DONE
Definition: winerror.h:409
int WINAPI MessageBoxW(_In_opt_ HWND hWnd, _In_opt_ LPCWSTR lpText, _In_opt_ LPCWSTR lpCaption, _In_ UINT uType)
#define MB_OK
Definition: winuser.h:801

Referenced by print_resource().

◆ output_writeconsole()

static void output_writeconsole ( const WCHAR str,
DWORD  wlen 
)
static

Definition at line 313 of file main.c.

314{
315 DWORD count;
316
318 DWORD len;
319 char *buf;
320
321 /* On Windows WriteConsoleW() fails if the output is redirected. So fall
322 * back to WriteFile() with OEM code page. */
323 len = WideCharToMultiByte(GetOEMCP(), 0, str, wlen, NULL, 0, NULL, NULL);
324 buf = malloc(len);
325
328 free(buf);
329 }
330}
HANDLE WINAPI GetStdHandle(IN DWORD nStdHandle)
Definition: console.c:203
#define free
Definition: debug_ros.c:5
#define malloc
Definition: debug_ros.c:4
#define WideCharToMultiByte
Definition: compat.h:111
BOOL WINAPI DECLSPEC_HOTPATCH WriteConsoleW(IN HANDLE hConsoleOutput, IN CONST VOID *lpBuffer, IN DWORD nNumberOfCharsToWrite, OUT LPDWORD lpNumberOfCharsWritten, LPVOID lpReserved)
Definition: readwrite.c:1447
BOOL WINAPI WriteFile(_In_ HANDLE hFile, _In_reads_bytes_opt_(nNumberOfBytesToWrite) LPCVOID lpBuffer, _In_ DWORD nNumberOfBytesToWrite, _Out_opt_ LPDWORD lpNumberOfBytesWritten, _Inout_opt_ LPOVERLAPPED lpOverlapped)
Definition: rw.c:25
UINT WINAPI GetOEMCP(void)
Definition: locale.c:2062
GLuint GLuint GLsizei count
Definition: gl.h:1545
#define STD_OUTPUT_HANDLE
Definition: winbase.h:293

Referenced by output_formatstring().

◆ print_banner()

static void print_banner ( void  )
static

Definition at line 434 of file main.c.

435{
436#ifdef __REACTOS__
437 const WCHAR *header = L"ReactOS Script Host";
438#else
439 const char * (CDECL *wine_get_version)(void);
440 WCHAR header[64];
441
442 wine_get_version = (void *)GetProcAddress(GetModuleHandleW(L"ntdll.dll"), "wine_get_version");
443 if(wine_get_version)
444 swprintf(header, ARRAY_SIZE(header), L"Wine %S Script Host", wine_get_version());
445 else
446 swprintf(header, ARRAY_SIZE(header), L"Wine Script Host");
447#endif
449 print_string(L"");
450}
static void print_string(const WCHAR *string)
Definition: main.c:308
#define CDECL
Definition: compat.h:29
#define GetProcAddress(x, y)
Definition: compat.h:753
HMODULE WINAPI GetModuleHandleW(LPCWSTR lpModuleName)
Definition: loader.c:838

Referenced by wWinMain().

◆ print_error()

static void print_error ( const WCHAR string)
static

Definition at line 298 of file main.c.

299{
300 if(wshInteractive) {
301 MessageBoxW(NULL, string, L"Windows Script Host", MB_OK);
302 return;
303 }
304
306}
static void write_to_handle(HANDLE handle, const WCHAR *string)
Definition: main.c:275
#define STD_ERROR_HANDLE
Definition: winbase.h:294

Referenced by _nfs41_CreateSrvCall(), ActiveScriptSite_OnScriptError(), check_nfs41_create_args(), check_nfs41_setacl_args(), check_nfs41_setattr_args(), check_nfs41_setea_args(), check_nfs41_write_args(), DriverEntry(), GetConnectionHandle(), handle_upcall(), map_close_errors(), map_disposition_to_create_retval(), map_lock_errors(), map_mount_errors(), map_open_errors(), map_query_acl_error(), map_querydir_errors(), map_queryfile_error(), map_readwrite_errors(), map_setea_error(), map_setfile_error(), map_symlink_errors(), map_volume_errors(), marshal_nfs41_dirquery(), marshal_nfs41_open(), marshal_nfs41_rw(), marshall_unicode_as_utf8(), nfs41_CreateSrvCall(), nfs41_CreateVNetRoot(), nfs41_downcall(), nfs41_driver_unload(), nfs41_FinalizeNetRoot(), nfs41_FsdDispatch(), nfs41_get_sec_ctx(), nfs41_GetConnectionInfoFromBuffer(), nfs41_GetLUID(), nfs41_MountConfig_ParseDword(), nfs41_MountConfig_ParseOptions(), nfs41_QueryDirectory(), nfs41_QueryFileInformation(), nfs41_QueryVolumeInformation(), nfs41_Start(), nfs41_UpcallCreate(), SharedMemoryInit(), unmarshal_nfs41_dirquery(), unmarshal_nfs41_open(), and unmarshal_nfs41_rw().

◆ print_resource()

static void WINAPIV print_resource ( unsigned int  id,
  ... 
)
static

Definition at line 351 of file main.c.

352{
353 WCHAR *fmt = NULL;
354 int len;
355 va_list va_args;
356
357#ifdef __REACTOS__
358 #ifndef CSCRIPT_BUILD
359 #define APPNAME L"WScript"
360 #else
361 #define APPNAME L"CScript"
362 #endif
363 const WCHAR *str = NULL;
364 switch (id)
365 {
366 case IDS_USAGE: str = L"Usage: " APPNAME L" scriptname.extension [option...] [arguments...]\n"; break;
367 case IDS_NO_SCRIPT_FILE: str = L"Input Error: There is no script file specified.\n"; break;
368 case IDS_FILE_NOT_FOUND: str = L"Input Error: Can not find script file ""%1"".\n"; break;
369 case IDS_SCRIPT_LOAD_ERROR: str = APPNAME L" Error: Loading script ""%1"" failed (%2).\n"; break;
370 case IDS_TIMEOUT_EXCEEDED: str = L"Script execution time was exceeded on script ""%1"".\n\nScript execution was terminated.\n"; break;
371 }
372 if(!str)
373 {
374 WINE_FIXME("Missing string %u\n", id);
375 return;
376 }
377 len = lstrlenW(str);
378 fmt = malloc(++len * sizeof(WCHAR));
379 if(!fmt)
380 return;
381 lstrcpyW(fmt, str);
382#else
383 if(!(len = LoadStringW(GetModuleHandleW(NULL), id, (WCHAR *)&fmt, 0))) {
384 WINE_FIXME("LoadString failed with %ld\n", GetLastError());
385 return;
386 }
387
388 len++;
389 fmt = malloc(len * sizeof(WCHAR));
390 if(!fmt)
391 return;
392
394#endif
395
396 va_start(va_args, id);
397 output_formatstring(fmt, va_args);
398 va_end(va_args);
399
400 free(fmt);
401}
#define APPNAME
Definition: 3dtext.c:40
#define IDS_USAGE
Definition: resource.h:3
static void output_formatstring(const WCHAR *fmt, va_list va_args)
Definition: main.c:332
#define IDS_FILE_NOT_FOUND
Definition: resource.h:21
#define IDS_NO_SCRIPT_FILE
Definition: resource.h:20
#define IDS_SCRIPT_LOAD_ERROR
Definition: resource.h:22
#define IDS_TIMEOUT_EXCEEDED
Definition: resource.h:23
#define lstrcpyW
Definition: compat.h:749
#define lstrlenW
Definition: compat.h:750
#define va_end(v)
Definition: stdarg.h:28
#define va_start(v, l)
Definition: stdarg.h:26
char * va_list
Definition: vadefs.h:50
#define LoadStringW
Definition: utils.h:64

Referenced by timeout_thread_proc(), and wWinMain().

◆ print_string()

static void print_string ( const WCHAR string)
static

Definition at line 308 of file main.c.

Referenced by print_banner().

◆ query_interface()

static HRESULT query_interface ( REFIID  riid,
void **  ppv 
)
static

Definition at line 552 of file main.c.

553{
555 TRACE("(IID_IUnknown %p)\n", ppv);
556 *ppv = &script_site;
557 }else if(IsEqualGUID(riid, &IID_IActiveScriptSite)) {
558 TRACE("(IID_IActiveScriptSite %p)\n", ppv);
559 *ppv = &script_site;
560 }else if(IsEqualGUID(riid, &IID_IActiveScriptSiteWindow)) {
561 TRACE("(IID_IActiveScriptSiteWindow %p)\n", ppv);
563 }else {
564 *ppv = NULL;
565 TRACE("(%s %p)\n", wine_dbgstr_guid(riid), ppv);
566 return E_NOINTERFACE;
567 }
568
569 IUnknown_AddRef((IUnknown*)*ppv);
570 return S_OK;
571}
static IActiveScriptSiteWindow script_site_window
Definition: main.c:550
static IActiveScriptSite script_site
Definition: main.c:511
#define IsEqualGUID(rguid1, rguid2)
Definition: guiddef.h:147
static __inline const char * wine_dbgstr_guid(const GUID *id)
Definition: debug.h:171
#define E_NOINTERFACE
Definition: winerror.h:3479

Referenced by ActiveScriptSite_QueryInterface(), and ActiveScriptSiteWindow_QueryInterface().

◆ run_script()

static BOOL run_script ( BSTR  text,
IActiveScript script,
IActiveScriptParse *  parser 
)
static

Definition at line 727 of file main.c.

728{
730
732 SCRIPTTEXT_HOSTMANAGESSOURCE|SCRIPTITEM_ISVISIBLE, NULL, NULL);
733 if(FAILED(hres)) {
734 if(hres != SCRIPT_E_REPORTED)
735 WINE_WARN("ParseScriptText failed: %08lx\n", hres);
736 return FALSE;
737 }
738
739 hres = IActiveScript_SetScriptState(script, SCRIPTSTATE_STARTED);
740 if(FAILED(hres)) {
741 if(hres != SCRIPT_E_REPORTED)
742 WINE_WARN("SetScriptState failed: %08lx\n", hres);
743 }
744
745 return TRUE;
746}
@ SCRIPTSTATE_STARTED
Definition: activscp.idl:58
#define IActiveScriptParse_ParseScriptText
Definition: main.c:49
const WCHAR * text
Definition: package.c:1794
#define WINE_WARN
Definition: debug.h:334

◆ schedule_timeout()

void schedule_timeout ( LONG  seconds)

Definition at line 416 of file main.c.

417{
418 if(timeout_thread) {
423 }
424 if(seconds <= 0)
425 return;
428 else
431 (void *)(DWORD_PTR)(seconds * 1000), 0, NULL);
432}
static DWORD WINAPI timeout_thread_proc(void *arg)
Definition: main.c:406
static HANDLE timeout_thread
Definition: main.c:404
static HANDLE timeout_cancel_event
Definition: main.c:403
HANDLE WINAPI DECLSPEC_HOTPATCH CreateThread(IN LPSECURITY_ATTRIBUTES lpThreadAttributes, IN DWORD dwStackSize, IN LPTHREAD_START_ROUTINE lpStartAddress, IN LPVOID lpParameter, IN DWORD dwCreationFlags, OUT LPDWORD lpThreadId)
Definition: thread.c:137
#define INFINITE
Definition: serial.h:102
DWORD WINAPI WaitForSingleObject(IN HANDLE hHandle, IN DWORD dwMilliseconds)
Definition: synch.c:82
HANDLE WINAPI DECLSPEC_HOTPATCH CreateEventW(IN LPSECURITY_ATTRIBUTES lpEventAttributes OPTIONAL, IN BOOL bManualReset, IN BOOL bInitialState, IN LPCWSTR lpName OPTIONAL)
Definition: synch.c:587
BOOL WINAPI DECLSPEC_HOTPATCH SetEvent(IN HANDLE hEvent)
Definition: synch.c:669
BOOL WINAPI DECLSPEC_HOTPATCH ResetEvent(IN HANDLE hEvent)
Definition: synch.c:650
uint32_t DWORD_PTR
Definition: typedefs.h:65

Referenced by Host_put_Timeout(), and wWinMain().

◆ set_host_properties()

static BOOL set_host_properties ( const WCHAR prop)
static

Definition at line 973 of file main.c.

974{
975 if(*prop == '/') {
976 ++prop;
977 if(*prop == '/')
978 ++prop;
979 }
980 else
981 ++prop;
982
983 if(wcsicmp(prop, L"i") == 0)
984 wshInteractive = VARIANT_TRUE;
985 else if(wcsicmp(prop, L"b") == 0)
986 wshInteractive = VARIANT_FALSE;
987 else if(wcsicmp(prop, L"nologo") == 0)
988 nologo = TRUE;
989 else if(wcsicmp(prop, L"logo") == 0)
990 nologo = FALSE;
991 else if(wcsicmp(prop, L"d") == 0)
992 WINE_FIXME("ignoring //d\n");
993 else if(wcsicmp(prop, L"x") == 0)
994 WINE_FIXME("ignoring //x\n");
995 else if(wcsicmp(prop, L"u") == 0)
996 WINE_FIXME("ignoring //u\n");
997 else if(wcsicmp(prop, L"s") == 0)
998 WINE_FIXME("ignoring //s\n");
999 else if(wcsnicmp(prop, L"e:", 2) == 0)
1000#ifdef __REACTOS__
1001 g_force_engine = &prop[2];
1002#else
1003 WINE_FIXME("ignoring //e:\n");
1004#endif
1005 else if(wcsnicmp(prop, L"h:", 2) == 0)
1006 WINE_FIXME("ignoring //h:\n");
1007 else if(wcsnicmp(prop, L"job:", 4) == 0)
1008 WINE_FIXME("ignoring //job:\n");
1009 else if(wcsnicmp(prop, L"t:", 2) == 0) {
1010 WCHAR *end;
1011 LONG t = wcstol(prop + 2, &end, 10);
1012 if(end == prop + 2 || *end || t < 0)
1013 return FALSE;
1014 wshTimeout = t;
1015 }
1016 else
1017 return FALSE;
1018 return TRUE;
1019}
static BOOL nologo
Definition: main.c:59
#define wcsnicmp
Definition: compat.h:14
#define wcsicmp
Definition: compat.h:15
_ACRTIMP __msvcrt_long __cdecl wcstol(const wchar_t *, wchar_t **, int)
Definition: wcs.c:2752
GLuint GLuint end
Definition: gl.h:1545
GLdouble GLdouble t
Definition: gl.h:2047
LONG wshTimeout
Definition: host.c:44

Referenced by wWinMain().

◆ timeout_thread_proc()

static DWORD WINAPI timeout_thread_proc ( void arg)
static

Definition at line 406 of file main.c.

407{
408 DWORD ms = (DWORD)(DWORD_PTR)arg;
411 ExitProcess(1);
412 }
413 return 0;
414}
static void WINAPIV print_resource(unsigned int id,...)
Definition: main.c:351
#define WAIT_TIMEOUT
Definition: dderror.h:14
VOID WINAPI ExitProcess(IN UINT uExitCode)
Definition: proc.c:1330
#define DWORD
Definition: nt_native.h:44
void * arg
Definition: msvc.h:10

Referenced by schedule_timeout().

◆ WINE_DEFAULT_DEBUG_CHANNEL()

WINE_DEFAULT_DEBUG_CHANNEL ( wscript  )

◆ write_to_handle()

static void write_to_handle ( HANDLE  handle,
const WCHAR string 
)
static

Definition at line 275 of file main.c.

276{
277 DWORD count, ret, len, lena;
278 char *buf;
279
280 len = lstrlenW(string);
281 ret = WriteConsoleW(handle, string, len, &count, NULL);
282 if(ret) {
283 WriteConsoleW(handle, L"\r\n", 2, &count, NULL);
284 return;
285 }
286
287 lena = WideCharToMultiByte(GetOEMCP(), 0, string, len, NULL, 0, NULL, NULL);
288 buf = malloc(lena);
289 if(!buf)
290 return;
291
292 WideCharToMultiByte(GetOEMCP(), 0, string, len, buf, lena, NULL, NULL);
293 WriteFile(handle, buf, lena, &count, FALSE);
294 free(buf);
295 WriteFile(handle, "\r\n", 2, &count, FALSE);
296}

Referenced by print_error(), and print_string().

◆ wWinMain()

int WINAPI wWinMain ( HINSTANCE  hInstance,
HINSTANCE  hPrevInstance,
LPWSTR  lpCmdLine,
int  nShowCmd 
)

This file has no copyright assigned and is placed in the Public Domain. This file is part of the w64 mingw-runtime package. No warranty is given; refer to the file DISCLAIMER.PD within this package.

Definition at line 1021 of file main.c.

1022{
1023 WCHAR *ext, *filepart, *filename = NULL;
1024 IActiveScriptParse *parser;
1026 BSTR script_text;
1027 WCHAR **argv;
1028 CLSID clsid;
1029 int argc, i;
1030 int ret = 0;
1031 DWORD res;
1032
1033 WINE_TRACE("(%p %p %s %x)\n", hInst, hPrevInst, wine_dbgstr_w(cmdline), cmdshow);
1034
1036 if(!argv)
1037 return 1;
1038
1039 /* Pass 1: consume // host options from all positions. */
1040 for(i=1; i<argc; i++) {
1041 if(argv[i][0] == '/' && argv[i][1] == '/' && set_host_properties(argv[i]))
1042 argv[i] = NULL;
1043 }
1044
1045 /* Pass 2: find filename, consuming single-/ and - options before it. */
1046 for(i=1; i<argc; i++) {
1047 if(!argv[i])
1048 continue;
1049 if(argv[i][0] == '-' && argv[i][1] == '-' && !argv[i][2])
1050 continue; /* -- separator */
1051 if((*argv[i] == '/' || *argv[i] == '-') && set_host_properties(argv[i]))
1052 continue;
1053 filename = argv[i];
1054 i++;
1055 break;
1056 }
1057
1058 /* Pass 3: compact script args, skipping consumed // options. */
1059 if(filename) {
1060 int j = 0, first_arg = i;
1061 for(; i<argc; i++) {
1062 if(!argv[i])
1063 continue;
1064 argv[first_arg + j] = argv[i];
1065 j++;
1066 }
1067 argums = argv + first_arg;
1068 numOfArgs = j;
1069 }
1070
1071 if(!filename && argc == 1) {
1072 if(wshInteractive) {
1073 WINE_FIXME("Settings dialog not implemented\n");
1074 return 0;
1075 }
1076 if(!nologo)
1077 print_banner();
1079 return 0;
1080 }
1081
1082 if(!nologo)
1083 print_banner();
1084
1085 if(!filename) {
1087 return 1;
1088 }
1089
1091 if(!res || res > ARRAY_SIZE(scriptFullName))
1092 return 1;
1093
1094#ifdef __REACTOS__
1095 ext = wcsrchr(filepart, '.');
1096 if(ext && !lstrcmpiW(ext, L".wsf")) {
1097 return run_wsf(scriptFullName);
1098 }
1099#endif
1100
1101 script_text = get_script_str(scriptFullName);
1102 if(!script_text) {
1106 }else {
1107 WCHAR *syserr = NULL;
1110 if(syserr) {
1111 /* Trim trailing whitespace from system error message. */
1112 int len = lstrlenW(syserr);
1113 while(len > 0 && (syserr[len - 1] == '\r' || syserr[len - 1] == '\n' || syserr[len - 1] == ' '))
1114 syserr[--len] = 0;
1116 LocalFree(syserr);
1117 }else {
1119 }
1120 }
1121 return 1;
1122 }
1123
1124 ext = wcsrchr(filepart, '.');
1125#ifdef __REACTOS__
1126 if(g_force_engine) {
1127 CLSIDFromProgID(g_force_engine, &clsid);
1128 }
1129 else
1130#endif
1131 if(!ext || !get_engine_clsid(ext, &clsid)) {
1132 WINE_FIXME("Could not find engine for %s\n", wine_dbgstr_w(ext));
1133 return 1;
1134 }
1135
1137
1138 if(!create_engine(&clsid, &script, &parser)) {
1139 WINE_FIXME("Could not create script engine\n");
1141 return 1;
1142 }
1143
1144 if(init_engine(script, parser)) {
1146 if(!run_script(script_text, script, parser))
1147 ret = 1;
1149 IActiveScript_Close(script);
1150 ITypeInfo_Release(host_ti);
1151 }else {
1152 WINE_FIXME("Script initialization failed\n");
1153 }
1154
1155 SysFreeString(script_text);
1156 IActiveScript_Release(script);
1158
1159#ifdef __REACTOS__
1160 free_globals();
1161#endif
1162
1164
1165 return ret;
1166}
int numOfArgs
Definition: arguments.c:35
WCHAR ** argums
Definition: arguments.c:34
static BSTR get_script_str(const WCHAR *filename)
Definition: main.c:681
static BOOL get_engine_clsid(const WCHAR *ext, CLSID *clsid)
Definition: main.c:590
#define IActiveScriptParse_Release
Definition: main.c:47
static BOOL init_engine(IActiveScript *script, IActiveScriptParse *parser)
Definition: main.c:654
void schedule_timeout(LONG seconds)
Definition: main.c:416
static BOOL create_engine(CLSID *clsid, IActiveScript **script_ret, IActiveScriptParse **parser)
Definition: main.c:627
static void print_banner(void)
Definition: main.c:434
static BOOL set_host_properties(const WCHAR *prop)
Definition: main.c:973
void WINAPI DECLSPEC_HOTPATCH CoUninitialize(void)
Definition: combase.c:2842
#define wcsrchr
Definition: compat.h:16
DWORD WINAPI GetFullPathNameW(IN LPCWSTR lpFileName, IN DWORD nBufferLength, OUT LPWSTR lpBuffer, OUT LPWSTR *lpFilePart)
Definition: path.c:1106
int WINAPI lstrcmpiW(LPCWSTR str1, LPCWSTR str2)
Definition: locale.c:4171
LPWSTR WINAPI GetCommandLineW(void)
Definition: process.c:1338
MonoAssembly int argc
Definition: metahost.c:107
HRESULT WINAPI CoInitialize(LPVOID lpReserved)
Definition: compobj.c:531
WCHAR **WINAPI CommandLineToArgvW(const WCHAR *cmdline, int *numargs)
Definition: main.c:294
HINSTANCE hInst
Definition: dxdiag.c:13
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
Definition: glfuncs.h:248
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 GLint GLint j
Definition: glfuncs.h:250
#define ERROR_FILE_NOT_FOUND
Definition: disk.h:79
#define run_script(a)
Definition: run.c:2699
#define argv
Definition: mplay32.c:18
#define err(...)
#define LANG_NEUTRAL
Definition: nls.h:22
#define MAKELANGID(p, s)
Definition: nls.h:15
#define SUBLANG_DEFAULT
Definition: nls.h:168
TCHAR * cmdline
Definition: stretchblt.cpp:32
#define FORMAT_MESSAGE_IGNORE_INSERTS
Definition: winbase.h:397
#define FORMAT_MESSAGE_FROM_SYSTEM
Definition: winbase.h:400
#define ERROR_PATH_NOT_FOUND
Definition: winerror.h:228

Variable Documentation

◆ ActiveScriptSiteVtbl

IActiveScriptSiteVtbl ActiveScriptSiteVtbl
static
Initial value:
= {
}
static ULONG WINAPI ActiveScriptSite_Release(IActiveScriptSite *iface)
Definition: main.c:211
static HRESULT WINAPI ActiveScriptSite_OnLeaveScript(IActiveScriptSite *iface)
Definition: main.c:491
static HRESULT WINAPI ActiveScriptSite_OnStateChange(IActiveScriptSite *iface, SCRIPTSTATE ssScriptState)
Definition: main.c:268
static HRESULT WINAPI ActiveScriptSite_GetDocVersionString(IActiveScriptSite *iface, BSTR *pbstrVersion)
Definition: main.c:254
static HRESULT WINAPI ActiveScriptSite_QueryInterface(IActiveScriptSite *iface, REFIID riid, void **ppv)
Definition: main.c:200
static HRESULT WINAPI ActiveScriptSite_OnEnterScript(IActiveScriptSite *iface)
Definition: main.c:485
static ULONG WINAPI ActiveScriptSite_AddRef(IActiveScriptSite *iface)
Definition: main.c:206
static HRESULT WINAPI ActiveScriptSite_OnScriptTerminate(IActiveScriptSite *iface, const VARIANT *pvarResult, const EXCEPINFO *pexcepinfo)
Definition: main.c:261
static HRESULT WINAPI ActiveScriptSite_GetLCID(IActiveScriptSite *iface, LCID *plcid)
Definition: main.c:216
static HRESULT WINAPI ActiveScriptSite_GetItemInfo(IActiveScriptSite *iface, LPCOLESTR pstrName, DWORD dwReturnMask, IUnknown **ppunkItem, ITypeInfo **ppti)
Definition: main.c:224
static HRESULT WINAPI ActiveScriptSite_OnScriptError(IActiveScriptSite *iface, IActiveScriptError *pscripterror)
Definition: main.c:452

Definition at line 497 of file main.c.

◆ ActiveScriptSiteWindowVtbl

const IActiveScriptSiteWindowVtbl ActiveScriptSiteWindowVtbl
static
Initial value:
= {
}
static ULONG WINAPI ActiveScriptSiteWindow_Release(IActiveScriptSiteWindow *iface)
Definition: main.c:523
static HRESULT WINAPI ActiveScriptSiteWindow_GetWindow(IActiveScriptSiteWindow *iface, HWND *phwnd)
Definition: main.c:528
static HRESULT WINAPI ActiveScriptSiteWindow_EnableModeless(IActiveScriptSiteWindow *iface, BOOL fEnable)
Definition: main.c:536
static HRESULT WINAPI ActiveScriptSiteWindow_QueryInterface(IActiveScriptSiteWindow *iface, REFIID riid, void **ppv)
Definition: main.c:513
static ULONG WINAPI ActiveScriptSiteWindow_AddRef(IActiveScriptSiteWindow *iface)
Definition: main.c:518

Definition at line 542 of file main.c.

◆ arguments_ti

ITypeInfo* arguments_ti

◆ host_ti

◆ nologo

BOOL nologo
static

Definition at line 59 of file main.c.

Referenced by set_host_properties(), and wWinMain().

◆ script_site

Definition at line 511 of file main.c.

Referenced by query_interface().

◆ script_site_window

IActiveScriptSiteWindow script_site_window = { &ActiveScriptSiteWindowVtbl }
static

Definition at line 550 of file main.c.

Referenced by query_interface().

◆ scriptFullName

◆ timeout_cancel_event

HANDLE timeout_cancel_event
static

Definition at line 403 of file main.c.

Referenced by schedule_timeout(), and timeout_thread_proc().

◆ timeout_thread

HANDLE timeout_thread
static

Definition at line 404 of file main.c.

Referenced by schedule_timeout().