75#define ok(hinst, condition, ...) ok_(hinst, todo_level, __FILE__, __LINE__, condition, __VA_ARGS__)
76#define todo_wine_if(is_todo) for (winetest_start_todo(is_todo); \
77 winetest_loop_todo(); \
79#define todo_wine todo_wine_if(1)
85 if (!
str)
return "(null)";
90 while ((*
p++ = *
str++));
102 ok(
hinst, !
r,
"'%s': got %u\n", prop,
r);
127 ok(
hinst, sz == 0,
"got size %u\n", sz);
134 ok(
hinst, sz == 0,
"got size %u\n", sz);
141 ok(
hinst, sz == 0,
"got size %u\n", sz);
189 ok(
hinst, sz == 6,
"got size %u\n", sz);
196 ok(
hinst, sz == 6,
"got size %u\n", sz);
203 ok(
hinst, sz == 6,
"got size %u\n", sz);
210 ok(
hinst, sz == 6,
"got size %u\n", sz);
217 ok(
hinst, sz == 3,
"got size %u\n", sz);
228 ok(
hinst, sz == 3,
"got size %u\n", sz);
235 ok(
hinst, sz == 3,
"got size %u\n", sz);
242 ok(
hinst, sz == 3,
"got size %u\n", sz);
249 ok(
hinst, sz == 3,
"got size %u\n", sz);
256 ok(
hinst, sz == 3,
"got size %u\n", sz);
265 ok(
hinst, sz == 6,
"got size %u\n", sz);
271 ok(
hinst, sz == 3,
"got size %u\n", sz);
289 ok(
hinst, hdb,
"MsiGetActiveDatabase failed\n");
314 ok(
hinst, hdb2,
"MsiGetActiveDatabase failed\n");
315 ok(
hinst, hdb2 != hdb,
"db handles should be different\n");
406 ok(
hinst, !rec2,
"got %u\n", rec2);
434 ok(
hinst, !rec2,
"got %u\n", rec2);
481 for (
i = 0;
i < 20;
i++)
487 int_value = 0xdeadbeef;
497 ok(
hinst, int_value == 100,
"%u: got %u\n",
i, int_value);
499 ok(
hinst, int_value == 0,
"%u: got %u\n",
i, int_value);
502 ok(
hinst, sz == 5,
"%u: got %u\n",
i, sz);
507 ok(
hinst, sz == 76,
"%u: got %u\n",
i, sz);
519 for (
i = 0;
i < 20;
i++)
585 ok(
hinst, sz == 6,
"got size %u\n", sz);
592 ok(
hinst, sz == 6,
"got size %u\n", sz);
599 ok(
hinst, sz == 6,
"got size %u\n", sz);
606 ok(
hinst, sz == 6,
"got size %u\n", sz);
613 ok(
hinst, sz == 3,
"got size %u\n", sz);
618 ok(
hinst, sz == 3,
"got size %u\n", sz);
625 ok(
hinst, sz == 3,
"got size %u\n", sz);
632 ok(
hinst, sz == 3,
"got size %u\n", sz);
639 ok(
hinst, sz == 3,
"got size %u\n", sz);
646 ok(
hinst, sz == 3,
"got size %u\n", sz);
684 ok(
hinst, sz == srcsz * 2,
"got size %u\n", sz);
691 ok(
hinst, sz == srcsz * 2,
"got size %u\n", sz);
698 ok(
hinst, sz == srcsz * 2,
"got size %u\n", sz);
705 ok(
hinst, sz == srcsz * 2,
"got size %u\n", sz);
712 ok(
hinst, sz == srcsz,
"got size %u\n", sz);
717 ok(
hinst, sz == srcsz,
"got size %u\n", sz);
724 ok(
hinst, sz == srcsz,
"got size %u\n", sz);
731 ok(
hinst, sz == srcsz,
"got size %u\n", sz);
738 ok(
hinst, sz == srcsz,
"got size %u\n", sz);
745 ok(
hinst, sz == srcsz,
"got size %u\n", sz);
889 ok(
hinst, sz == 14,
"got size %u\n", sz);
896 ok(
hinst, sz == 14,
"got size %u\n", sz);
903 ok(
hinst, sz == 14,
"got size %u\n", sz);
910 ok(
hinst, sz == 14,
"got size %u\n", sz);
917 ok(
hinst, sz == 7,
"got size %u\n", sz);
928 ok(
hinst, sz == 7,
"got size %u\n", sz);
935 ok(
hinst, sz == 7,
"got size %u\n", sz);
942 ok(
hinst, sz == 7,
"got size %u\n", sz);
949 ok(
hinst, sz == 7,
"got size %u\n", sz);
956 ok(
hinst, sz == 7,
"got size %u\n", sz);
965 ok(
hinst, sz == 6,
"got size %u\n", sz);
982 ok(
hinst, !cost,
"got %d\n", cost);
991 ok(
hinst, cost == 8,
"got %d\n", cost);
993 sz = cost =
temp = 0xdead;
996 ok(
hinst, sz == 0xdead,
"got size %d\n", sz);
997 ok(
hinst, cost == 0xdead,
"got cost %d\n", cost);
1000 cost =
temp = 0xdead;
1003 ok(
hinst, cost == 0xdead,
"got cost %d\n", cost);
1009 ok(
hinst, sz == 0xdead,
"got size %d\n", sz);
1015 ok(
hinst, sz == 0xdead,
"got size %d\n", sz);
1016 ok(
hinst, cost == 0xdead,
"got cost %d\n", cost);
1018 cost =
temp = 0xdead;
1022 ok(
hinst, sz == 2,
"got size %u\n", sz);
1024 ok(
hinst, !cost,
"got cost %d\n", cost);
1027 cost =
temp = 0xdead;
1031 ok(
hinst, sz == 2,
"got size %u\n", sz);
1033 ok(
hinst, cost == 8,
"got cost %d\n", cost);
1037 cost =
temp = 0xdead;
1044 ok(
hinst, sz == 4,
"got size %u\n", sz);
1045 ok(
hinst, cost == 8,
"got cost %d\n", cost);
1054 ok(
hinst, sz == 4,
"got size %u\n", sz);
1063 ok(
hinst, sz == 4,
"got size %u\n", sz);
1071 ok(
hinst, sz == 2,
"got size %u\n", sz);
1078 ok(
hinst, sz == 2,
"got size %u\n", sz);
1085 ok(
hinst, sz == 2,
"got size %u\n", sz);
1092 ok(
hinst, sz == 2,
"got size %u\n", sz);
1099 ok(
hinst, sz == 2,
"got size %u\n", sz);
1112 ok(
hinst, db,
"MsiGetActiveDatabase failed\n");
1144 sprintf(package_name,
"#%lu", db);
1160 ok(
hinst, db,
"MsiGetActiveDatabase failed\n");
1171 ok(
hinst, sz == 0,
"got size %u\n", sz);
1179 ok(
hinst, sz == 0,
"got size %u\n", sz);
1186 ok(
hinst, sz == 0,
"got size %u\n", sz);
1193 ok(
hinst, sz == 0,
"got size %u\n", sz);
1206 ok(
hinst, sz == 1,
"got size %u\n", sz);
1223 ok(
hinst, sz == 1,
"got size %u\n", sz);
1240 ok(
hinst, sz == 0,
"got size %u\n", sz);
1247 ok(
hinst, sz == 0,
"got size %u\n", sz);
1265 if (unk) IUnknown_Release(unk);
1293 sscanf(prop,
"%u", &retval);
1334 ok(
hinst, prop[0],
"CustomActionData was empty\n");
1342 ok(
hinst, prop[0],
"got %s\n", prop);
1347 ok(
hinst, prop[0],
"got %s\n", prop);
1353 ok(
hinst, !prop[0],
"got %s\n", prop);
1461 SC_HANDLE manager, service;
1472 SC_HANDLE manager, service;
1475 ok(
hinst, !service,
"service present\n");
1483 SC_HANDLE manager, service;
1494 SC_HANDLE manager, service;
1497 ok(
hinst, !service,
"service present\n");
1505 SC_HANDLE manager, service;
1522 SC_HANDLE manager, service;
1557 int gotdriver = 0, gotdriver2 = 0;
1568 if (!
strcmp(
p,
"ODBC test driver"))
1570 if (!
strcmp(
p,
"ODBC test driver2"))
1573 ok(
hinst, gotdriver,
"driver absent\n");
1574 ok(
hinst, gotdriver2,
"driver 2 absent\n");
1580 int gotdriver = 0, gotdriver2 = 0;
1591 if (!
strcmp(
p,
"ODBC test driver"))
1593 if (!
strcmp(
p,
"ODBC test driver2"))
1596 ok(
hinst, !gotdriver,
"driver present\n");
1597 ok(
hinst, !gotdriver2,
"driver 2 present\n");
1634static const char path_dotnet[] =
"Software\\Microsoft\\Installer\\Assemblies\\Global";
1635static const char name_dotnet[] =
"Wine.Dotnet.Assembly,processorArchitecture=\"MSIL\","
1636 "publicKeyToken=\"abcdef0123456789\",version=\"1.0.0.0\",culture=\"neutral\"";
1666static const char ppc_key[] =
"Software\\Microsoft\\Windows\\CurrentVersion\\"
1667 "Installer\\UserData\\S-1-5-18\\Components\\CBABC2FDCCB35E749A8944D8C1C098B5";
1697static const char pub_key[] =
"Software\\Microsoft\\Installer\\Components\\0CBCFA296AC907244845745CEEB2F8AA";
1722static const char pf_classkey[] =
"Installer\\Features\\84A88FD7F6998CE40A22FB59F6B9C2BB";
1723static const char pf_userkey[] =
"Software\\Microsoft\\Windows\\CurrentVersion\\"
1724 "Installer\\UserData\\S-1-5-18\\Products\\84A88FD7F6998CE40A22FB59F6B9C2BB\\Features";
1760static const char pp_prodkey[] =
"Installer\\Products\\84A88FD7F6998CE40A22FB59F6B9C2BB";
1857static const char font_key[] =
"Software\\Microsoft\\Windows NT\\CurrentVersion\\Fonts";
1908static const char rp_key[] =
"Software\\Microsoft\\Windows\\CurrentVersion\\"
1909 "Uninstall\\{7DF88A48-996F-4EC8-A022-BF956F9B2CBB}";
1981static const CHAR ru_key[] =
"Software\\Microsoft\\Windows\\CurrentVersion\\Installer"
1982 "\\UserData\\S-1-5-18\\Products\\84A88FD7F6998CE40A22FB59F6B9C2BB\\InstallProperties";
2009 {0xeac5166a, 0x9734, 0x4d91, {0x87,0x8f, 0x1d,0xd0,0x23,0x04,0xc6,0x6c}};
2018 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)
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_INSTALL_PACKAGE_INVALID
#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