21#define NONAMELESSUNION
22#define NONAMELESSSTRUCT
25#define WIN32_NO_STATUS
312 IStorage_Release( cab->
storage );
346 if( package->dialog )
352 if (package->rpc_server_started)
356 if (package->custom_server_32_process)
357 custom_stop_server(package->custom_server_32_process, package->custom_server_32_pipe);
358 if (package->custom_server_64_process)
359 custom_stop_server(package->custom_server_64_process, package->custom_server_64_pipe);
361 if (package->delete_on_close)
DeleteFileW( package->localfile );
372 L"`Value` CHAR(98) NOT NULL TEMPORARY PRIMARY KEY `_Property`) HOLD", &
view);
401 MSIQUERY *view_insert, *view_update;
408 rc =
MSI_DatabaseOpenViewW( db,
L"INSERT INTO `_Property` (`_Property`,`Value`) VALUES (?,?)", &view_insert );
422 TRACE(
"insert failed, trying update\n");
424 rc =
MSI_DatabaseOpenViewW( db,
L"UPDATE `_Property` SET `Value` = ? WHERE `_Property` = ?", &view_update );
427 WARN(
"open view failed %u\n", rc);
437 WARN(
"update failed %u\n", rc);
622 if (!val_len || !verstr)
731 msex.dwLength =
sizeof(msex);
880 ERR(
"Failed to set the UserSID property\n");
923 package = alloc_msiobject( MSIHANDLETYPE_PACKAGE, sizeof (MSIPACKAGE),
970 TRACE(
"resetting ALLUSERS property from 2 to 1\n");
987 package = msi_alloc_package();
1056 WARN(
"failed to download %s to cache file\n",
debugstr_w(szUrl));
1074 for (
i = 0;
i < 0x10000;
i++)
1290 WARN(
"failed to load summary info %u\n",
r);
1301 WCHAR *product_code;
1317 else if (package[0] ==
'#')
1340#define HID_DOS_PATHS 0x1
1341#define SDB_DATABASE_MAIN_SHIM 0x80030000
1343#define APPHELP_VALID_RESULT 0x10000
1344#define APPHELP_RESULT_FOUND 0x40000
1347AppHelpCheckPackage(
LPCWSTR szPackage)
1353 ULONG QueryResultSize = 0;
1357 Handle,
NULL,
NULL, szPackage,
NULL,
ExeType, &
Reason, &QueryResult, &QueryResultSize,
NULL,
1369 ERR(
"ReactOS HACK(CORE-13283): Used SE_DynamicShim %d!\n", bShim);
1375 ERR(
"Unable to open SDB_DATABASE_MAIN_SHIM\n");
1397 WCHAR *info_template, *productname, *product_code;
1405 if( szPackage[0] ==
'#' )
1424 AppHelpCheckPackage(
file);
1437 DWORD localfile_attr;
1454 delete_on_close =
TRUE;
1466 WARN(
"unable to update cached package (%u)\n",
r);
1479 if (product_version)
1482 if (!product_version != !cache_version ||
1483 (product_version &&
wcscmp(product_version, cache_version)))
1494 package = MSI_CreatePackage( db );
1506 WARN(
"failed to load summary info\n");
1515 WARN(
"failed to parse summary info %u\n",
r);
1532 TRACE(
"product already registered\n");
1550 ERR(
"registered patch failed to apply %u\n",
r);
1570 ERR(
"can't initialize assembly caches\n");
1608 *pPackage = package;
1619 if( !szPackage || !phPackage )
1624 FIXME(
"Should create an empty database and package\n");
1680 TRACE(
"%lu\n", hInstall );
1682 package = msihandle2msiinfo( hInstall, MSIHANDLETYPE_PACKAGE);
1692 handle = remote_GetActiveDatabase(remote);
1712 switch (eMessageType & 0xff000000)
1748 if (!uirow)
return -1;
1760 if (!uirow)
return -1;
1768 if (!uirow)
return -1;
1791 FIXME(
"internal UI not implemented for message 0x%08x (UI level = %x)\n", eMessageType, package->
ui_level);
1803 {2726,
L"DEBUG: Error [1]: Action not found: [2]"},
1833 else if (
error < 2000)
1852 DWORD log_type = 1 << (eMessageType >> 24);
1857 TRACE(
"%x\n", eMessageType);
1880 TRACE(
"calling UI handler %p(pvContext = %p, iMessageType = %#x, hRecord = %lu)\n",
1887 TRACE(
"calling UI handler %p(pvContext = %p, iMessageType = %#x, szMessage = %s)\n",
1893 TRACE(
"calling UI handler %p(pvContext = %p, iMessageType = %#x, szMessage = %s)\n",
1916 switch (eMessageType & 0xff000000)
1938 if (!template_rec &&
error >= 2000)
1958 if (!template_prefix) template_prefix =
strdupW(
L"");
1972 lstrcpyW(
template, 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 WCHAR * strdupW(const WCHAR *src)
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)
struct tagLANGANDCODEPAGE LANGANDCODEPAGE
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)
static UINT msi_load_admin_properties(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)
static MSIPACKAGE * msi_alloc_package(void)
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)
UINT msi_set_original_database_property(MSIDATABASE *db, const WCHAR *package)
UINT __cdecl s_remote_SetComponentState(MSIHANDLE hinst, LPCWSTR component, INSTALLSTATE state)
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)
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)
static MSIRECORD * msi_get_property_row(MSIDATABASE *db, LPCWSTR name)
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)
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)
BOOL msi_init_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
UINT msi_package_add_info(MSIPACKAGE *, DWORD, DWORD, LPCWSTR, LPWSTR) DECLSPEC_HIDDEN
UINT MSI_ViewClose(MSIQUERY *) DECLSPEC_HIDDEN
INT msi_suminfo_get_int32(MSISUMMARYINFO *si, UINT uiProperty) DECLSPEC_HIDDEN
static const BOOL is_64bit
WCHAR * msi_dup_record_field(MSIRECORD *row, INT index) DECLSPEC_HIDDEN
UINT msi_set_property(MSIDATABASE *, const WCHAR *, const WCHAR *, int) DECLSPEC_HIDDEN
MSIRECORD *WINAPIV MSI_QueryGetRecord(MSIDATABASE *db, LPCWSTR query,...) DECLSPEC_HIDDEN
UINT MSIREG_OpenUninstallKey(const WCHAR *, enum platform, HKEY *, BOOL) DECLSPEC_HIDDEN
LPWSTR msi_suminfo_dup_string(MSISUMMARYINFO *si, UINT uiProperty) DECLSPEC_HIDDEN
#define MSIHANDLETYPE_DATABASE
#define INSTALLUILEVEL_MASK
UINT MSI_ViewFetch(MSIQUERY *, MSIRECORD **) DECLSPEC_HIDDEN
UINT unmarshal_record(const struct wire_record *in, MSIHANDLE *out) DECLSPEC_HIDDEN
UINT MSI_RecordGetStringW(MSIRECORD *, UINT, LPWSTR, LPDWORD) DECLSPEC_HIDDEN
#define MSIHANDLETYPE_RECORD
static void msi_free(void *mem)
const WCHAR * msi_record_get_string(const MSIRECORD *, UINT, int *) DECLSPEC_HIDDEN
UINT msi_get_string_table_codepage(const string_table *st) DECLSPEC_HIDDEN
void msi_free_patchinfo(MSIPATCHINFO *patch) DECLSPEC_HIDDEN
int MSI_RecordGetInteger(MSIRECORD *, UINT) DECLSPEC_HIDDEN
UINT msi_load_suminfo_properties(MSIPACKAGE *package) DECLSPEC_HIDDEN
UINT msi_get_property(MSIDATABASE *, LPCWSTR, LPWSTR, LPDWORD) DECLSPEC_HIDDEN
void msi_reset_source_folders(MSIPACKAGE *package) DECLSPEC_HIDDEN
UINT MSI_RecordSetInteger(MSIRECORD *, UINT, int) DECLSPEC_HIDDEN
LPWSTR msi_reg_get_val_str(HKEY hkey, LPCWSTR name) DECLSPEC_HIDDEN
const WCHAR * MSI_RecordGetString(const MSIRECORD *, UINT) DECLSPEC_HIDDEN
INT MSI_ProcessMessage(MSIPACKAGE *, INSTALLMESSAGE, MSIRECORD *) DECLSPEC_HIDDEN
static void * msi_alloc(size_t len) __WINE_ALLOC_SIZE(1)
void msi_adjust_privilege_properties(MSIPACKAGE *) DECLSPEC_HIDDEN
#define WINE_OPENPACKAGEFLAGS_RECACHE
MSIRECORD * MSI_CreateRecord(UINT) DECLSPEC_HIDDEN
UINT msi_apply_registered_patch(MSIPACKAGE *package, LPCWSTR patch_code) DECLSPEC_HIDDEN
int msi_get_property_int(MSIDATABASE *package, LPCWSTR prop, int def) DECLSPEC_HIDDEN
UINT msi_get_suminfo(IStorage *stg, UINT uiUpdateCount, MSISUMMARYINFO **si) DECLSPEC_HIDDEN
UINT msi_set_original_database_property(MSIDATABASE *, const WCHAR *) DECLSPEC_HIDDEN
void dump_record(MSIRECORD *) DECLSPEC_HIDDEN
LPWSTR msi_dup_property(MSIDATABASE *db, LPCWSTR prop) DECLSPEC_HIDDEN
UINT MSI_RecordCopyField(MSIRECORD *, UINT, MSIRECORD *, UINT) DECLSPEC_HIDDEN
BOOL MSI_RecordIsNull(MSIRECORD *, UINT) DECLSPEC_HIDDEN
INT MSI_ProcessMessageVerbatim(MSIPACKAGE *, INSTALLMESSAGE, MSIRECORD *) DECLSPEC_HIDDEN
UINT msi_package_add_media_disk(MSIPACKAGE *, DWORD, DWORD, DWORD, LPWSTR, LPWSTR) DECLSPEC_HIDDEN
UINT MSI_DatabaseOpenViewW(MSIDATABASE *, LPCWSTR, MSIQUERY **) DECLSPEC_HIDDEN
UINT msi_clone_properties(MSIDATABASE *) DECLSPEC_HIDDEN
UINT MSIREG_OpenInstallProps(LPCWSTR szProduct, MSIINSTALLCONTEXT dwContext, LPCWSTR szUserSid, HKEY *key, BOOL create) DECLSPEC_HIDDEN
UINT MSI_RecordSetStringW(MSIRECORD *, UINT, LPCWSTR) DECLSPEC_HIDDEN
UINT MSI_ViewExecute(MSIQUERY *, MSIRECORD *) DECLSPEC_HIDDEN
UINT msi_record_set_string(MSIRECORD *, UINT, const WCHAR *, int) DECLSPEC_HIDDEN
UINT msi_get_db_suminfo(MSIDATABASE *db, UINT uiUpdateCount, MSISUMMARYINFO **si) DECLSPEC_HIDDEN
UINT MSI_OpenPackageW(LPCWSTR szPackage, DWORD dwOptions, MSIPACKAGE **pPackage) DECLSPEC_HIDDEN
WCHAR * msi_get_error_message(MSIDATABASE *, int) DECLSPEC_HIDDEN
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)
#define midl_user_allocate
#define LIST_FOR_EACH_ENTRY(elem, list, type, field)
#define LIST_FOR_EACH_SAFE(cursor, cursor2, list)
#define GetExceptionCode()
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
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