24#define WIN32_NO_STATUS
311 IStorage_Release( cab->
storage );
345 if( package->dialog )
351 if (package->rpc_server_started)
355 if (package->custom_server_32_process)
356 custom_stop_server(package->custom_server_32_process, package->custom_server_32_pipe);
357 if (package->custom_server_64_process)
358 custom_stop_server(package->custom_server_64_process, package->custom_server_64_pipe);
360 if (package->delete_on_close)
DeleteFileW( package->localfile );
361 free( package->localfile );
371 L"`Value` CHAR(98) NOT NULL TEMPORARY PRIMARY KEY `_Property`) HOLD", &
view);
400 MSIQUERY *view_insert, *view_update;
407 rc =
MSI_DatabaseOpenViewW( db,
L"INSERT INTO `_Property` (`_Property`,`Value`) VALUES (?,?)", &view_insert );
421 TRACE(
"insert failed, trying update\n");
423 rc =
MSI_DatabaseOpenViewW( db,
L"UPDATE `_Property` SET `Value` = ? WHERE `_Property` = ?", &view_update );
426 WARN(
"open view failed %u\n", rc);
436 WARN(
"update failed %u\n", rc);
621 if (!val_len || !verstr)
730 msex.dwLength =
sizeof(msex);
881 ERR(
"Failed to set the UserSID property\n");
915 free( computername );
924 package = alloc_msiobject( MSIHANDLETYPE_PACKAGE, sizeof (MSIPACKAGE),
972 TRACE(
"resetting ALLUSERS property from 2 to 1\n");
990 package = alloc_package();
1059 WARN(
"failed to download %s to cache file\n",
debugstr_w(szUrl));
1077 for (
i = 0;
i < 0x10000;
i++)
1321 WARN(
"failed to load summary info %u\n",
r);
1332 WCHAR *product_code;
1338 free( product_code );
1348 else if (package[0] ==
'#')
1371#define HID_DOS_PATHS 0x1
1372#define SDB_DATABASE_MAIN_SHIM 0x80030000
1374#define APPHELP_VALID_RESULT 0x10000
1375#define APPHELP_RESULT_FOUND 0x40000
1378AppHelpCheckPackage(
LPCWSTR szPackage)
1384 ULONG QueryResultSize = 0;
1388 Handle,
NULL,
NULL, szPackage,
NULL,
ExeType, &
Reason, &QueryResult, &QueryResultSize,
NULL,
1400 ERR(
"ReactOS HACK(CORE-13283): Used SE_DynamicShim %d!\n", bShim);
1406 ERR(
"Unable to open SDB_DATABASE_MAIN_SHIM\n");
1428 WCHAR *info_template, *productname, *product_code;
1436 if( szPackage[0] ==
'#' )
1455 AppHelpCheckPackage(
file);
1468 DWORD localfile_attr;
1485 delete_on_close =
TRUE;
1497 WARN(
"unable to update cached package (%u)\n",
r);
1509 free( product_version );
1513 if (product_version)
1516 if (!product_version != !cache_version ||
1517 (product_version &&
wcscmp(product_version, cache_version)))
1520 free( product_version );
1521 free( cache_version );
1524 free( product_version );
1525 free( cache_version );
1528 package = MSI_CreatePackage( db );
1540 WARN(
"failed to load summary info\n");
1549 WARN(
"failed to parse summary info %u\n",
r);
1566 TRACE(
"product already registered\n");
1569 free( product_code );
1584 ERR(
"registered patch failed to apply %u\n",
r);
1620 free(info_template);
1635 *pPackage = package;
1646 if( !szPackage || !phPackage )
1651 FIXME(
"Should create an empty database and package\n");
1707 TRACE(
"%lu\n", hInstall );
1709 package = msihandle2msiinfo( hInstall, MSIHANDLETYPE_PACKAGE);
1719 handle = remote_GetActiveDatabase(remote);
1739 switch (eMessageType & 0xff000000)
1775 if (!uirow)
return -1;
1787 if (!uirow)
return -1;
1795 if (!uirow)
return -1;
1818 FIXME(
"internal UI not implemented for message 0x%08x (UI level = %x)\n", eMessageType, package->
ui_level);
1830 {2726,
L"DEBUG: Error [1]: Action not found: [2]"},
1860 else if (
error < 2000)
1879 DWORD log_type = 1 << (eMessageType >> 24);
1884 TRACE(
"%x\n", eMessageType);
1907 TRACE(
"calling UI handler %p(pvContext = %p, iMessageType = %#x, hRecord = %lu)\n",
1914 TRACE(
"calling UI handler %p(pvContext = %p, iMessageType = %#x, szMessage = %s)\n",
1920 TRACE(
"calling UI handler %p(pvContext = %p, iMessageType = %#x, szMessage = %s)\n",
1943 switch (eMessageType & 0xff000000)
1965 if (!template_rec &&
error >= 2000)
1985 if (!template_prefix) template_prefix =
wcsdup(
L"");
1992 free(template_prefix);
1999 free(template_prefix);
2004 lstrcpyW(
template, template_prefix);
2008 free(template_prefix);
2068 package = msihandle2msiinfo( hInstall, MSIHANDLETYPE_PACKAGE );
2109 if( szValue && !szwValue )
2164 lstrcpyW(
query,
L"INSERT INTO `_Property` (`_Property`,`Value`) VALUES (?,?)" );
2186 package = msihandle2msiinfo( hInstall, MSIHANDLETYPE_PACKAGE);
2196 ret = remote_SetProperty(remote,
szName, szValue);
2292 if (*pchValueBuf > 0)
2302 TRACE(
"returning %s for property %s\n",
debugstr_wn(szValueBuf, *pchValueBuf),
2360 package = msihandle2msiinfo(hinst, MSIHANDLETYPE_PACKAGE);
2428 package = msihandle2msiinfo(hinst, MSIHANDLETYPE_PACKAGE);
#define SDB_DATABASE_MAIN_SHIM
void WINAPI SdbReleaseDatabase(HSDB)
HSDB WINAPI SdbInitDatabase(DWORD, LPCWSTR)
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
static const WCHAR nameW[]
static void list_remove(struct list_entry *entry)
static void list_add_head(struct list_entry *head, struct list_entry *entry)
static void list_init(struct list_entry *head)
BOOLEAN NTAPI RtlFreeHeap(IN PVOID HeapHandle, IN ULONG Flags, IN PVOID HeapBase)
#define RegCloseKey(hKey)
BOOL WINAPI GetComputerNameW(LPWSTR lpBuffer, LPDWORD lpnSize)
#define ERROR_NOT_ENOUGH_MEMORY
#define ERROR_INSUFFICIENT_BUFFER
#define APPHELP_VALID_RESULT
BOOL WINAPI ApphelpCheckRunAppEx(_In_ HANDLE FileHandle, _In_opt_ PVOID Unk1, _In_opt_ PVOID Unk2, _In_opt_z_ PCWSTR ApplicationName, _In_opt_ PVOID Environment, _In_opt_ USHORT ExeType, _Inout_opt_ PULONG Reason, _Out_opt_ PVOID *SdbQueryAppCompatData, _Out_opt_ PULONG SdbQueryAppCompatDataSize, _Out_opt_ PVOID *SxsData, _Out_opt_ PULONG SxsDataSize, _Out_opt_ PULONG FusionFlags, _Out_opt_ PULONG64 SomeFlag1, _Out_opt_ PULONG SomeFlag2)
#define APPHELP_RESULT_FOUND
NTSTATUS NTAPI RtlGetVersion(IN OUT PRTL_OSVERSIONINFOW lpVersionInformation)
LONG WINAPI RegCreateKeyExW(_In_ HKEY hKey, _In_ LPCWSTR lpSubKey, _In_ DWORD Reserved, _In_opt_ LPWSTR lpClass, _In_ DWORD dwOptions, _In_ REGSAM samDesired, _In_opt_ LPSECURITY_ATTRIBUTES lpSecurityAttributes, _Out_ PHKEY phkResult, _Out_opt_ LPDWORD lpdwDisposition)
LONG WINAPI RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)
LONG WINAPI RegOpenKeyW(HKEY hKey, LPCWSTR lpSubKey, PHKEY phkResult)
LONG WINAPI RegQueryValueExW(_In_ HKEY hkeyorg, _In_ LPCWSTR name, _In_ LPDWORD reserved, _In_ LPDWORD type, _In_ LPBYTE data, _In_ LPDWORD count)
BOOL WINAPI LookupAccountNameW(LPCWSTR lpSystemName, LPCWSTR lpAccountName, PSID Sid, LPDWORD cbSid, LPWSTR ReferencedDomainName, LPDWORD cchReferencedDomainName, PSID_NAME_USE peUse)
BOOL WINAPI GetUserNameW(LPWSTR lpszName, LPDWORD lpSize)
BOOL WINAPI ConvertSidToStringSidW(PSID Sid, LPWSTR *StringSid)
static LONG WINAPI rpc_filter(EXCEPTION_POINTERS *eptr)
static const WCHAR empty[1]
static WCHAR * strdupAtoW(const char *str)
#define ERROR_INVALID_PARAMETER
#define INVALID_HANDLE_VALUE
#define GetCurrentProcess()
#define ERROR_INVALID_HANDLE
#define IMAGE_FILE_MACHINE_ARM64
#define FILE_ATTRIBUTE_NORMAL
#define WideCharToMultiByte
static const WCHAR *const ext[]
static const WCHAR version[]
BOOL WINAPI CopyFileW(IN LPCWSTR lpExistingFileName, IN LPCWSTR lpNewFileName, IN BOOL bFailIfExists)
BOOL WINAPI DeleteFileW(IN LPCWSTR lpFileName)
BOOL WINAPI CreateDirectoryW(IN LPCWSTR lpPathName, IN LPSECURITY_ATTRIBUTES lpSecurityAttributes)
BOOL WINAPI RemoveDirectoryW(IN LPCWSTR lpPathName)
DWORD WINAPI GetFileAttributesW(LPCWSTR lpFileName)
BOOL WINAPI SetFileAttributesW(LPCWSTR lpFileName, DWORD dwFileAttributes)
BOOL WINAPI WriteFile(_In_ HANDLE hFile, _In_reads_bytes_opt_(nNumberOfBytesToWrite) LPCVOID lpBuffer, _In_ DWORD nNumberOfBytesToWrite, _Out_opt_ LPDWORD lpNumberOfBytesWritten, _Inout_opt_ LPOVERLAPPED lpOverlapped)
DWORD WINAPI GetTempPathW(IN DWORD count, OUT LPWSTR path)
UINT WINAPI GetSystemWow64DirectoryW(OUT LPWSTR lpBuffer, IN UINT uSize)
UINT WINAPI GetSystemDirectoryW(OUT LPWSTR lpBuffer, IN UINT uSize)
DWORD WINAPI GetFullPathNameW(IN LPCWSTR lpFileName, IN DWORD nBufferLength, OUT LPWSTR lpBuffer, OUT LPWSTR *lpFilePart)
UINT WINAPI GetWindowsDirectoryW(OUT LPWSTR lpBuffer, IN UINT uSize)
VOID WINAPI GetNativeSystemInfo(IN LPSYSTEM_INFO lpSystemInfo)
LANGID WINAPI GetSystemDefaultLangID(void)
BOOL WINAPI IsValidLocale(LCID lcid, DWORD flags)
LANGID WINAPI GetUserDefaultLangID(void)
BOOL WINAPI UrlIsW(const WCHAR *url, URLIS Urlis)
BOOL WINAPI DECLSPEC_HOTPATCH IsWow64Process2(HANDLE process, USHORT *machine, USHORT *native_machine)
ULONG WINAPI DECLSPEC_HOTPATCH GetTickCount(void)
BOOL WINAPI GetFileVersionInfoW(LPCWSTR filename, DWORD handle, DWORD datasize, LPVOID data)
BOOL WINAPI VerQueryValueW(LPCVOID pBlock, LPCWSTR lpSubBlock, LPVOID *lplpBuffer, PUINT puLen)
DWORD WINAPI GetFileVersionInfoSizeW(LPCWSTR filename, LPDWORD handle)
UINT msi_set_context(MSIPACKAGE *package)
BOOL msi_is_global_assembly(MSICOMPONENT *comp)
UINT msi_parse_command_line(MSIPACKAGE *package, LPCWSTR szCommandLine, BOOL preserve_case)
void custom_stop_server(HANDLE process, HANDLE pipe)
UINT MSI_OpenDatabaseW(LPCWSTR szDBPath, LPCWSTR szPersist, MSIDATABASE **pdb)
void msi_event_cleanup_all_subscriptions(MSIPACKAGE *package)
void msi_event_fire(MSIPACKAGE *package, const WCHAR *event, MSIRECORD *rec)
INT ACTION_DialogBox(MSIPACKAGE *package, const WCHAR *dialog)
void msi_dialog_destroy(msi_dialog *dialog)
MSIHANDLE alloc_msihandle(MSIOBJECTHDR *obj)
MSIHANDLE msi_get_remote(MSIHANDLE handle)
void msiobj_addref(MSIOBJECTHDR *info)
UINT WINAPI MsiCloseHandle(MSIHANDLE handle)
MSIHANDLE alloc_msi_remote_handle(MSIHANDLE remote)
int msiobj_release(MSIOBJECTHDR *info)
void * msihandle2msiinfo(MSIHANDLE handle, UINT type)
UINT msi_strncpyW(const WCHAR *str, int len, WCHAR *buf, DWORD *sz)
UINT WINAPI MsiDoActionW(MSIHANDLE hInstall, LPCWSTR szAction)
UINT WINAPI MsiSetComponentStateW(MSIHANDLE hInstall, LPCWSTR szComponent, INSTALLSTATE iState)
UINT WINAPI MsiGetFeatureCostW(MSIHANDLE hInstall, const WCHAR *szFeature, MSICOSTTREE iCostTree, INSTALLSTATE iState, INT *piCost)
LANGID WINAPI MsiGetLanguage(MSIHANDLE hInstall)
UINT WINAPI MsiSetInstallLevel(MSIHANDLE hInstall, int iInstallLevel)
UINT WINAPI MsiSetFeatureStateW(MSIHANDLE hInstall, LPCWSTR szFeature, INSTALLSTATE iState)
UINT WINAPI MsiSequenceW(MSIHANDLE hInstall, LPCWSTR szTable, INT iSequenceMode)
UINT msi_strncpyWtoA(const WCHAR *str, int lenW, char *buf, DWORD *sz, BOOL remote)
UINT WINAPI MsiGetTargetPathW(MSIHANDLE hinst, const WCHAR *folder, WCHAR *buf, DWORD *sz)
UINT WINAPI MsiGetFeatureStateW(MSIHANDLE hInstall, const WCHAR *szFeature, INSTALLSTATE *piInstalled, INSTALLSTATE *piAction)
UINT WINAPI MsiGetSourcePathW(MSIHANDLE hinst, const WCHAR *folder, WCHAR *buf, DWORD *sz)
UINT WINAPI MsiSetTargetPathW(MSIHANDLE hInstall, LPCWSTR szFolder, LPCWSTR szFolderPath)
UINT WINAPI MsiGetComponentStateW(MSIHANDLE hInstall, const WCHAR *szComponent, INSTALLSTATE *piInstalled, INSTALLSTATE *piAction)
UINT WINAPI MsiSetMode(MSIHANDLE hInstall, MSIRUNMODE iRunMode, BOOL fState)
BOOL WINAPI MsiGetMode(MSIHANDLE hInstall, MSIRUNMODE iRunMode)
UINT msi_locate_product(LPCWSTR szProduct, MSIINSTALLCONTEXT *context)
UINT WINAPI MsiEnumComponentCostsW(MSIHANDLE handle, const WCHAR *component, DWORD index, INSTALLSTATE state, WCHAR *drive, DWORD *buflen, int *cost, int *temp)
INSTALLSTATE WINAPI MsiQueryProductStateW(LPCWSTR szProduct)
UINT __cdecl s_remote_SetInstallLevel(MSIHANDLE hinst, int level)
UINT __cdecl s_remote_GetFeatureState(MSIHANDLE hinst, LPCWSTR feature, INSTALLSTATE *installed, INSTALLSTATE *action)
UINT __cdecl s_remote_Sequence(MSIHANDLE hinst, LPCWSTR table, int sequence)
static LPCWSTR get_internal_error_message(int error)
UINT WINAPI MsiOpenPackageA(LPCSTR szPackage, MSIHANDLE *phPackage)
static UINT set_user_sid_prop(MSIPACKAGE *package)
INT MSI_ProcessMessageVerbatim(MSIPACKAGE *package, INSTALLMESSAGE eMessageType, MSIRECORD *record)
UINT msi_set_property(MSIDATABASE *db, const WCHAR *name, const WCHAR *value, int len)
static void set_msi_assembly_prop(MSIPACKAGE *package)
static void free_package_structures(MSIPACKAGE *package)
UINT WINAPI MsiSetPropertyA(MSIHANDLE hInstall, LPCSTR szName, LPCSTR szValue)
static UINT validate_package(MSIPACKAGE *package)
UINT WINAPI MsiOpenPackageExA(LPCSTR szPackage, DWORD dwOptions, MSIHANDLE *phPackage)
UINT __cdecl s_remote_EnumComponentCosts(MSIHANDLE hinst, LPCWSTR component, DWORD index, INSTALLSTATE state, LPWSTR drive, INT *cost, INT *temp)
UINT __cdecl s_remote_GetTargetPath(MSIHANDLE hinst, LPCWSTR folder, LPWSTR *value)
UINT __cdecl s_remote_SetMode(MSIHANDLE hinst, MSIRUNMODE mode, BOOL state)
UINT msi_download_file(LPCWSTR szUrl, LPWSTR filename)
static void free_folder(MSIFOLDER *folder)
MSIHANDLE WINAPI MsiGetActiveDatabase(MSIHANDLE hInstall)
static BOOL validate_package_platform(enum platform platform)
INT MSI_ProcessMessage(MSIPACKAGE *package, INSTALLMESSAGE eMessageType, MSIRECORD *record)
LPWSTR msi_get_error_message(MSIDATABASE *db, int error)
MSIHANDLE __cdecl s_remote_GetActiveDatabase(MSIHANDLE hinst)
UINT __cdecl s_remote_FormatRecord(MSIHANDLE hinst, struct wire_record *remote_rec, LPWSTR *value)
static enum platform parse_platform(const WCHAR *str)
UINT WINAPI MsiOpenPackageW(LPCWSTR szPackage, MSIHANDLE *phPackage)
UINT WINAPI MsiGetPropertyW(MSIHANDLE hinst, const WCHAR *name, WCHAR *buf, DWORD *sz)
static VOID set_installer_properties(MSIPACKAGE *package)
static void MSI_FreePackage(MSIOBJECTHDR *arg)
void msi_adjust_privilege_properties(MSIPACKAGE *package)
static LPWSTR get_fusion_filename(MSIPACKAGE *package)
static UINT create_temp_property_table(MSIPACKAGE *package)
static UINT get_local_package(MSIDATABASE *db, WCHAR *localfile)
static WCHAR * get_product_version(MSIDATABASE *db)
UINT __cdecl s_remote_SetTargetPath(MSIHANDLE hinst, LPCWSTR folder, LPCWSTR value)
UINT msi_clone_properties(MSIDATABASE *db)
static UINT get_registered_local_package(const WCHAR *product, WCHAR *localfile)
static UINT parse_suminfo(MSISUMMARYINFO *si, MSIPACKAGE *package)
static INT internal_ui_handler(MSIPACKAGE *package, INSTALLMESSAGE eMessageType, MSIRECORD *record, LPCWSTR message)
static MSIRECORD * get_property_row(MSIDATABASE *db, const WCHAR *name)
UINT msi_set_original_database_property(MSIDATABASE *db, const WCHAR *package)
UINT __cdecl s_remote_SetComponentState(MSIHANDLE hinst, LPCWSTR component, INSTALLSTATE state)
static UINT load_admin_properties(MSIPACKAGE *package)
WCHAR * msi_get_package_code(MSIDATABASE *db)
MSIPACKAGE * MSI_CreatePackage(MSIDATABASE *db)
static WCHAR * get_product_code(MSIDATABASE *db)
static void free_extension(MSIEXTENSION *ext)
UINT __cdecl s_remote_SetFeatureState(MSIHANDLE hinst, LPCWSTR feature, INSTALLSTATE state)
UINT WINAPI MsiOpenPackageExW(const WCHAR *szPackage, DWORD dwOptions, MSIHANDLE *phPackage)
LANGID __cdecl s_remote_GetLanguage(MSIHANDLE hinst)
UINT __cdecl s_remote_GetFeatureCost(MSIHANDLE hinst, LPCWSTR feature, MSICOSTTREE cost_tree, INSTALLSTATE state, INT *cost)
static void free_feature(MSIFEATURE *feature)
BOOL __cdecl s_remote_GetMode(MSIHANDLE hinst, MSIRUNMODE mode)
static MSIPACKAGE * alloc_package(void)
void msi_free_action_script(MSIPACKAGE *package, UINT script)
static UINT set_installed_prop(MSIPACKAGE *package)
UINT WINAPI MsiSetPropertyW(MSIHANDLE hInstall, LPCWSTR szName, LPCWSTR szValue)
UINT __cdecl s_remote_GetProperty(MSIHANDLE hinst, LPCWSTR property, LPWSTR *value, DWORD *size)
LPWSTR msi_dup_property(MSIDATABASE *db, LPCWSTR prop)
UINT __cdecl s_remote_SetProperty(MSIHANDLE hinst, LPCWSTR property, LPCWSTR value)
int __cdecl s_remote_ProcessMessage(MSIHANDLE hinst, INSTALLMESSAGE message, struct wire_record *remote_rec)
static WCHAR * get_property(MSIDATABASE *db, const WCHAR *prop)
UINT __cdecl s_remote_GetSourcePath(MSIHANDLE hinst, LPCWSTR folder, LPWSTR *value)
UINT __cdecl s_remote_GetComponentState(MSIHANDLE hinst, LPCWSTR component, INSTALLSTATE *installed, INSTALLSTATE *action)
static const struct @619 internal_errors[]
UINT WINAPI MsiGetPropertyA(MSIHANDLE hinst, const char *name, char *buf, DWORD *sz)
UINT __cdecl s_remote_DoAction(MSIHANDLE hinst, LPCWSTR action)
UINT msi_create_empty_local_file(LPWSTR path, LPCWSTR suffix)
UINT MSI_OpenPackageW(LPCWSTR szPackage, DWORD dwOptions, MSIPACKAGE **pPackage)
static void free_assembly(MSIASSEMBLY *assembly)
INT WINAPI MsiProcessMessage(MSIHANDLE hInstall, INSTALLMESSAGE eMessageType, MSIHANDLE hRecord)
int msi_get_property_int(MSIDATABASE *db, LPCWSTR prop, int def)
MSICONDITION __cdecl s_remote_EvaluateCondition(MSIHANDLE hinst, LPCWSTR condition)
int WINAPI MsiRecordGetInteger(MSIHANDLE handle, UINT iField)
UINT WINAPI MsiEnumPatchesExW(const WCHAR *szProductCode, const WCHAR *szUserSid, DWORD dwContext, DWORD dwFilter, DWORD dwIndex, WCHAR *szPatchCode, WCHAR *szTargetProductCode, MSIINSTALLCONTEXT *pdwTargetProductContext, WCHAR *szTargetUserSid, DWORD *pcchTargetUserSid)
#define MSIERR_INSTALLERROR
#define MSIERR_ACTIONSTART
#define MSIERR_INFO_LOGGINGSTART
#define MSIERR_COMMONDATA
_ACRTIMP __msvcrt_long __cdecl wcstol(const wchar_t *, wchar_t **, int)
_ACRTIMP size_t __cdecl wcslen(const wchar_t *)
_ACRTIMP int __cdecl wcscmp(const wchar_t *, const wchar_t *)
static wchar_t * wcsdup(const wchar_t *str)
HRESULT WINAPI SHGetFolderPathW(HWND hwndOwner, int nFolder, HANDLE hToken, DWORD dwFlags, LPWSTR pszPath)
struct png_info_def *typedef unsigned char **typedef struct png_info_def *typedef struct png_info_def *typedef struct png_info_def *typedef unsigned char ** row
BOOL WINAPI GetUrlCacheEntryInfoW(LPCWSTR lpszUrl, LPINTERNET_CACHE_ENTRY_INFOW lpCacheEntryInfo, LPDWORD lpdwCacheEntryInfoBufferSize)
_Must_inspect_result_ _In_opt_ PFLT_INSTANCE _Out_ PHANDLE FileHandle
GLuint GLuint GLsizei count
GLuint GLuint GLsizei GLenum type
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLdouble GLdouble GLdouble r
GLdouble GLdouble GLdouble GLdouble q
GLenum GLuint GLenum GLsizei const GLchar * buf
GLuint GLsizei GLsizei * length
const GLuint GLenum const GLvoid * binary
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
HLOCAL NTAPI LocalFree(HLOCAL hMem)
BOOL NTAPI GlobalMemoryStatusEx(LPMEMORYSTATUSEX lpBuffer)
static IN LPSTR IN PVOID Unk2
enum _SID_NAME_USE SID_NAME_USE
LPWSTR WINAPI lstrcatW(LPWSTR lpString1, LPCWSTR lpString2)
#define memcpy(s1, s2, n)
#define ERROR_FILE_NOT_FOUND
unsigned __int64 * PULONG64
PVOID PVOID PWCHAR PVOID USHORT PULONG PVOID PULONG PVOID PULONG PULONG PULONG64 PULONG SomeFlag2
LPCWSTR LPCWSTR LPCWSTR DWORD PSDBQUERYRESULT_VISTA pQueryResult
PVOID PVOID PWCHAR PVOID USHORT ExeType
PVOID PVOID PWCHAR PVOID USHORT PULONG Reason
PVOID PVOID PWCHAR PVOID USHORT PULONG PVOID * SdbQueryAppCompatData
PVOID PVOID PWCHAR PVOID USHORT PULONG PVOID PULONG PVOID PULONG SxsDataSize
PVOID PVOID PWCHAR PVOID USHORT PULONG PVOID PULONG PVOID PULONG PULONG PULONG64 SomeFlag1
PVOID PVOID PWCHAR PVOID USHORT PULONG PVOID PULONG PVOID * SxsData
PVOID PVOID PWCHAR PVOID USHORT PULONG PVOID PULONG PVOID PULONG PULONG FusionFlags
PVOID PVOID PWCHAR PVOID Environment
PVOID PVOID PWCHAR PVOID USHORT PULONG PVOID PULONG SdbQueryAppCompatDataSize
PVOID PVOID PWCHAR ApplicationName
static WCHAR user_name[UNLEN+1]
static USHORT native_machine
INTERNETFEATURELIST feature
static HRESULT read_stream_data(nsChannelBSC *This, IStream *stream)
void msi_destroy_assembly_caches(MSIPACKAGE *package)
enum tagMSIINSTALLCONTEXT MSIINSTALLCONTEXT
static const WCHAR INSTALLPROPERTY_LOCALPACKAGEW[]
static const WCHAR INSTALLPROPERTY_PRODUCTNAMEW[]
@ INSTALLMESSAGE_ACTIONSTART
@ INSTALLMESSAGE_PROGRESS
@ INSTALLMESSAGE_TERMINATE
@ INSTALLMESSAGE_ACTIONDATA
@ INSTALLMESSAGE_COMMONDATA
@ INSTALLMESSAGE_OUTOFDISKSPACE
@ INSTALLMESSAGE_FATALEXIT
@ INSTALLMESSAGE_INITIALIZE
@ INSTALLMESSAGE_INSTALLSTART
@ INSTALLMESSAGE_SHOWDIALOG
@ INSTALLMESSAGE_INSTALLEND
@ INSTALLUILEVEL_PROGRESSONLY
INSTALLUI_HANDLERA gUIHandlerA
INSTALLUI_HANDLER_RECORD gUIHandlerRecord
INSTALLUI_HANDLERW gUIHandlerW
@ msidbSumInfoSourceTypeAdminImage
int MSI_RecordGetInteger(MSIRECORD *, UINT)
UINT MSI_ViewExecute(MSIQUERY *, MSIRECORD *)
static const BOOL is_64bit
void dump_record(MSIRECORD *)
#define MSIHANDLETYPE_DATABASE
#define INSTALLUILEVEL_MASK
UINT msi_record_set_string(MSIRECORD *, UINT, const WCHAR *, int)
UINT msi_get_string_table_codepage(const string_table *st)
UINT msi_clone_properties(MSIDATABASE *)
void msi_reset_source_folders(MSIPACKAGE *package)
const WCHAR * msi_record_get_string(const MSIRECORD *, UINT, int *)
WCHAR * msi_dup_record_field(MSIRECORD *row, INT index) __WINE_DEALLOC(free) __WINE_MALLOC
#define MSIHANDLETYPE_RECORD
UINT MSI_RecordSetInteger(MSIRECORD *, UINT, int)
WCHAR * msi_get_error_message(MSIDATABASE *, int) __WINE_DEALLOC(free) __WINE_MALLOC
UINT MSIREG_OpenInstallProps(LPCWSTR szProduct, MSIINSTALLCONTEXT dwContext, LPCWSTR szUserSid, HKEY *key, BOOL create)
UINT MSI_ViewClose(MSIQUERY *)
int msi_get_property_int(MSIDATABASE *package, LPCWSTR prop, int def)
UINT MSI_DatabaseOpenViewW(MSIDATABASE *, LPCWSTR, MSIQUERY **)
INT MSI_ProcessMessageVerbatim(MSIPACKAGE *, INSTALLMESSAGE, MSIRECORD *)
UINT msi_package_add_media_disk(MSIPACKAGE *, DWORD, DWORD, DWORD, LPWSTR, LPWSTR)
UINT MSIREG_OpenUninstallKey(const WCHAR *, enum platform, HKEY *, BOOL)
UINT msi_apply_registered_patch(MSIPACKAGE *package, LPCWSTR patch_code)
UINT msi_set_original_database_property(MSIDATABASE *, const WCHAR *)
const WCHAR * MSI_RecordGetString(const MSIRECORD *, UINT)
UINT msi_load_suminfo_properties(MSIPACKAGE *package)
INT msi_suminfo_get_int32(MSISUMMARYINFO *si, UINT uiProperty)
UINT msi_get_db_suminfo(MSIDATABASE *db, UINT uiUpdateCount, MSISUMMARYINFO **si)
void msi_free_patchinfo(MSIPATCHINFO *patch)
UINT msi_set_property(MSIDATABASE *, const WCHAR *, const WCHAR *, int)
MSIRECORD *WINAPIV MSI_QueryGetRecord(MSIDATABASE *db, LPCWSTR query,...)
UINT msi_get_property(MSIDATABASE *, LPCWSTR, LPWSTR, LPDWORD)
#define WINE_OPENPACKAGEFLAGS_RECACHE
BOOL MSI_RecordIsNull(MSIRECORD *, UINT)
UINT MSI_RecordCopyField(MSIRECORD *, UINT, MSIRECORD *, UINT)
INT MSI_ProcessMessage(MSIPACKAGE *, INSTALLMESSAGE, MSIRECORD *)
UINT MSI_ViewFetch(MSIQUERY *, MSIRECORD **)
WCHAR * msi_dup_property(MSIDATABASE *db, const WCHAR *prop) __WINE_DEALLOC(free) __WINE_MALLOC
UINT MSI_RecordSetStringW(MSIRECORD *, UINT, LPCWSTR)
MSIRECORD * MSI_CreateRecord(UINT)
UINT msi_get_suminfo(IStorage *stg, UINT uiUpdateCount, MSISUMMARYINFO **si)
UINT MSI_OpenPackageW(LPCWSTR szPackage, DWORD dwOptions, MSIPACKAGE **pPackage)
UINT unmarshal_record(const struct wire_record *in, MSIHANDLE *out)
void msi_adjust_privilege_properties(MSIPACKAGE *)
WCHAR * msi_reg_get_val_str(HKEY hkey, const WCHAR *name) __WINE_DEALLOC(free) __WINE_MALLOC
UINT msi_package_add_info(MSIPACKAGE *, DWORD, DWORD, LPCWSTR, LPWSTR)
UINT MSI_RecordGetStringW(MSIRECORD *, UINT, LPWSTR, LPDWORD)
WCHAR * msi_suminfo_dup_string(MSISUMMARYINFO *si, UINT property) __WINE_DEALLOC(free) __WINE_MALLOC
MSICONDITION WINAPI MsiEvaluateConditionW(MSIHANDLE, LPCWSTR)
#define MSIDBOPEN_TRANSACT
#define MSIDBOPEN_READONLY
#define PROCESSOR_ARCHITECTURE_AMD64
#define PROCESSOR_ARCHITECTURE_INTEL
#define VER_PLATFORM_WIN32_NT
#define VER_PLATFORM_WIN32_WINDOWS
#define FILE_ATTRIBUTE_READONLY
#define KEY_CREATE_SUB_KEY
#define LOCALE_USER_DEFAULT
#define IMAGE_FILE_MACHINE_ARM
#define IMAGE_FILE_MACHINE_AMD64
#define PathAddBackslashW
#define IMAGE_FILE_MACHINE_I386
static const WCHAR szName[]
int WINAPI ReleaseDC(_In_opt_ HWND, _In_ HDC)
int WINAPI MessageBoxW(_In_opt_ HWND hWnd, _In_opt_ LPCWSTR lpText, _In_opt_ LPCWSTR lpCaption, _In_ UINT uType)
HDC WINAPI GetDC(_In_opt_ HWND)
#define MB_ICONEXCLAMATION
RPC_STATUS WINAPI RpcBindingFree(RPC_BINDING_HANDLE *Binding)
RPC_STATUS WINAPI RpcServerUnregisterIf(RPC_IF_HANDLE IfSpec, UUID *MgrTypeUuid, UINT WaitForCallsToComplete)
#define midl_user_allocate
#define LIST_FOR_EACH_ENTRY(elem, list, type, field)
#define LIST_FOR_EACH_SAFE(cursor, cursor2, list)
BOOL WINAPI SE_DynamicShim(LPCWSTR ProcessImage, HSDB hsdb, PVOID pQueryResult, LPCSTR Module, LPDWORD lpdwDynamicToken)
#define CSIDL_COMMON_APPDATA
#define CSIDL_LOCAL_APPDATA
ULONG dwOSVersionInfoSize
WORD wProcessorArchitecture
struct file_info manifest
LPWSTR DefInprocHandler32
struct list subscriptions
struct list RunningActions
struct list cabinet_streams
UINT action_progress_increment
struct list sourcelist_media
MSIINSTALLCONTEXT Context
LPWSTR LastActionTemplate
LPWSTR * script_actions[SCRIPT_MAX]
int script_actions_count[SCRIPT_MAX]
struct list sourcelist_info
HRESULT WINAPI URLDownloadToCacheFileW(LPUNKNOWN lpUnkCaller, LPCWSTR szURL, LPWSTR szFileName, DWORD dwBufLength, DWORD dwReserved, LPBINDSTATUSCALLBACK pBSC)
#define INVALID_FILE_ATTRIBUTES
DWORD WINAPI GetLastError(void)
#define ERROR_BUFFER_OVERFLOW
#define ERROR_INSTALL_PACKAGE_INVALID
#define ERROR_SHARING_VIOLATION
#define ERROR_PRODUCT_VERSION
#define ERROR_FILE_EXISTS
#define ERROR_INSTALL_PLATFORM_UNSUPPORTED
#define ERROR_INSTALL_LANGUAGE_UNSUPPORTED
#define ERROR_FUNCTION_FAILED
int WINAPI GetDeviceCaps(_In_opt_ HDC, _In_ int)
#define TIME_NOTIMEMARKER
#define PROCESSOR_ARCHITECTURE_ARM64
#define HKEY_LOCAL_MACHINE
#define HKEY_CURRENT_USER