22#pragma makedep testdll
40#define __WINE_PRINTF_ATTR(fmt,args) __attribute__((format (printf,fmt,args)))
42#define __WINE_PRINTF_ATTR(fmt,args)
85#define ok(hinst, condition, ...) ok_(hinst, todo_level, __FILE__, __LINE__, condition, __VA_ARGS__)
86#define todo_wine_if(is_todo) for (winetest_start_todo(is_todo); \
87 winetest_loop_todo(); \
89#define todo_wine todo_wine_if(1)
95 if (!
str)
return "(null)";
100 while ((*
p++ = *
str++));
112 ok(
hinst, !
r,
"'%s': got %u\n", prop,
r);
137 ok(
hinst, sz == 0,
"got size %lu\n", sz);
144 ok(
hinst, sz == 0,
"got size %lu\n", sz);
151 ok(
hinst, sz == 0,
"got size %lu\n", sz);
199 ok(
hinst, sz == 6,
"got size %lu\n", sz);
206 ok(
hinst, sz == 6,
"got size %lu\n", sz);
213 ok(
hinst, sz == 6,
"got size %lu\n", sz);
220 ok(
hinst, sz == 6,
"got size %lu\n", sz);
227 ok(
hinst, sz == 3,
"got size %lu\n", sz);
238 ok(
hinst, sz == 3,
"got size %lu\n", sz);
245 ok(
hinst, sz == 3,
"got size %lu\n", sz);
252 ok(
hinst, sz == 3,
"got size %lu\n", sz);
259 ok(
hinst, sz == 3,
"got size %lu\n", sz);
266 ok(
hinst, sz == 3,
"got size %lu\n", sz);
275 ok(
hinst, sz == 6,
"got size %lu\n", sz);
281 ok(
hinst, sz == 3,
"got size %lu\n", sz);
299 ok(
hinst, hdb,
"MsiGetActiveDatabase failed\n");
324 ok(
hinst, hdb2,
"MsiGetActiveDatabase failed\n");
325 ok(
hinst, hdb2 != hdb,
"db handles should be different\n");
416 ok(
hinst, !rec2,
"got %lu\n", rec2);
444 ok(
hinst, !rec2,
"got %lu\n", rec2);
491 for (
i = 0;
i < 20;
i++)
497 int_value = 0xdeadbeef;
507 ok(
hinst, int_value == 100,
"%u: got %u\n",
i, int_value);
509 ok(
hinst, int_value == 0,
"%u: got %u\n",
i, int_value);
512 ok(
hinst, sz == 5,
"%u: got %lu\n",
i, sz);
517 ok(
hinst, sz == 76,
"%u: got %lu\n",
i, sz);
529 for (
i = 0;
i < 20;
i++)
595 ok(
hinst, sz == 6,
"got size %lu\n", sz);
602 ok(
hinst, sz == 6,
"got size %lu\n", sz);
609 ok(
hinst, sz == 6,
"got size %lu\n", sz);
616 ok(
hinst, sz == 6,
"got size %lu\n", sz);
623 ok(
hinst, sz == 3,
"got size %lu\n", sz);
628 ok(
hinst, sz == 3,
"got size %lu\n", sz);
635 ok(
hinst, sz == 3,
"got size %lu\n", sz);
642 ok(
hinst, sz == 3,
"got size %lu\n", sz);
649 ok(
hinst, sz == 3,
"got size %lu\n", sz);
656 ok(
hinst, sz == 3,
"got size %lu\n", sz);
694 ok(
hinst, sz == srcsz * 2,
"got size %lu\n", sz);
701 ok(
hinst, sz == srcsz * 2,
"got size %lu\n", sz);
708 ok(
hinst, sz == srcsz * 2,
"got size %lu\n", sz);
715 ok(
hinst, sz == srcsz * 2,
"got size %lu\n", sz);
722 ok(
hinst, sz == srcsz,
"got size %lu\n", sz);
727 ok(
hinst, sz == srcsz,
"got size %lu\n", sz);
734 ok(
hinst, sz == srcsz,
"got size %lu\n", sz);
741 ok(
hinst, sz == srcsz,
"got size %lu\n", sz);
748 ok(
hinst, sz == srcsz,
"got size %lu\n", sz);
755 ok(
hinst, sz == srcsz,
"got size %lu\n", sz);
899 ok(
hinst, sz == 14,
"got size %lu\n", sz);
906 ok(
hinst, sz == 14,
"got size %lu\n", sz);
913 ok(
hinst, sz == 14,
"got size %lu\n", sz);
920 ok(
hinst, sz == 14,
"got size %lu\n", sz);
927 ok(
hinst, sz == 7,
"got size %lu\n", sz);
938 ok(
hinst, sz == 7,
"got size %lu\n", sz);
945 ok(
hinst, sz == 7,
"got size %lu\n", sz);
952 ok(
hinst, sz == 7,
"got size %lu\n", sz);
959 ok(
hinst, sz == 7,
"got size %lu\n", sz);
966 ok(
hinst, sz == 7,
"got size %lu\n", sz);
975 ok(
hinst, sz == 6,
"got size %lu\n", sz);
992 ok(
hinst, !cost,
"got %d\n", cost);
1001 ok(
hinst, cost == 8,
"got %d\n", cost);
1003 sz = cost =
temp = 0xdead;
1006 ok(
hinst, sz == 0xdead,
"got size %lu\n", sz);
1007 ok(
hinst, cost == 0xdead,
"got cost %d\n", cost);
1010 cost =
temp = 0xdead;
1013 ok(
hinst, cost == 0xdead,
"got cost %d\n", cost);
1019 ok(
hinst, sz == 0xdead,
"got size %lu\n", sz);
1025 ok(
hinst, sz == 0xdead,
"got size %lu\n", sz);
1026 ok(
hinst, cost == 0xdead,
"got cost %d\n", cost);
1028 cost =
temp = 0xdead;
1032 ok(
hinst, sz == 2,
"got size %lu\n", sz);
1034 ok(
hinst, !cost,
"got cost %d\n", cost);
1037 cost =
temp = 0xdead;
1041 ok(
hinst, sz == 2,
"got size %lu\n", sz);
1043 ok(
hinst, cost == 8,
"got cost %d\n", cost);
1047 cost =
temp = 0xdead;
1054 ok(
hinst, sz == 4,
"got size %lu\n", sz);
1055 ok(
hinst, cost == 8,
"got cost %d\n", cost);
1064 ok(
hinst, sz == 4,
"got size %lu\n", sz);
1073 ok(
hinst, sz == 4,
"got size %lu\n", sz);
1081 ok(
hinst, sz == 2,
"got size %lu\n", sz);
1088 ok(
hinst, sz == 2,
"got size %lu\n", sz);
1095 ok(
hinst, sz == 2,
"got size %lu\n", sz);
1102 ok(
hinst, sz == 2,
"got size %lu\n", sz);
1109 ok(
hinst, sz == 2,
"got size %lu\n", sz);
1122 ok(
hinst, db,
"MsiGetActiveDatabase failed\n");
1152 sprintf(package_name,
"#%lu", db);
1168 ok(
hinst, db,
"MsiGetActiveDatabase failed\n");
1179 ok(
hinst, sz == 0,
"got size %lu\n", sz);
1187 ok(
hinst, sz == 0,
"got size %lu\n", sz);
1194 ok(
hinst, sz == 0,
"got size %lu\n", sz);
1201 ok(
hinst, sz == 0,
"got size %lu\n", sz);
1214 ok(
hinst, sz == 1,
"got size %lu\n", sz);
1231 ok(
hinst, sz == 1,
"got size %lu\n", sz);
1248 ok(
hinst, sz == 0,
"got size %lu\n", sz);
1255 ok(
hinst, sz == 0,
"got size %lu\n", sz);
1273 if (unk) IUnknown_Release(unk);
1301 sscanf(prop,
"%u", &retval);
1342 ok(
hinst, prop[0],
"CustomActionData was empty\n");
1350 ok(
hinst, prop[0],
"got %s\n", prop);
1355 ok(
hinst, prop[0],
"got %s\n", prop);
1361 ok(
hinst, !prop[0],
"got %s\n", prop);
1469 SC_HANDLE manager, service;
1480 SC_HANDLE manager, service;
1483 ok(
hinst, !service,
"service present\n");
1491 SC_HANDLE manager, service;
1502 SC_HANDLE manager, service;
1505 ok(
hinst, !service,
"service present\n");
1513 SC_HANDLE manager, service;
1530 SC_HANDLE manager, service;
1565 int gotdriver = 0, gotdriver2 = 0;
1576 if (!
strcmp(
p,
"ODBC test driver"))
1578 if (!
strcmp(
p,
"ODBC test driver2"))
1581 ok(
hinst, gotdriver,
"driver absent\n");
1582 ok(
hinst, gotdriver2,
"driver 2 absent\n");
1588 int gotdriver = 0, gotdriver2 = 0;
1599 if (!
strcmp(
p,
"ODBC test driver"))
1601 if (!
strcmp(
p,
"ODBC test driver2"))
1604 ok(
hinst, !gotdriver,
"driver present\n");
1605 ok(
hinst, !gotdriver2,
"driver 2 present\n");
1642static const char path_dotnet[] =
"Software\\Microsoft\\Installer\\Assemblies\\Global";
1643static const char name_dotnet[] =
"Wine.Dotnet.Assembly,processorArchitecture=\"MSIL\","
1644 "publicKeyToken=\"abcdef0123456789\",version=\"1.0.0.0\",culture=\"neutral\"";
1674static const char ppc_key[] =
"Software\\Microsoft\\Windows\\CurrentVersion\\"
1675 "Installer\\UserData\\S-1-5-18\\Components\\CBABC2FDCCB35E749A8944D8C1C098B5";
1705static const char pub_key[] =
"Software\\Microsoft\\Installer\\Components\\0CBCFA296AC907244845745CEEB2F8AA";
1730static const char pf_classkey[] =
"Installer\\Features\\84A88FD7F6998CE40A22FB59F6B9C2BB";
1731static const char pf_userkey[] =
"Software\\Microsoft\\Windows\\CurrentVersion\\"
1732 "Installer\\UserData\\S-1-5-18\\Products\\84A88FD7F6998CE40A22FB59F6B9C2BB\\Features";
1768static const char pp_prodkey[] =
"Installer\\Products\\84A88FD7F6998CE40A22FB59F6B9C2BB";
1865static const char font_key[] =
"Software\\Microsoft\\Windows NT\\CurrentVersion\\Fonts";
1916static const char rp_key[] =
"Software\\Microsoft\\Windows\\CurrentVersion\\"
1917 "Uninstall\\{7DF88A48-996F-4EC8-A022-BF956F9B2CBB}";
1989static const CHAR ru_key[] =
"Software\\Microsoft\\Windows\\CurrentVersion\\Installer"
1990 "\\UserData\\S-1-5-18\\Products\\84A88FD7F6998CE40A22FB59F6B9C2BB\\InstallProperties";
2017 {0xeac5166a, 0x9734, 0x4d91, {0x87,0x8f, 0x1d,0xd0,0x23,0x04,0xc6,0x6c}};
2026 ITypeLib_Release(tlb);
char * strcat(char *DstString, const char *SrcString)
int strcmp(const char *String1, const char *String2)
int memcmp(void *Buffer1, void *Buffer2, ACPI_SIZE Count)
ACPI_SIZE strlen(const char *String)
char * strcpy(char *DstString, const char *SrcString)
static previewinfo preview
#define RegCloseKey(hKey)
static const CHAR suminfo[]
static void test_view_get_error(void)
static LPCWSTR LPCWSTR LPCWSTR env
LONG WINAPI RegOpenKeyExA(_In_ HKEY hKey, _In_ LPCSTR lpSubKey, _In_ DWORD ulOptions, _In_ REGSAM samDesired, _Out_ PHKEY phkResult)
LONG WINAPI RegOpenKeyA(HKEY hKey, LPCSTR lpSubKey, PHKEY phkResult)
LONG WINAPI RegQueryValueExA(_In_ HKEY hkeyorg, _In_ LPCSTR name, _In_ LPDWORD reserved, _Out_opt_ LPDWORD type, _Out_opt_ LPBYTE data, _Inout_opt_ LPDWORD count)
static INT do_loop(const PropSheetInfo *psInfo)
#define ERROR_INVALID_PARAMETER
#define INVALID_HANDLE_VALUE
#define CreateFileA(a, b, c, d, e, f, g)
#define ERROR_NO_MORE_ITEMS
#define ERROR_INVALID_HANDLE
#define GetEnvironmentVariableA(x, y, z)
BOOL WINAPI DECLSPEC_HOTPATCH SetEnvironmentVariableA(IN LPCSTR lpName, IN LPCSTR lpValue)
DWORD WINAPI GetFileAttributesA(LPCSTR lpFileName)
BOOL WINAPI WriteFile(IN HANDLE hFile, IN LPCVOID lpBuffer, IN DWORD nNumberOfBytesToWrite OPTIONAL, OUT LPDWORD lpNumberOfBytesWritten, IN LPOVERLAPPED lpOverlapped OPTIONAL)
DWORD WINAPI GetCurrentDirectoryA(IN DWORD nBufferLength, OUT LPSTR lpBuffer)
VOID WINAPI GetSystemTimeAsFileTime(OUT PFILETIME lpFileTime)
INT WINAPI GetPrivateProfileStringA(LPCSTR section, LPCSTR entry, LPCSTR def_val, LPSTR buffer, UINT len, LPCSTR filename)
int WINAPI lstrcmpW(LPCWSTR str1, LPCWSTR str2)
int WINAPI lstrcmpA(LPCSTR str1, LPCSTR str2)
MSIDBSTATE WINAPI MsiGetDatabaseState(MSIHANDLE handle)
UINT WINAPI MsiDatabaseImportA(MSIHANDLE handle, const char *szFolder, const char *szFilename)
UINT WINAPI MsiDatabaseMergeA(MSIHANDLE hDatabase, MSIHANDLE hDatabaseMerge, const char *szTableName)
UINT WINAPI MsiDatabaseExportA(MSIHANDLE handle, const char *szTable, const char *szFolder, const char *szFilename)
UINT WINAPI MsiEnableUIPreview(MSIHANDLE hdb, MSIHANDLE *phPreview)
UINT WINAPI MsiCloseHandle(MSIHANDLE handle)
UINT WINAPI MsiGetSourcePathA(MSIHANDLE hinst, const char *folder, char *buf, DWORD *sz)
UINT WINAPI MsiGetComponentStateA(MSIHANDLE hInstall, LPCSTR szComponent, INSTALLSTATE *piInstalled, INSTALLSTATE *piAction)
LANGID WINAPI MsiGetLanguage(MSIHANDLE hInstall)
UINT WINAPI MsiSetInstallLevel(MSIHANDLE hInstall, int iInstallLevel)
UINT WINAPI MsiGetTargetPathW(MSIHANDLE hinst, const WCHAR *folder, WCHAR *buf, DWORD *sz)
UINT WINAPI MsiDoActionA(MSIHANDLE hInstall, LPCSTR szAction)
UINT WINAPI MsiGetTargetPathA(MSIHANDLE hinst, const char *folder, char *buf, DWORD *sz)
UINT WINAPI MsiSequenceA(MSIHANDLE hInstall, LPCSTR szTable, INT iSequenceMode)
UINT WINAPI MsiGetSourcePathW(MSIHANDLE hinst, const WCHAR *folder, WCHAR *buf, DWORD *sz)
UINT WINAPI MsiSetFeatureStateA(MSIHANDLE hInstall, LPCSTR szFeature, INSTALLSTATE iState)
UINT WINAPI MsiSetTargetPathA(MSIHANDLE hInstall, LPCSTR szFolder, LPCSTR szFolderPath)
UINT WINAPI MsiSetMode(MSIHANDLE hInstall, MSIRUNMODE iRunMode, BOOL fState)
UINT WINAPI MsiGetFeatureCostA(MSIHANDLE hInstall, LPCSTR szFeature, MSICOSTTREE iCostTree, INSTALLSTATE iState, LPINT piCost)
UINT WINAPI MsiGetFeatureStateA(MSIHANDLE hInstall, LPCSTR szFeature, INSTALLSTATE *piInstalled, INSTALLSTATE *piAction)
UINT WINAPI MsiSetComponentStateA(MSIHANDLE hInstall, LPCSTR szComponent, INSTALLSTATE iState)
BOOL WINAPI MsiGetMode(MSIHANDLE hInstall, MSIRUNMODE iRunMode)
UINT WINAPI MsiEnumComponentCostsW(MSIHANDLE handle, const WCHAR *component, DWORD index, INSTALLSTATE state, WCHAR *drive, DWORD *buflen, int *cost, int *temp)
UINT WINAPI MsiEnumComponentCostsA(MSIHANDLE handle, const char *component, DWORD index, INSTALLSTATE state, char *drive, DWORD *buflen, int *cost, int *temp)
UINT WINAPI MsiOpenPackageA(LPCSTR szPackage, MSIHANDLE *phPackage)
UINT WINAPI MsiSetPropertyA(MSIHANDLE hInstall, LPCSTR szName, LPCSTR szValue)
MSIHANDLE WINAPI MsiGetActiveDatabase(MSIHANDLE hInstall)
UINT WINAPI MsiGetPropertyW(MSIHANDLE hinst, const WCHAR *name, WCHAR *buf, DWORD *sz)
UINT WINAPI MsiGetPropertyA(MSIHANDLE hinst, const char *name, char *buf, DWORD *sz)
INT WINAPI MsiProcessMessage(MSIHANDLE hInstall, INSTALLMESSAGE eMessageType, MSIHANDLE hRecord)
int WINAPI MsiRecordGetInteger(MSIHANDLE handle, UINT iField)
UINT WINAPI MsiRecordGetStringA(MSIHANDLE handle, UINT iField, char *szValue, DWORD *pcchValue)
MSIHANDLE WINAPI MsiCreateRecord(UINT cParams)
UINT WINAPI MsiRecordSetInteger(MSIHANDLE handle, UINT iField, int iVal)
UINT WINAPI MsiRecordSetStringA(MSIHANDLE handle, UINT iField, const char *szValue)
UINT WINAPI MsiRecordReadStream(MSIHANDLE handle, UINT iField, char *buf, DWORD *sz)
UINT WINAPI MsiRecordGetFieldCount(MSIHANDLE handle)
UINT WINAPI MsiSummaryInfoSetPropertyA(MSIHANDLE handle, UINT uiProperty, UINT uiDataType, INT iValue, FILETIME *pftValue, const char *szValue)
UINT WINAPI MsiSummaryInfoGetPropertyA(MSIHANDLE handle, UINT uiProperty, UINT *puiDataType, INT *piValue, FILETIME *pftValue, char *szValueBuf, DWORD *pcchValueBuf)
UINT WINAPI MsiGetSummaryInformationA(MSIHANDLE hDatabase, const char *szDatabase, UINT uiUpdateCount, MSIHANDLE *pHandle)
UINT WINAPI MsiCreateTransformSummaryInfoA(MSIHANDLE db, MSIHANDLE db_ref, const char *transform, int error, int validation)
UINT WINAPI MsiSummaryInfoGetPropertyCount(MSIHANDLE hSummaryInfo, UINT *pCount)
UINT WINAPI MsiSummaryInfoSetPropertyW(MSIHANDLE handle, UINT uiProperty, UINT uiDataType, INT iValue, FILETIME *pftValue, const WCHAR *szValue)
HRESULT WINAPI DECLSPEC_HOTPATCH CoCreateInstance(REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext, REFIID iid, LPVOID *ppv)
HRESULT WINAPI DECLSPEC_HOTPATCH CoInitializeEx(LPVOID lpReserved, DWORD dwCoInit)
void WINAPI DECLSPEC_HOTPATCH CoUninitialize(void)
HRESULT WINAPI LoadRegTypeLib(REFGUID rguid, WORD wVerMajor, WORD wVerMinor, LCID lcid, ITypeLib **ppTLib)
HRESULT WINAPI SHGetFolderPathA(HWND hwndOwner, int nFolder, HANDLE hToken, DWORD dwFlags, LPSTR pszPath)
GLuint GLuint GLsizei GLenum type
GLuint GLuint GLsizei count
GLdouble GLdouble GLdouble r
GLenum GLuint GLenum GLsizei const GLchar * buf
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
_Check_return_ _CRTIMP int __cdecl sscanf(_In_z_ const char *_Src, _In_z_ _Scanf_format_string_ const char *_Format,...)
int __cdecl vsprintf(char *_Dest, const char *_Format, va_list _Args)
#define ERROR_FILE_NOT_FOUND
#define sprintf(buf, format,...)
static void test_retval(void)
static PORT_INFO_2W * file_present
UINT WINAPI rmi_absent(MSIHANDLE hinst)
UINT WINAPI rci_absent(MSIHANDLE hinst)
UINT WINAPI process2(MSIHANDLE hinst)
UINT WINAPI pp_present(MSIHANDLE hinst)
UINT WINAPI mov_absent(MSIHANDLE hinst)
static void winetest_end_todo(void)
static void winetest_start_todo(int is_todo)
static void append_file(MSIHANDLE hinst, const char *filename, const char *text)
UINT WINAPI pp_absent(MSIHANDLE hinst)
UINT WINAPI sis_absent(MSIHANDLE hinst)
UINT WINAPI sr_absent(MSIHANDLE hinst)
UINT WINAPI sss_stopped(MSIHANDLE hinst)
UINT WINAPI da_deferred(MSIHANDLE hinst)
UINT WINAPI rd_absent(MSIHANDLE hinst)
UINT WINAPI rd_present(MSIHANDLE hinst)
static const char ppc_key[]
UINT WINAPI rmi_present(MSIHANDLE hinst)
static const GUID LIBID_register_test
UINT WINAPI odbc_present(MSIHANDLE hinst)
UINT WINAPI ru_absent(MSIHANDLE hinst)
UINT WINAPI wrv_present(MSIHANDLE hinst)
UINT WINAPI cf_present(MSIHANDLE hinst)
static BOOL pf_exists(const char *file)
UINT WINAPI rei_present(MSIHANDLE hinst)
UINT WINAPI sds_present(MSIHANDLE hinst)
UINT WINAPI ppc_absent(MSIHANDLE hinst)
UINT WINAPI file_absent(MSIHANDLE hinst)
UINT WINAPI async2(MSIHANDLE hinst)
static void test_invalid_functions(MSIHANDLE hinst)
static const CHAR ru_key[]
UINT WINAPI nested(MSIHANDLE hinst)
static const char pf_classkey[]
static void check_reg_str(MSIHANDLE hinst, HKEY key, const char *name, const char *expect)
UINT WINAPI sds_absent(MSIHANDLE hinst)
UINT WINAPI pub_present(MSIHANDLE hinst)
static void test_targetpath(MSIHANDLE hinst)
UINT WINAPI pa_absent(MSIHANDLE hinst)
UINT WINAPI crs_absent(MSIHANDLE hinst)
UINT WINAPI crs_present(MSIHANDLE hinst)
static void test_format_record(MSIHANDLE hinst)
UINT WINAPI pf_absent(MSIHANDLE hinst)
UINT WINAPI rpi_present(MSIHANDLE hinst)
UINT WINAPI rp_present(MSIHANDLE hinst)
static const char font_key[]
static void test_db(MSIHANDLE hinst)
UINT WINAPI rp_absent(MSIHANDLE hinst)
UINT WINAPI async1(MSIHANDLE hinst)
UINT WINAPI tl_present(MSIHANDLE hinst)
UINT WINAPI env_absent(MSIHANDLE hinst)
UINT WINAPI ini_present(MSIHANDLE hinst)
UINT WINAPI wrv_absent(MSIHANDLE hinst)
UINT WINAPI sis_present(MSIHANDLE hinst)
static void check_prop(MSIHANDLE hinst, const char *prop, const char *expect)
UINT WINAPI pa_present(MSIHANDLE hinst)
UINT WINAPI ru_present(MSIHANDLE hinst)
static int winetest_loop_todo(void)
UINT WINAPI env_present(MSIHANDLE hinst)
#define __WINE_PRINTF_ATTR(fmt, args)
UINT WINAPI ppc_present(MSIHANDLE hinst)
UINT WINAPI ini_absent(MSIHANDLE hinst)
UINT WINAPI sr_present(MSIHANDLE hinst)
UINT WINAPI pf_present(MSIHANDLE hinst)
UINT WINAPI main_test(MSIHANDLE hinst)
UINT WINAPI font_present(MSIHANDLE hinst)
UINT WINAPI font_absent(MSIHANDLE hinst)
UINT WINAPI cf_absent(MSIHANDLE hinst)
UINT WINAPI rci_present(MSIHANDLE hinst)
UINT WINAPI rei_absent(MSIHANDLE hinst)
static const char name_dotnet[]
UINT WINAPI da_immediate(MSIHANDLE hinst)
static const char pf_userkey[]
UINT WINAPI pub_absent(MSIHANDLE hinst)
UINT WINAPI process1(MSIHANDLE hinst)
static const char pub_key[]
UINT WINAPI rpi_absent(MSIHANDLE hinst)
static const char rp_key[]
UINT WINAPI mov_present(MSIHANDLE hinst)
static const char pp_prodkey[]
static const char * dbgstr_w(WCHAR *str)
UINT WINAPI sss_started(MSIHANDLE hinst)
UINT WINAPI odbc_absent(MSIHANDLE hinst)
static const char path_dotnet[]
#define ok(hinst, condition,...)
static void test_feature_states(MSIHANDLE hinst)
UINT WINAPI tl_absent(MSIHANDLE hinst)
static void test_doaction(void)
static void test_props(void)
static void test_costs(void)
static __ms_va_list valist
@ INSTALLSTATE_ADVERTISED
UINT WINAPI MsiViewModify(MSIHANDLE hView, MSIMODIFY eModifyMode, MSIHANDLE hRecord)
UINT WINAPI MsiViewClose(MSIHANDLE hView)
UINT WINAPI MsiDatabaseApplyTransformA(MSIHANDLE hdb, const char *transform, int error_cond)
UINT WINAPI MsiViewExecute(MSIHANDLE hView, MSIHANDLE hRec)
UINT WINAPI MsiDatabaseGenerateTransformA(MSIHANDLE hdb, MSIHANDLE hdbref, const char *szTransformFile, int iReserved1, int iReserved2)
UINT WINAPI MsiDatabaseGetPrimaryKeysA(MSIHANDLE hdb, const char *table, MSIHANDLE *phRec)
UINT WINAPI MsiDatabaseCommit(MSIHANDLE hdb)
MSIDBERROR WINAPI MsiViewGetErrorA(MSIHANDLE handle, char *buffer, DWORD *buflen)
UINT WINAPI MsiViewGetColumnInfo(MSIHANDLE hView, MSICOLINFO info, MSIHANDLE *hRec)
UINT WINAPI MsiDatabaseOpenViewA(MSIHANDLE hdb, const char *szQuery, MSIHANDLE *phView)
UINT WINAPI MsiViewFetch(MSIHANDLE hView, MSIHANDLE *record)
MSICONDITION WINAPI MsiDatabaseIsTablePersistentA(MSIHANDLE hDatabase, const char *szTableName)
@ MSIDBERROR_DUPLICATEKEY
@ MSIDBERROR_FUNCTIONERROR
MSICONDITION WINAPI MsiEvaluateConditionA(MSIHANDLE, LPCSTR)
const struct _GUID CLSID_XMLDocument
@ COINIT_APARTMENTTHREADED
BOOL WINAPI QueryServiceStatus(SC_HANDLE hService, LPSERVICE_STATUS lpServiceStatus)
SC_HANDLE WINAPI OpenServiceA(SC_HANDLE hSCManager, LPCSTR lpServiceName, DWORD dwDesiredAccess)
SC_HANDLE WINAPI OpenSCManagerA(LPCSTR lpMachineName, LPCSTR lpDatabaseName, DWORD dwDesiredAccess)
BOOL WINAPI CloseServiceHandle(SC_HANDLE hSCObject)
#define CSIDL_PROGRAM_FILES
#define CSIDL_PROGRAM_FILESX86
DWORD WINAPI WaitForSingleObject(IN HANDLE hHandle, IN DWORD dwMilliseconds)
HANDLE WINAPI DECLSPEC_HOTPATCH CreateEventA(IN LPSECURITY_ATTRIBUTES lpEventAttributes OPTIONAL, IN BOOL bManualReset, IN BOOL bInitialState, IN LPCSTR lpName OPTIONAL)
BOOL WINAPI DECLSPEC_HOTPATCH SetEvent(IN HANDLE hEvent)
#define INVALID_FILE_ATTRIBUTES
static const WCHAR lang[]
BOOL WINAPI SQLGetInstalledDrivers(char *buf, WORD size, WORD *sizeout)
DWORD WINAPI GetLastError(void)
#define ERROR_UNKNOWN_COMPONENT
#define ERROR_UNKNOWN_FEATURE
#define RPC_X_NULL_REF_POINTER
#define ERROR_INSTALL_PACKAGE_OPEN_FAILED
#define ERROR_BAD_QUERY_SYNTAX
#define ERROR_FUNCTION_FAILED
#define TYPE_E_LIBNOTREGISTERED
#define ERROR_INVALID_DATA
#define HKEY_LOCAL_MACHINE
#define HKEY_CURRENT_USER
#define HKEY_CLASSES_ROOT
#define SC_MANAGER_ALL_ACCESS