24 #define PSAPI_VERSION 1 32 #define DEFINE_EXPECT(func) \ 33 static BOOL expect_ ## func = FALSE, called_ ## func = FALSE 35 #define SET_EXPECT(func) \ 36 expect_ ## func = TRUE 38 #define CLEAR_CALLED(func) \ 39 expect_ ## func = called_ ## func = FALSE 41 #define CHECK_EXPECT2(func) \ 43 ok(expect_ ##func, "unexpected call " #func "\n"); \ 44 called_ ## func = TRUE; \ 47 #define CHECK_EXPECT(func) \ 49 CHECK_EXPECT2(func); \ 50 expect_ ## func = FALSE; \ 53 #define CHECK_CALLED(func) \ 55 ok(called_ ## func, "expected " #func "\n"); \ 56 expect_ ## func = called_ ## func = FALSE; \ 61 #define DISPID_TESTOBJ_OK 10000 62 #define DISPID_TESTOBJ_TRACE 10001 63 #define DISPID_TESTOBJ_REPORTSUCCESS 10002 64 #define DISPID_TESTOBJ_WSCRIPTFULLNAME 10003 65 #define DISPID_TESTOBJ_WSCRIPTPATH 10004 66 #define DISPID_TESTOBJ_WSCRIPTSCRIPTNAME 10005 67 #define DISPID_TESTOBJ_WSCRIPTSCRIPTFULLNAME 10006 69 #define TESTOBJ_CLSID "{178fc166-f585-4e24-9c13-4bb7faf80646}" 72 {0x178fc166,0xf585,0x4e24,{0x9c,0x13,0x4b,0xb7,0xfa,0xf8,0x06,0x46}};
130 ok(0,
"unexpected call\n");
137 ok(0,
"unexpected call\n");
146 for(
i=0;
i<cNames;
i++) {
151 }
else if(!
strcmp_wa(rgszNames[
i],
"reportSuccess")) {
153 }
else if(!
strcmp_wa(rgszNames[
i],
"wscriptFullName")) {
155 }
else if(!
strcmp_wa(rgszNames[
i],
"wscriptPath")) {
157 }
else if(!
strcmp_wa(rgszNames[
i],
"wscriptScriptName")) {
159 }
else if(!
strcmp_wa(rgszNames[
i],
"wscriptScriptFullName")) {
173 switch(dispIdMember) {
178 ok(pdp->cArgs == 2,
"cArgs = %d\n", pdp->cArgs);
179 ok(!pdp->cNamedArgs,
"cNamedArgs = %d\n", pdp->cNamedArgs);
181 expr = pdp->rgvarg+1;
198 ok(pdp->cArgs == 1,
"cArgs = %d\n", pdp->cArgs);
199 ok(!pdp->cNamedArgs,
"cNamedArgs = %d\n", pdp->cNamedArgs);
200 ok(
V_VT(pdp->rgvarg) ==
VT_BSTR,
"V_VT(psp->rgvargs) = %d\n",
V_VT(pdp->rgvarg));
209 ok(pdp->cArgs == 0,
"cArgs = %d\n", pdp->cArgs);
210 ok(!pdp->cNamedArgs,
"cNamedArgs = %d\n", pdp->cNamedArgs);
220 ok(pdp->cArgs == 0,
"cArgs = %d\n", pdp->cArgs);
221 ok(!pdp->cNamedArgs,
"cNamedArgs = %d\n", pdp->cNamedArgs);
237 ok(pdp->cArgs == 0,
"cArgs = %d\n", pdp->cArgs);
238 ok(!pdp->cNamedArgs,
"cNamedArgs = %d\n", pdp->cNamedArgs);
255 ok(pdp->cArgs == 0,
"cArgs = %d\n", pdp->cArgs);
256 ok(!pdp->cNamedArgs,
"cNamedArgs = %d\n", pdp->cNamedArgs);
259 if(!
res ||
res >
sizeof(fullPath))
271 ok(pdp->cArgs == 0,
"cArgs = %d\n", pdp->cArgs);
272 ok(!pdp->cNamedArgs,
"cNamedArgs = %d\n", pdp->cNamedArgs);
275 if(!
res ||
res >
sizeof(fullPath))
282 ok(0,
"unexpected dispIdMember %d\n", dispIdMember);
324 ok(!outer,
"outer = %p\n", outer);
358 win_skip(
"script.exe is not available\n");
368 ok(
exit_code == expected_exit_code,
"exit_code = %u, expected %u\n",
exit_code, expected_exit_code);
376 static void run_script(
const char *
name,
const char *script_data,
size_t script_size,
DWORD expected_exit_code)
385 ok(
ext !=
NULL,
"no script extension\n");
415 const char *script_data;
428 while(script_size && !script_data[script_size-1])
473 ok(
hres ==
S_OK,
"Could not register script engine: %08x\n",
hres);
485 skip(
"Could not register ActiveX object.\n");
497 "winetest.reportSuccess();\n" 499 "winetest.ok(false, 'not quit?');\n", 3);
#define DISP_E_UNKNOWNNAME
BOOL WINAPI WriteFile(IN HANDLE hFile, IN LPCVOID lpBuffer, IN DWORD nNumberOfBytesToWrite OPTIONAL, OUT LPDWORD lpNumberOfBytesWritten, IN LPOVERLAPPED lpOverlapped OPTIONAL)
static HRESULT WINAPI Dispatch_Invoke(IDispatch *iface, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pdp, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
#define DISPID_TESTOBJ_WSCRIPTPATH
#define DISPID_TESTOBJ_WSCRIPTSCRIPTNAME
static HRESULT WINAPI Dispatch_GetTypeInfo(IDispatch *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
static WCHAR fullName[MAX_STRING_RESOURCE_LEN]
#define CLEAR_CALLED(func)
static HRESULT WINAPI ClassFactory_CreateInstance(IClassFactory *iface, IUnknown *outer, REFIID riid, void **ppv)
BSTR WINAPI SysAllocStringLen(const OLECHAR *str, unsigned int len)
ACPI_SIZE strlen(const char *String)
static const GUID CLSID_TestObj
static HRESULT WINAPI Dispatch_GetTypeInfoCount(IDispatch *iface, UINT *pctinfo)
char * wine_dbgstr_w(const wchar_t *wstr)
BOOL WINAPI GetExitCodeProcess(IN HANDLE hProcess, IN LPDWORD lpExitCode)
int WINAPI lstrcmpW(LPCWSTR lpString1, LPCWSTR lpString2)
HRSRC WINAPI FindResourceA(HMODULE hModule, LPCSTR name, LPCSTR type)
static IClassFactory testobj_cf
#define INVALID_HANDLE_VALUE
DWORD WINAPI GetLastError(VOID)
LONG WINAPI RegSetValueA(HKEY hKeyOriginal, LPCSTR lpSubKey, DWORD dwType, LPCSTR lpData, DWORD cbData)
_Check_return_ _CRTIMP _CONST_RETURN char *__cdecl strrchr(_In_z_ const char *_Str, _In_ int _Ch)
BOOL WINAPI EnumResourceNamesA(HMODULE hmod, LPCSTR type, ENUMRESNAMEPROCA lpfun, LONG_PTR lparam)
static BOOL register_activex(void)
DWORD WINAPI GetFullPathNameA(IN LPCSTR lpFileName, IN DWORD nBufferLength, OUT LPSTR lpBuffer, OUT LPSTR *lpFilePart)
static HRESULT WINAPI ClassFactory_QueryInterface(IClassFactory *iface, REFIID riid, void **ppv)
#define sprintf(buf, format,...)
static int strcmp_wa(LPCWSTR strw, const char *stra)
GLenum GLuint GLenum GLsizei const GLchar * buf
DWORD WINAPI WaitForSingleObject(IN HANDLE hHandle, IN DWORD dwMilliseconds)
#define DEFINE_EXPECT(func)
static IDispatchVtbl testobj_vtbl
static ULONG WINAPI ClassFactory_Release(IClassFactory *iface)
#define CHECK_CALLED(func)
HGLOBAL WINAPI LoadResource(HINSTANCE hModule, HRSRC hRsrc)
static const IClassFactoryVtbl ClassFactoryVtbl
static HANDLE wscript_process
#define GetModuleFileNameExW(w, x, y, z)
BSTR WINAPI SysAllocString(LPCOLESTR str)
BOOL WINAPI DeleteFileA(IN LPCSTR lpFileName)
LONG WINAPI RegCreateKeyA(HKEY hKey, LPCSTR lpSubKey, PHKEY phkResult)
static ULONG WINAPI Dispatch_Release(IDispatch *iface)
static ULONG WINAPI Dispatch_AddRef(IDispatch *iface)
static BOOL WINAPI test_enum_proc(HMODULE module, LPCSTR type, LPSTR name, LONG_PTR param)
static ULONG WINAPI ClassFactory_AddRef(IClassFactory *iface)
static BSTR a2bstr(const char *str)
BOOL WINAPI DECLSPEC_HOTPATCH CreateProcessA(LPCSTR lpApplicationName, LPSTR lpCommandLine, LPSECURITY_ATTRIBUTES lpProcessAttributes, LPSECURITY_ATTRIBUTES lpThreadAttributes, BOOL bInheritHandles, DWORD dwCreationFlags, LPVOID lpEnvironment, LPCSTR lpCurrentDirectory, LPSTARTUPINFOA lpStartupInfo, LPPROCESS_INFORMATION lpProcessInformation)
struct task_struct * current
int winetest_get_mainargs(char ***pargv)
#define FILE_ATTRIBUTE_NORMAL
static const WCHAR * mystrrchr(const WCHAR *str, WCHAR ch)
static HRESULT WINAPI ClassFactory_LockServer(IClassFactory *iface, BOOL dolock)
static BOOL init_key(const char *key_name, const char *def_value, BOOL init)
_In_ DWORD _Out_ _In_ WORD wFlags
LONG WINAPI RegDeleteKeyA(_In_ HKEY hKey, _In_ LPCSTR lpSubKey)
static HRESULT WINAPI Dispatch_GetIDsOfNames(IDispatch *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
HRESULT WINAPI CoRegisterClassObject(REFCLSID rclsid, LPUNKNOWN pUnk, DWORD dwClsContext, DWORD flags, LPDWORD lpdwRegister)
struct stdole::EXCEPINFO EXCEPINFO
static VARIANTARG static DISPID
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
#define DISPID_TESTOBJ_TRACE
void WINAPI DECLSPEC_HOTPATCH CoUninitialize(void)
#define CHECK_EXPECT(func)
HRESULT WINAPI DECLSPEC_HOTPATCH CoInitializeEx(LPVOID lpReserved, DWORD dwCoInit)
BOOL WINAPI IsEqualGUID(REFGUID rguid1, REFGUID rguid2)
static void run_simple_script(const char *script, DWORD expected_exit_code)
#define DISPID_TESTOBJ_OK
DWORD WINAPI SizeofResource(HINSTANCE hModule, HRSRC hRsrc)
#define MultiByteToWideChar
#define DISPID_TESTOBJ_WSCRIPTSCRIPTFULLNAME
struct stdole::DISPPARAMS DISPPARAMS
static void run_script(const char *name, const char *script_data, size_t script_size, DWORD expected_exit_code)
static HRESULT WINAPI Dispatch_QueryInterface(IDispatch *iface, REFIID riid, void **ppv)
#define HKEY_CLASSES_ROOT
#define DISPID_TESTOBJ_REPORTSUCCESS
GLuint GLuint GLsizei GLenum type
#define DISPID_TESTOBJ_WSCRIPTFULLNAME
#define CreateFileA(a, b, c, d, e, f, g)
static const char * script_name
static void run_script_file(const char *file_name, DWORD expected_exit_code)
static BOOL init_registry(BOOL init)
const GUID IID_IClassFactory
static const char * strw(LPCWSTR x)
#define RegCloseKey(hKey)