ReactOS  0.4.15-dev-439-g292f67a
host.c
Go to the documentation of this file.
1 /*
2  * Copyright 2010 Jacek Caban for CodeWeavers
3  *
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.
8  *
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.
13  *
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
17  */
18 
19 #include <stdarg.h>
20 
21 #define COBJMACROS
22 #define CONST_VTABLE
23 
24 #include <windef.h>
25 #include <winbase.h>
26 #include <ole2.h>
27 
28 #include "wscript.h"
29 
30 #include <wine/debug.h>
31 #include <wine/heap.h>
32 
34 
35 #define BUILDVERSION 16535
36 
37 static const WCHAR wshNameW[] = {'W','i','n','d','o','w','s',' ','S','c','r','i','p','t',' ','H','o','s','t',0};
38 static const WCHAR wshVersionW[] = {'5','.','8'};
39 
41 #ifndef CSCRIPT_BUILD
42  VARIANT_TRUE;
43 #else
44  VARIANT_FALSE;
45 #endif
46 
48 {
49  VARIANT v;
50  HRESULT hres;
51 
52  static const WCHAR nullW[] = {'n','u','l','l',0};
53 
54  if(V_VT(src) == VT_NULL) {
56  return *dst ? S_OK : E_OUTOFMEMORY;
57  }
58 
59  V_VT(&v) = VT_EMPTY;
61  if(FAILED(hres)) {
62  WARN("Could not convert argument %s to string\n", debugstr_variant(src));
63  return hres;
64  }
65 
66  *dst = V_BSTR(&v);
67  return S_OK;
68 }
69 
70 static void print_string(const WCHAR *string)
71 {
72  DWORD count, ret, len, lena;
73  char *buf;
74 
75  if(wshInteractive) {
76  static const WCHAR windows_script_hostW[] =
77  {'W','i','n','d','o','w','s',' ','S','c','r','i','p','t',' ','H','o','s','t',0};
78  MessageBoxW(NULL, string, windows_script_hostW, MB_OK);
79  return;
80  }
81 
82  len = lstrlenW(string);
84  if(ret) {
85  static const WCHAR crnlW[] = {'\r','\n'};
87  return;
88  }
89 
90  lena = WideCharToMultiByte(GetConsoleOutputCP(), 0, string, len, NULL, 0, NULL, NULL);
91  buf = heap_alloc(len);
92  if(!buf)
93  return;
94 
95  WideCharToMultiByte(GetConsoleOutputCP(), 0, string, len, buf, lena, NULL, NULL);
97  heap_free(buf);
99 }
100 
102 {
103  WINE_TRACE("(%s %p)\n", wine_dbgstr_guid(riid), ppv);
104 
107  || IsEqualGUID(&IID_IHost, riid)) {
108  *ppv = iface;
109  return S_OK;
110  }
111 
112  *ppv = NULL;
113  return E_NOINTERFACE;
114 }
115 
117 {
118  return 2;
119 }
120 
122 {
123  return 1;
124 }
125 
127 {
128  WINE_TRACE("(%p)\n", pctinfo);
129  *pctinfo = 1;
130  return S_OK;
131 }
132 
133 static HRESULT WINAPI Host_GetTypeInfo(IHost *iface, UINT iTInfo, LCID lcid,
134  ITypeInfo **ppTInfo)
135 {
136  WINE_TRACE("(%x %x %p\n", iTInfo, lcid, ppTInfo);
137 
138  ITypeInfo_AddRef(host_ti);
139  *ppTInfo = host_ti;
140  return S_OK;
141 }
142 
144  UINT cNames, LCID lcid, DISPID *rgDispId)
145 {
146  WINE_TRACE("(%s %p %d %x %p)\n", wine_dbgstr_guid(riid), rgszNames,
147  cNames, lcid, rgDispId);
148 
149  return ITypeInfo_GetIDsOfNames(host_ti, rgszNames, cNames, rgDispId);
150 }
151 
152 static HRESULT WINAPI Host_Invoke(IHost *iface, DISPID dispIdMember, REFIID riid,
153  LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult,
154  EXCEPINFO *pExcepInfo, UINT *puArgErr)
155 {
156  WINE_TRACE("(%d %p %p)\n", dispIdMember, pDispParams, pVarResult);
157 
158  return ITypeInfo_Invoke(host_ti, iface, dispIdMember, wFlags, pDispParams,
159  pVarResult, pExcepInfo, puArgErr);
160 }
161 
162 static HRESULT WINAPI Host_get_Name(IHost *iface, BSTR *out_Name)
163 {
164  WINE_TRACE("(%p)\n", out_Name);
165 
166  if(!(*out_Name = SysAllocString(wshNameW)))
167  return E_OUTOFMEMORY;
168  return S_OK;
169 }
170 
171 static HRESULT WINAPI Host_get_Application(IHost *iface, IDispatch **out_Dispatch)
172 {
173  WINE_TRACE("(%p)\n", out_Dispatch);
174 
175  *out_Dispatch = (IDispatch*)&host_obj;
176  return S_OK;
177 }
178 
179 static HRESULT WINAPI Host_get_FullName(IHost *iface, BSTR *out_Path)
180 {
181  WCHAR fullPath[MAX_PATH];
182 
183  WINE_TRACE("(%p)\n", out_Path);
184 
185  if(GetModuleFileNameW(NULL, fullPath, ARRAY_SIZE(fullPath)) == 0)
186  return E_FAIL;
187  if(!(*out_Path = SysAllocString(fullPath)))
188  return E_OUTOFMEMORY;
189  return S_OK;
190 }
191 
192 static HRESULT WINAPI Host_get_Path(IHost *iface, BSTR *out_Path)
193 {
195  int howMany;
196  WCHAR *pos;
197 
198  WINE_TRACE("(%p)\n", out_Path);
199 
201  return E_FAIL;
202  pos = wcsrchr(path, '\\');
203  howMany = pos - path;
204  if(!(*out_Path = SysAllocStringLen(path, howMany)))
205  return E_OUTOFMEMORY;
206  return S_OK;
207 }
208 
209 static HRESULT WINAPI Host_get_Interactive(IHost *iface, VARIANT_BOOL *out_Interactive)
210 {
211  WINE_TRACE("(%p)\n", out_Interactive);
212 
213  *out_Interactive = wshInteractive;
214  return S_OK;
215 }
216 
218 {
219  WINE_TRACE("(%x)\n", v);
220 
221  wshInteractive = v;
222  return S_OK;
223 }
224 
225 static HRESULT WINAPI Host_Quit(IHost *iface, int ExitCode)
226 {
227  FIXME("(%d) semi-stub: no script engine clean up\n", ExitCode);
228 
229  ExitProcess(ExitCode);
230  return S_OK;
231 }
232 
233 static HRESULT WINAPI Host_get_ScriptName(IHost *iface, BSTR *out_ScriptName)
234 {
235  WCHAR *scriptName;
236 
237  WINE_TRACE("(%p)\n", out_ScriptName);
238 
239  scriptName = wcsrchr(scriptFullName, '\\');
240  ++scriptName;
241  if(!(*out_ScriptName = SysAllocString(scriptName)))
242  return E_OUTOFMEMORY;
243  return S_OK;
244 }
245 
246 static HRESULT WINAPI Host_get_ScriptFullName(IHost *iface, BSTR *out_ScriptFullName)
247 {
248  WINE_TRACE("(%p)\n", out_ScriptFullName);
249 
250  if(!(*out_ScriptFullName = SysAllocString(scriptFullName)))
251  return E_OUTOFMEMORY;
252  return S_OK;
253 }
254 
255 static HRESULT WINAPI Host_get_Arguments(IHost *iface, IArguments2 **out_Arguments)
256 {
257  WINE_TRACE("(%p)\n", out_Arguments);
258 
259  *out_Arguments = &arguments_obj;
260  return S_OK;
261 }
262 
263 static HRESULT WINAPI Host_get_Version(IHost *iface, BSTR *out_Version)
264 {
265  WINE_TRACE("(%p)\n", out_Version);
266 
267  if(!(*out_Version = SysAllocString(wshVersionW)))
268  return E_OUTOFMEMORY;
269  return S_OK;
270 }
271 
272 static HRESULT WINAPI Host_get_BuildVersion(IHost *iface, int *out_Build)
273 {
274  WINE_TRACE("(%p)\n", out_Build);
275 
276  *out_Build = BUILDVERSION;
277  return S_OK;
278 }
279 
280 static HRESULT WINAPI Host_get_Timeout(IHost *iface, LONG *out_Timeout)
281 {
282  WINE_FIXME("(%p)\n", out_Timeout);
283  return E_NOTIMPL;
284 }
285 
287 {
288  WINE_FIXME("(%d)\n", v);
289  return E_NOTIMPL;
290 }
291 
293  IDispatch **out_Dispatch)
294 {
295  IUnknown *unk;
296  GUID guid;
297  HRESULT hres;
298 
299  TRACE("(%s %s %p)\n", wine_dbgstr_w(ProgID), wine_dbgstr_w(Prefix), out_Dispatch);
300 
301  if(Prefix && *Prefix) {
302  FIXME("Prefix %s not supported\n", debugstr_w(Prefix));
303  return E_NOTIMPL;
304  }
305 
306  hres = CLSIDFromProgID(ProgID, &guid);
307  if(FAILED(hres))
308  return hres;
309 
310  hres = CoCreateInstance(&guid, NULL, CLSCTX_INPROC_SERVER|CLSCTX_LOCAL_SERVER|CLSCTX_REMOTE_SERVER,
311  &IID_IUnknown, (void**)&unk);
312  if(FAILED(hres))
313  return hres;
314 
315  hres = IUnknown_QueryInterface(unk, &IID_IDispatch, (void**)out_Dispatch);
316  IUnknown_Release(unk);
317  return hres;
318 }
319 
321 {
322  WCHAR *output = NULL, *ptr;
323  unsigned argc, i, len;
324 #ifdef __REACTOS__
325  LONG ubound, lbound;
326 #else
327  int ubound, lbound;
328 #endif
329  VARIANT *argv;
330  BSTR *strs;
331  HRESULT hres;
332 
333  TRACE("(%p)\n", args);
334 
335  if(SafeArrayGetDim(args) != 1) {
336  FIXME("Unsupported args dim %d\n", SafeArrayGetDim(args));
337  return E_NOTIMPL;
338  }
339 
340  SafeArrayGetLBound(args, 1, &lbound);
341  SafeArrayGetUBound(args, 1, &ubound);
342 
343  hres = SafeArrayAccessData(args, (void**)&argv);
344  if(FAILED(hres))
345  return hres;
346 
347  argc = ubound-lbound+1;
348  strs = heap_alloc_zero(argc*sizeof(*strs));
349  if(!strs) {
351  return E_OUTOFMEMORY;
352  }
353 
354  /* Len of spaces between arguments. */
355  len = argc-1;
356 
357  for(i=0; i < argc; i++) {
358  hres = to_string(argv+i, strs+i);
359  if(FAILED(hres))
360  break;
361 
362  len += SysStringLen(strs[i]);
363  }
364 
366  if(SUCCEEDED(hres)) {
367  ptr = output = heap_alloc((len+1)*sizeof(WCHAR));
368  if(output) {
369  for(i=0; i < argc; i++) {
370  if(i)
371  *ptr++ = ' ';
372  len = SysStringLen(strs[i]);
373  memcpy(ptr, strs[i], len*sizeof(WCHAR));
374  ptr += len;
375  }
376  *ptr = 0;
377  }else {
379  }
380  }
381 
382  for(i=0; i < argc; i++)
383  SysFreeString(strs[i]);
384  heap_free(strs);
385  if(FAILED(hres))
386  return hres;
387 
389 
390  heap_free(output);
391  return S_OK;
392 }
393 
395  BSTR Prefix, IDispatch **out_Dispatch)
396 {
397  WINE_FIXME("(%s %s %s %p)\n", wine_dbgstr_w(Pathname), wine_dbgstr_w(ProgID),
398  wine_dbgstr_w(Prefix), out_Dispatch);
399  return E_NOTIMPL;
400 }
401 
403 {
404  WINE_FIXME("(%p)\n", Object);
405  return E_NOTIMPL;
406 }
407 
409 {
410  WINE_FIXME("(%d)\n", Time);
411  return E_NOTIMPL;
412 }
413 
415 {
416  WINE_FIXME("(%p %s)\n", Object, wine_dbgstr_w(Prefix));
417  return E_NOTIMPL;
418 }
419 
420 static HRESULT WINAPI Host_get_StdIn(IHost *iface, ITextStream **ppts)
421 {
422  WINE_FIXME("(%p)\n", ppts);
423  return E_NOTIMPL;
424 }
425 
426 static HRESULT WINAPI Host_get_StdOut(IHost *iface, ITextStream **ppts)
427 {
428  WINE_FIXME("(%p)\n", ppts);
429  return E_NOTIMPL;
430 }
431 
432 static HRESULT WINAPI Host_get_StdErr(IHost *iface, ITextStream **ppts)
433 {
434  WINE_FIXME("(%p)\n", ppts);
435  return E_NOTIMPL;
436 }
437 
438 static const IHostVtbl HostVtbl = {
440  Host_AddRef,
441  Host_Release,
445  Host_Invoke,
452  Host_Quit,
461  Host_Echo,
464  Host_Sleep,
469 };
470 
static const IHostVtbl HostVtbl
Definition: host.c:438
DWORD WINAPI GetModuleFileNameW(HINSTANCE hModule, LPWSTR lpFilename, DWORD nSize)
Definition: loader.c:600
BOOL WINAPI WriteFile(IN HANDLE hFile, IN LPCVOID lpBuffer, IN DWORD nNumberOfBytesToWrite OPTIONAL, OUT LPDWORD lpNumberOfBytesWritten, IN LPOVERLAPPED lpOverlapped OPTIONAL)
Definition: rw.c:24
UINT WINAPI SafeArrayGetDim(SAFEARRAY *psa)
Definition: safearray.c:1094
static int argc
Definition: ServiceArgs.c:12
static HRESULT WINAPI Host_get_Name(IHost *iface, BSTR *out_Name)
Definition: host.c:162
static const WCHAR wshNameW[]
Definition: host.c:37
IArguments2 arguments_obj
Definition: arguments.c:140
HRESULT WINAPI DECLSPEC_HOTPATCH VariantChangeType(VARIANTARG *pvargDest, VARIANTARG *pvargSrc, USHORT wFlags, VARTYPE vt)
Definition: variant.c:962
#define REFIID
Definition: guiddef.h:118
_In_ __drv_aliasesMem PSTRING Prefix
Definition: rtlfuncs.h:1631
static UCHAR ULONG UCHAR ULONG UCHAR * output
Definition: bcrypt.c:29
#define E_NOINTERFACE
Definition: winerror.h:2364
#define WideCharToMultiByte
Definition: compat.h:101
IHost host_obj
Definition: host.c:471
BSTR WINAPI SysAllocStringLen(const OLECHAR *str, unsigned int len)
Definition: oleaut.c:339
GLenum GLuint GLenum GLsizei const GLchar * buf
Definition: glext.h:7751
static HRESULT WINAPI Host_get_Timeout(IHost *iface, LONG *out_Timeout)
Definition: host.c:280
GLsizei const GLchar ** path
Definition: glext.h:7234
REFIID riid
Definition: precomp.h:44
char * wine_dbgstr_w(const wchar_t *wstr)
Definition: atltest.h:87
BOOL WINAPI DECLSPEC_HOTPATCH WriteConsoleW(IN HANDLE hConsoleOutput, IN CONST VOID *lpBuffer, IN DWORD nNumberOfCharsToWrite, OUT LPDWORD lpNumberOfCharsWritten, LPVOID lpReserved)
Definition: readwrite.c:1447
GLuint GLuint GLsizei count
Definition: gl.h:1545
#define WARN(fmt,...)
Definition: debug.h:112
REFIID LPVOID * ppv
Definition: atlbase.h:39
static void print_string(const WCHAR *string)
Definition: host.c:70
const char * wine_dbgstr_guid(const GUID *guid)
VOID WINAPI ExitProcess(IN UINT uExitCode)
Definition: proc.c:1487
#define WINE_TRACE
Definition: debug.h:353
HANDLE WINAPI GetStdHandle(IN DWORD nStdHandle)
Definition: console.c:200
DWORD LCID
Definition: nls.h:13
OLECHAR * BSTR
Definition: compat.h:1943
static HRESULT WINAPI Host_get_BuildVersion(IHost *iface, int *out_Build)
Definition: host.c:272
static HRESULT WINAPI Host_get_Application(IHost *iface, IDispatch **out_Dispatch)
Definition: host.c:171
#define argv
Definition: mplay32.c:18
static LPOLESTR
Definition: stg_prop.c:27
#define lstrlenW
Definition: compat.h:416
#define E_FAIL
Definition: ddrawi.h:102
Definition: match.c:390
HRESULT WINAPI DECLSPEC_HOTPATCH CLSIDFromProgID(LPCOLESTR progid, LPCLSID clsid)
Definition: compobj.c:2602
short VARIANT_BOOL
Definition: compat.h:1940
static void * heap_alloc(size_t len)
Definition: appwiz.h:65
static HRESULT WINAPI Host_Quit(IHost *iface, int ExitCode)
Definition: host.c:225
static HRESULT WINAPI Host_get_Arguments(IHost *iface, IArguments2 **out_Arguments)
Definition: host.c:255
static HRESULT WINAPI Host_get_StdOut(IHost *iface, ITextStream **ppts)
Definition: host.c:426
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
const GUID * guid
static HRESULT WINAPI Host_get_Path(IHost *iface, BSTR *out_Path)
Definition: host.c:192
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
WCHAR scriptFullName[MAX_PATH]
Definition: main.c:56
HRESULT WINAPI SafeArrayAccessData(SAFEARRAY *psa, void **ppvData)
Definition: safearray.c:1137
WINE_DEFAULT_DEBUG_CHANNEL(wscript)
long LONG
Definition: pedump.c:60
Definition: ihost.idl:29
#define debugstr_w
Definition: kernel32.h:32
#define FIXME(fmt,...)
Definition: debug.h:111
static PVOID ptr
Definition: dispmode.c:27
static HRESULT to_string(VARIANT *src, BSTR *dst)
Definition: host.c:47
UINT WINAPI DECLSPEC_HOTPATCH GetConsoleOutputCP(VOID)
Definition: console.c:2453
smooth NULL
Definition: ftsmooth.c:416
static HRESULT WINAPI Host_Sleep(IHost *iface, LONG Time)
Definition: host.c:408
BSTR WINAPI SysAllocString(LPCOLESTR str)
Definition: oleaut.c:238
_Check_return_ _CRTIMP _CONST_RETURN wchar_t *__cdecl wcsrchr(_In_z_ const wchar_t *_Str, _In_ wchar_t _Ch)
static HRESULT WINAPI Host_get_FullName(IHost *iface, BSTR *out_Path)
Definition: host.c:179
static HRESULT WINAPI Host_get_ScriptName(IHost *iface, BSTR *out_ScriptName)
Definition: host.c:233
#define TRACE(s)
Definition: solgame.cpp:4
static HRESULT WINAPI Host_Echo(IHost *iface, SAFEARRAY *args)
Definition: host.c:320
HRESULT hres
Definition: protocol.c:465
int WINAPI MessageBoxW(_In_opt_ HWND, _In_opt_ LPCWSTR, _In_opt_ LPCWSTR, _In_ UINT)
__wchar_t WCHAR
Definition: xmlstorage.h:180
LONG HRESULT
Definition: typedefs.h:78
const GUID IID_IUnknown
#define MAX_PATH
Definition: compat.h:26
static ULONG WINAPI Host_AddRef(IHost *iface)
Definition: host.c:116
#define WINAPI
Definition: msvc.h:6
static HRESULT WINAPI Host_get_ScriptFullName(IHost *iface, BSTR *out_ScriptFullName)
Definition: host.c:246
unsigned short WORD
Definition: ntddk_ex.h:93
HRESULT WINAPI SafeArrayGetLBound(SAFEARRAY *psa, UINT nDim, LONG *plLbound)
Definition: safearray.c:1066
unsigned long DWORD
Definition: ntddk_ex.h:95
static HRESULT WINAPI Host_GetTypeInfo(IHost *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
Definition: host.c:133
static HRESULT WINAPI Host_put_Timeout(IHost *iface, LONG v)
Definition: host.c:286
static HRESULT WINAPI Host_GetTypeInfoCount(IHost *iface, UINT *pctinfo)
Definition: host.c:126
static IUnknown Object
Definition: main.c:512
static HRESULT WINAPI Host_get_StdErr(IHost *iface, ITextStream **ppts)
Definition: host.c:432
ITypeInfo * host_ti
Definition: main.c:58
const GUID IID_IDispatch
int ret
static HRESULT WINAPI Host_GetObject(IHost *iface, BSTR Pathname, BSTR ProgID, BSTR Prefix, IDispatch **out_Dispatch)
Definition: host.c:394
#define V_VT(A)
Definition: oleauto.h:211
#define memcpy(s1, s2, n)
Definition: mkisofs.h:878
static HRESULT WINAPI Host_ConnectObject(IHost *iface, IDispatch *Object, BSTR Prefix)
Definition: host.c:414
GLenum GLsizei len
Definition: glext.h:6722
UINT WINAPI SysStringLen(BSTR str)
Definition: oleaut.c:196
#define STD_OUTPUT_HANDLE
Definition: winbase.h:265
GLenum src
Definition: glext.h:6340
static HRESULT WINAPI Host_put_Interactive(IHost *iface, VARIANT_BOOL v)
Definition: host.c:217
#define V_BSTR(A)
Definition: oleauto.h:226
HRESULT WINAPI DECLSPEC_HOTPATCH CoCreateInstance(REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext, REFIID iid, LPVOID *ppv)
Definition: compobj.c:3325
static HRESULT WINAPI Host_get_Interactive(IHost *iface, VARIANT_BOOL *out_Interactive)
Definition: host.c:209
_In_ DWORD _Out_ _In_ WORD wFlags
Definition: wincon.h:534
struct stdole::EXCEPINFO EXCEPINFO
static const char * debugstr_variant(const VARIANT *var)
Definition: container.c:46
static VARIANTARG static DISPID
Definition: ordinal.c:49
#define S_OK
Definition: intsafe.h:59
HRESULT WINAPI SafeArrayGetUBound(SAFEARRAY *psa, UINT nDim, LONG *plUbound)
Definition: safearray.c:1033
const GLdouble * v
Definition: gl.h:2040
static ULONG WINAPI Host_Release(IHost *iface)
Definition: host.c:121
#define ARRAY_SIZE(a)
Definition: main.h:24
#define E_NOTIMPL
Definition: ddrawi.h:99
GLenum GLenum dst
Definition: glext.h:6340
void WINAPI DECLSPEC_HOTPATCH SysFreeString(BSTR str)
Definition: oleaut.c:271
unsigned int UINT
Definition: ndis.h:50
BOOL WINAPI IsEqualGUID(REFGUID rguid1, REFGUID rguid2)
Definition: compobj.c:4112
#define MB_OK
Definition: winuser.h:784
static HRESULT WINAPI Host_GetIDsOfNames(IHost *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
Definition: host.c:143
static HRESULT WINAPI Host_QueryInterface(IHost *iface, REFIID riid, void **ppv)
Definition: host.c:101
static HRESULT WINAPI Host_get_Version(IHost *iface, BSTR *out_Version)
Definition: host.c:263
struct stdole::DISPPARAMS DISPPARAMS
unsigned int ULONG
Definition: retypes.h:1
static const WCHAR wshVersionW[]
Definition: host.c:38
static HRESULT WINAPI Host_DisconnectObject(IHost *iface, IDispatch *Object)
Definition: host.c:402
static HRESULT WINAPI Host_get_StdIn(IHost *iface, ITextStream **ppts)
Definition: host.c:420
VARIANT_BOOL wshInteractive
Definition: host.c:40
#define BUILDVERSION
Definition: host.c:35
static HRESULT WINAPI Host_CreateObject(IHost *iface, BSTR ProgID, BSTR Prefix, IDispatch **out_Dispatch)
Definition: host.c:292
static const WCHAR nullW[]
Definition: json.c:32
static PLARGE_INTEGER Time
Definition: time.c:105
static HRESULT WINAPI Host_Invoke(IHost *iface, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
Definition: host.c:152
HRESULT WINAPI SafeArrayUnaccessData(SAFEARRAY *psa)
Definition: safearray.c:1168
#define SUCCEEDED(hr)
Definition: intsafe.h:57
static BOOL heap_free(void *mem)
Definition: appwiz.h:75
#define WINE_FIXME
Definition: debug.h:365
ACPI_PHYSICAL_ADDRESS ACPI_SIZE BOOLEAN Warn BOOLEAN Physical UINT32 ACPI_TABLE_HEADER *OutTableHeader ACPI_TABLE_HEADER **OutTable ACPI_HANDLE UINT32 ACPI_WALK_CALLBACK ACPI_WALK_CALLBACK void void **ReturnValue UINT32 ACPI_BUFFER *RetPathPtr ACPI_OBJECT_HANDLER void *Data ACPI_OBJECT_HANDLER void **Data ACPI_STRING Pathname
Definition: acpixf.h:700