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);
879 ERR(
"Failed to set the UserSID property\n");
913 free( computername );
922 package = alloc_msiobject( MSIHANDLETYPE_PACKAGE, sizeof (MSIPACKAGE),
969 TRACE(
"resetting ALLUSERS property from 2 to 1\n");
986 package = alloc_package();
1055 WARN(
"failed to download %s to cache file\n",
debugstr_w(szUrl));
1073 for (
i = 0;
i < 0x10000;
i++)
1289 WARN(
"failed to load summary info %u\n",
r);
1300 WCHAR *product_code;
1306 free( product_code );
1316 else if (package[0] ==
'#')
1339#define HID_DOS_PATHS 0x1
1340#define SDB_DATABASE_MAIN_SHIM 0x80030000
1342#define APPHELP_VALID_RESULT 0x10000
1343#define APPHELP_RESULT_FOUND 0x40000
1346AppHelpCheckPackage(
LPCWSTR szPackage)
1352 ULONG QueryResultSize = 0;
1356 Handle,
NULL,
NULL, szPackage,
NULL,
ExeType, &
Reason, &QueryResult, &QueryResultSize,
NULL,
1368 ERR(
"ReactOS HACK(CORE-13283): Used SE_DynamicShim %d!\n", bShim);
1374 ERR(
"Unable to open SDB_DATABASE_MAIN_SHIM\n");
1396 WCHAR *info_template, *productname, *product_code;
1404 if( szPackage[0] ==
'#' )
1423 AppHelpCheckPackage(
file);
1436 DWORD localfile_attr;
1453 delete_on_close =
TRUE;
1465 WARN(
"unable to update cached package (%u)\n",
r);
1477 free( product_version );
1481 if (product_version)
1484 if (!product_version != !cache_version ||
1485 (product_version &&
wcscmp(product_version, cache_version)))
1488 free( product_version );
1489 free( cache_version );
1492 free( product_version );
1493 free( cache_version );
1496 package = MSI_CreatePackage( db );
1508 WARN(
"failed to load summary info\n");
1517 WARN(
"failed to parse summary info %u\n",
r);
1534 TRACE(
"product already registered\n");
1537 free( product_code );
1552 ERR(
"registered patch failed to apply %u\n",
r);
1588 free(info_template);
1603 *pPackage = package;
1614 if( !szPackage || !phPackage )
1619 FIXME(
"Should create an empty database and package\n");
1675 TRACE(
"%lu\n", hInstall );
1677 package = msihandle2msiinfo( hInstall, MSIHANDLETYPE_PACKAGE);
1687 handle = remote_GetActiveDatabase(remote);
1707 switch (eMessageType & 0xff000000)
1743 if (!uirow)
return -1;
1755 if (!uirow)
return -1;
1763 if (!uirow)
return -1;
1786 FIXME(
"internal UI not implemented for message 0x%08x (UI level = %x)\n", eMessageType, package->
ui_level);
1798 {2726,
L"DEBUG: Error [1]: Action not found: [2]"},
1828 else if (
error < 2000)
1847 DWORD log_type = 1 << (eMessageType >> 24);
1852 TRACE(
"%x\n", eMessageType);
1875 TRACE(
"calling UI handler %p(pvContext = %p, iMessageType = %#x, hRecord = %lu)\n",
1882 TRACE(
"calling UI handler %p(pvContext = %p, iMessageType = %#x, szMessage = %s)\n",
1888 TRACE(
"calling UI handler %p(pvContext = %p, iMessageType = %#x, szMessage = %s)\n",
1911 switch (eMessageType & 0xff000000)
1933 if (!template_rec &&
error >= 2000)
1953 if (!template_prefix) template_prefix =
wcsdup(
L"");
1960 free(template_prefix);
1967 free(template_prefix);
1972 lstrcpyW(
template, template_prefix);
1976 free(template_prefix);
2036 package = msihandle2msiinfo( hInstall, MSIHANDLETYPE_PACKAGE );
2077 if( szValue && !szwValue )
2132 lstrcpyW(
query,
L"INSERT INTO `_Property` (`_Property`,`Value`) VALUES (?,?)" );
2154 package = msihandle2msiinfo( hInstall, MSIHANDLETYPE_PACKAGE);
2164 ret = remote_SetProperty(remote,
szName, szValue);
2260 if (*pchValueBuf > 0)
2270 TRACE(
"returning %s for property %s\n",
debugstr_wn(szValueBuf, *pchValueBuf),
2328 package = msihandle2msiinfo(hinst, MSIHANDLETYPE_PACKAGE);
2396 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 const WCHAR empty[]
static WCHAR * strdupAtoW(const char *str)
#define ERROR_INVALID_PARAMETER
#define INVALID_HANDLE_VALUE
#define ERROR_INVALID_HANDLE
#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 LPCVOID lpBuffer, IN DWORD nNumberOfBytesToWrite OPTIONAL, OUT LPDWORD lpNumberOfBytesWritten, IN LPOVERLAPPED lpOverlapped OPTIONAL)
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)
DWORD WINAPI GetTickCount(VOID)
LANGID WINAPI GetSystemDefaultLangID(void)
BOOL WINAPI IsValidLocale(LCID lcid, DWORD flags)
LANGID WINAPI GetUserDefaultLangID(void)
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)
LONG WINAPI rpc_filter(EXCEPTION_POINTERS *eptr)
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)
static const struct @503 internal_errors[]
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)
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)
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
HRESULT WINAPI SHGetFolderPathW(HWND hwndOwner, int nFolder, HANDLE hToken, DWORD dwFlags, LPWSTR pszPath)
BOOL WINAPI UrlIsW(LPCWSTR pszUrl, URLIS Urlis)
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)
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 GLenum type
GLuint GLuint GLsizei count
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)
_Check_return_ long __cdecl wcstol(_In_z_ const wchar_t *_Str, _Out_opt_ _Deref_post_z_ wchar_t **_EndPtr, _In_ int _Radix)
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
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]
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 *)
#define MSIHANDLETYPE_RECORD
UINT MSI_RecordSetInteger(MSIRECORD *, UINT, int)
WCHAR * msi_dup_record_field(MSIRECORD *row, INT index)
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)
WCHAR * msi_dup_property(MSIDATABASE *db, const WCHAR *prop)
UINT MSI_RecordCopyField(MSIRECORD *, UINT, MSIRECORD *, UINT)
WCHAR * msi_suminfo_dup_string(MSISUMMARYINFO *si, UINT property)
INT MSI_ProcessMessage(MSIPACKAGE *, INSTALLMESSAGE, MSIRECORD *)
UINT MSI_ViewFetch(MSIQUERY *, MSIRECORD **)
WCHAR * msi_reg_get_val_str(HKEY hkey, const WCHAR *name)
UINT MSI_RecordSetStringW(MSIRECORD *, UINT, LPCWSTR)
MSIRECORD * MSI_CreateRecord(UINT)
UINT msi_get_suminfo(IStorage *stg, UINT uiUpdateCount, MSISUMMARYINFO **si)
WCHAR * msi_get_error_message(MSIDATABASE *, int)
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 *)
UINT msi_package_add_info(MSIPACKAGE *, DWORD, DWORD, LPCWSTR, LPWSTR)
UINT MSI_RecordGetStringW(MSIRECORD *, UINT, LPWSTR, LPDWORD)
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 PathAddBackslashW
static const WCHAR szName[]
RPC_STATUS WINAPI RpcBindingFree(RPC_BINDING_HANDLE *Binding)
RPC_STATUS WINAPI RpcServerUnregisterIf(RPC_IF_HANDLE IfSpec, UUID *MgrTypeUuid, UINT WaitForCallsToComplete)
_Check_return_ _CRTIMP int __cdecl wcscmp(_In_z_ const wchar_t *_Str1, _In_z_ const wchar_t *_Str2)
_Check_return_ _CRTIMP wchar_t *__cdecl wcsdup(_In_z_ const wchar_t *_Str)
#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_PATCH_PACKAGE_INVALID
#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 HKEY_LOCAL_MACHINE
#define HKEY_CURRENT_USER
int WINAPI ReleaseDC(_In_opt_ HWND, _In_ HDC)
int WINAPI LoadStringW(_In_opt_ HINSTANCE hInstance, _In_ UINT uID, _Out_writes_to_(cchBufferMax, return+1) LPWSTR lpBuffer, _In_ int cchBufferMax)
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