33 0x4d, 0x53, 0x43, 0x46, 0x00, 0x00, 0x00, 0x00, 0x9c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
34 0x2c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x01, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00,
35 0x00, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x0a, 0x00, 0x00, 0x00,
36 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd1, 0x38, 0xf0, 0x48, 0x20, 0x00, 0x74, 0x72, 0x69, 0x73,
37 0x74, 0x72, 0x61, 0x6d, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd1,
38 0x38, 0xf0, 0x48, 0x20, 0x00, 0x77, 0x69, 0x6e, 0x65, 0x00, 0x08, 0x00, 0x00, 0x00, 0x18, 0x00,
39 0x00, 0x00, 0x00, 0x00, 0xd1, 0x38, 0xf0, 0x48, 0x20, 0x00, 0x73, 0x68, 0x61, 0x6e, 0x64, 0x79,
40 0x00, 0x67, 0x2c, 0x03, 0x85, 0x23, 0x00, 0x20, 0x00, 0x43, 0x4b, 0xcb, 0x49, 0x2c, 0x2d, 0x4a,
41 0xcd, 0x4b, 0x4e, 0xe5, 0xe5, 0x2a, 0xcd, 0x4b, 0xce, 0xcf, 0x2d, 0x28, 0x4a, 0x2d, 0x2e, 0x4e,
42 0x4d, 0xe1, 0xe5, 0x2a, 0x2e, 0x49, 0x2d, 0xca, 0x03, 0x8a, 0x02, 0x00
72 ok(0,
"Received unexpected notification (%p, %u, %lu, %lu)\n",
Context,
73 Notification, Param1, Param2);
80 ok(0,
"Received unexpected notification (%p, %u, %lu, %lu)\n",
Context,
81 Notification, Param1, Param2);
95 DWORD expected_lasterror;
97 } invalid_parameters[] =
116 invalid_parameters[
i].MsgHandler,
NULL);
117 ok(!
ret,
"[%d] Expected SetupIterateCabinetA to return 0, got %d\n",
i,
ret);
120 "[%d] Expected GetLastError() to return %u, got %u\n",
126 ok(!
ret,
"Expected SetupIterateCabinetA to return 0, got %d\n",
ret);
129 "Expected GetLastError() to return ERROR_NOT_ENOUGH_MEMORY, got %u\n",
134 ok(!
ret,
"Expected SetupIterateCabinetA to return 0, got %d\n",
ret);
137 "Expected GetLastError() to return ERROR_NOT_ENOUGH_MEMORY, got %u\n",
145 static const WCHAR nonexistentW[] = {
'c',
':',
'\\',
'n',
'o',
'n',
'e',
'x',
'i',
's',
't',
'e',
'n',
't',
'.',
'c',
'a',
'b',0};
156 DWORD expected_lasterror;
158 } invalid_parameters[] =
169 win_skip(
"SetupIterateCabinetW is not available\n");
182 invalid_parameters[
i].MsgHandler,
NULL);
183 ok(!
ret,
"[%d] Expected SetupIterateCabinetW to return 0, got %d\n",
i,
ret);
186 "[%d] Expected GetLastError() to return %u, got %u\n",
192 ok(!
ret,
"Expected SetupIterateCabinetW to return 0, got %d\n",
ret);
195 "Expected GetLastError() to return ERROR_INVALID_PARAMETER, got %u\n",
200 ok(!
ret,
"Expected SetupIterateCabinetW to return 0, got %d\n",
ret);
203 "Expected GetLastError() to return ERROR_INVALID_PARAMETER, got %u\n",
208 ok(!
ret,
"Expected SetupIterateCabinetW to return 0, got %d\n",
ret);
211 "Expected GetLastError() to return ERROR_NOT_ENOUGH_MEMORY, got %u\n",
216 ok(!
ret,
"Expected SetupIterateCabinetW to return 0, got %d\n",
ret);
219 "Expected GetLastError() to return ERROR_NOT_ENOUGH_MEMORY, got %u\n",
228 *(
volatile char*)0 = 2;
235 *(
volatile char*)0 = 2;
251 ok(!
ret,
"Expected SetupIterateCabinetA to return 0, got %d\n",
ret);
253 "Expected GetLastError() to return ERROR_INVALID_DATA, got %u\n",
258 ok(!
ret,
"Expected SetupIterateCabinetA to return 0, got %d\n",
ret);
260 "Expected GetLastError() to return ERROR_INVALID_DATA, got %u\n",
274 win_skip(
"SetupIterateCabinetW is not available\n");
285 ok(!
ret,
"Expected SetupIterateCabinetW to return 0, got %d\n",
ret);
287 "Expected GetLastError() to return ERROR_INVALID_DATA, got %u\n",
292 ok(!
ret,
"Expected SetupIterateCabinetW to return 0, got %d\n",
ret);
294 "Expected GetLastError() to return ERROR_INVALID_DATA, got %u\n",
315 switch (Notification)
322 "Expected empty CabinetFile, got \"%s\"\n",
info->CabinetFile);
330 const char *cabinet_file = (
const char *)Param2;
337 "[%d] Expected file \"%s\", got \"%s\"\n",
340 "[%d] Expected cabinet \"%s\", got \"%s\"\n",
348 ok(0,
"Unexpectedly enumerated more than number of files in cabinet, index = %d\n",
index);
357 "[%d] Expected cabinet \"%s\", got \"%s\"\n",
360 "[%d] Expected target \"%s\", got \"%s\"\n",
363 "[%d] Expected Win32Error 0, got %u\n",
391 ok(
ret == 1,
"Expected SetupIterateCabinetA to return 1, got %d\n",
ret);
417 switch (Notification)
432 const WCHAR *cabinet_file = (
const WCHAR *)Param2;
439 "[%d] Expected file %s, got %s\n",
442 "[%d] Expected cabinet %s, got %s\n",
450 ok(0,
"Unexpectedly enumerated more than number of files in cabinet, index = %d\n",
index);
459 "[%d] Expected cabinet %s, got %s\n",
462 "[%d] Expected target %s, got %s\n",
465 "[%d] Expected Win32Error 0, got %u\n",
486 win_skip(
"SetupIterateCabinetW is not available\n");
500 ok(
ret == 1,
"Expected SetupIterateCabinetW to return 1, got %d\n",
ret);
#define ERROR_INVALID_PARAMETER
BOOL WINAPI SetupIterateCabinetA(PCSTR CabinetFile, DWORD Reserved, PSP_FILE_CALLBACK_A MsgHandler, PVOID Context)
BOOL WINAPI WriteFile(IN HANDLE hFile, IN LPCVOID lpBuffer, IN DWORD nNumberOfBytesToWrite OPTIONAL, OUT LPDWORD lpNumberOfBytesWritten, IN LPOVERLAPPED lpOverlapped OPTIONAL)
static UINT CALLBACK crash_callbackA(PVOID Context, UINT Notification, UINT_PTR Param1, UINT_PTR Param2)
namespace GUID const ADDRINFOEXW ADDRINFOEXW struct timeval OVERLAPPED LPLOOKUPSERVICE_COMPLETION_ROUTINE HANDLE * handle
static const BYTE comp_cab_zip_multi[]
#define SPFILENOTIFY_FILEEXTRACTED
char * wine_dbgstr_w(const wchar_t *wstr)
static void test_invalid_callbackA(void)
int WINAPI lstrcmpW(LPCWSTR lpString1, LPCWSTR lpString2)
#define ERROR_NOT_ENOUGH_MEMORY
DWORD WINAPI GetLastError(VOID)
UINT(CALLBACK * PSP_FILE_CALLBACK_A)(PVOID, UINT, UINT_PTR, UINT_PTR)
static const WCHAR tristramW[]
BOOL WINAPI SetupIterateCabinetW(PCWSTR CabinetFile, DWORD Reserved, PSP_FILE_CALLBACK_W MsgHandler, PVOID Context)
static const char * expected_files[]
static void create_source_fileW(LPWSTR filename, const BYTE *data, DWORD size)
static UINT CALLBACK crash_callbackW(PVOID Context, UINT Notification, UINT_PTR Param1, UINT_PTR Param2)
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
DWORD WINAPI GetTempPathW(IN DWORD count, OUT LPWSTR path)
BOOL WINAPI DeleteFileW(IN LPCWSTR lpFileName)
static UINT CALLBACK simple_callbackA(PVOID Context, UINT Notification, UINT_PTR Param1, UINT_PTR Param2)
static void test_invalid_parametersA(void)
BOOL WINAPI DeleteFileA(IN LPCSTR lpFileName)
static void test_invalid_parametersW(void)
#define ERROR_FILE_NOT_FOUND
#define SPFILENOTIFY_CABINETINFO
#define todo_wine_if(is_todo)
UINT(CALLBACK * PSP_FILE_CALLBACK_W)(IN PVOID Context, IN UINT Notification, IN UINT_PTR Param1, IN UINT_PTR Param2)
UINT WINAPI GetTempFileNameW(IN LPCWSTR lpPathName, IN LPCWSTR lpPrefixString, IN UINT uUnique, OUT LPWSTR lpTempFileName)
static const WCHAR wineW[]
unsigned __int3264 UINT_PTR
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
#define FILE_ATTRIBUTE_NORMAL
#define SPFILENOTIFY_FILEINCABINET
static const WCHAR shandyW[]
static UINT CALLBACK simple_callbackW(PVOID Context, UINT Notification, UINT_PTR Param1, UINT_PTR Param2)
#define ERROR_INVALID_DATA
static const WCHAR emptyW[]
DWORD WINAPI GetTempPathA(IN DWORD nBufferLength, OUT LPSTR lpBuffer)
static void test_simple_enumerationA(void)
GLsizei GLsizei GLchar * source
static void test_invalid_callbackW(void)
static const WCHAR * expected_filesW[]
static UINT CALLBACK dummy_callbackW(PVOID Context, UINT Notification, UINT_PTR Param1, UINT_PTR Param2)
static void create_source_fileA(LPSTR filename, const BYTE *data, DWORD size)
char * strcpy(char *DstString, const char *SrcString)
struct tagContext Context
int strcmp(const char *String1, const char *String2)
#define ERROR_CALL_NOT_IMPLEMENTED
static const WCHAR docW[]
#define CreateFileA(a, b, c, d, e, f, g)
UINT WINAPI GetTempFileNameA(IN LPCSTR lpPathName, IN LPCSTR lpPrefixString, IN UINT uUnique, OUT LPSTR lpTempFileName)
static void test_simple_enumerationW(void)
static UINT CALLBACK dummy_callbackA(PVOID Context, UINT Notification, UINT_PTR Param1, UINT_PTR Param2)