21 #define NONAMELESSUNION 22 #define NONAMELESSSTRUCT 25 #define WIN32_NO_STATUS 57 #include "winemsi_s.h" 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] ==
'#')
1345 WCHAR *info_template, *productname, *product_code;
1353 if( szPackage[0] ==
'#' )
1381 DWORD localfile_attr;
1398 delete_on_close =
TRUE;
1410 WARN(
"unable to update cached package (%u)\n",
r);
1423 if (product_version)
1426 if (!product_version != !cache_version ||
1427 (product_version &&
wcscmp(product_version, cache_version)))
1438 package = MSI_CreatePackage( db );
1450 WARN(
"failed to load summary info\n");
1459 WARN(
"failed to parse summary info %u\n",
r);
1476 TRACE(
"product already registered\n");
1494 ERR(
"registered patch failed to apply %u\n",
r);
1514 ERR(
"can't initialize assembly caches\n");
1552 *pPackage = package;
1563 if( !szPackage || !phPackage )
1568 FIXME(
"Should create an empty database and package\n");
1624 TRACE(
"%lu\n", hInstall );
1626 package = msihandle2msiinfo( hInstall, MSIHANDLETYPE_PACKAGE);
1636 handle = remote_GetActiveDatabase(remote);
1656 switch (eMessageType & 0xff000000)
1692 if (!uirow)
return -1;
1704 if (!uirow)
return -1;
1712 if (!uirow)
return -1;
1735 FIXME(
"internal UI not implemented for message 0x%08x (UI level = %x)\n", eMessageType, package->
ui_level);
1747 {2726,
L"DEBUG: Error [1]: Action not found: [2]"},
1777 else if (
error < 2000)
1796 DWORD log_type = 1 << (eMessageType >> 24);
1801 TRACE(
"%x\n", eMessageType);
1824 TRACE(
"calling UI handler %p(pvContext = %p, iMessageType = %#x, hRecord = %lu)\n",
1831 TRACE(
"calling UI handler %p(pvContext = %p, iMessageType = %#x, szMessage = %s)\n",
1837 TRACE(
"calling UI handler %p(pvContext = %p, iMessageType = %#x, szMessage = %s)\n",
1860 switch (eMessageType & 0xff000000)
1882 if (!template_rec &&
error >= 2000)
1902 if (!template_prefix) template_prefix =
strdupW(
L"");
1916 lstrcpyW(
template, template_prefix);
1980 package = msihandle2msiinfo( hInstall, MSIHANDLETYPE_PACKAGE );
2021 if( szValue && !szwValue )
2076 lstrcpyW(
query,
L"INSERT INTO `_Property` (`_Property`,`Value`) VALUES (?,?)" );
2098 package = msihandle2msiinfo( hInstall, MSIHANDLETYPE_PACKAGE);
2108 ret = remote_SetProperty(remote,
szName, szValue);
2204 if (*pchValueBuf > 0)
2214 TRACE(
"returning %s for property %s\n",
debugstr_wn(szValueBuf, *pchValueBuf),
2272 package = msihandle2msiinfo(hinst, MSIHANDLETYPE_PACKAGE);
2340 package = msihandle2msiinfo(hinst, MSIHANDLETYPE_PACKAGE);
LPWSTR msi_suminfo_dup_string(MSISUMMARYINFO *si, UINT uiProperty) DECLSPEC_HIDDEN
void msiobj_addref(MSIOBJECTHDR *info)
BOOL WINAPI SetFileAttributesW(LPCWSTR lpFileName, DWORD dwFileAttributes)
UINT __cdecl s_remote_Sequence(MSIHANDLE hinst, LPCWSTR table, int sequence)
UINT msi_get_db_suminfo(MSIDATABASE *db, UINT uiUpdateCount, MSISUMMARYINFO **si) DECLSPEC_HIDDEN
#define ERROR_INVALID_PARAMETER
BOOL WINAPI CreateDirectoryW(IN LPCWSTR lpPathName, IN LPSECURITY_ATTRIBUTES lpSecurityAttributes)
UINT msi_package_add_media_disk(MSIPACKAGE *package, DWORD context, DWORD options, DWORD disk_id, LPWSTR volume_label, LPWSTR disk_prompt)
UINT WINAPI MsiEnumComponentCostsW(MSIHANDLE handle, const WCHAR *component, DWORD index, INSTALLSTATE state, WCHAR *drive, DWORD *buflen, int *cost, int *temp)
INTERNETFEATURELIST feature
#define MSIDBOPEN_READONLY
ULONG dwOSVersionInfoSize
BOOL WINAPI WriteFile(IN HANDLE hFile, IN LPCVOID lpBuffer, IN DWORD nNumberOfBytesToWrite OPTIONAL, OUT LPDWORD lpNumberOfBytesWritten, IN LPOVERLAPPED lpOverlapped OPTIONAL)
MSIHANDLE msi_get_remote(MSIHANDLE handle)
#define ERROR_INSTALL_LANGUAGE_UNSUPPORTED
UINT WINAPI MsiOpenPackageA(LPCSTR szPackage, MSIHANDLE *phPackage)
static const WCHAR szName[]
#define ERROR_FILE_EXISTS
UINT __cdecl s_remote_GetTargetPath(MSIHANDLE hinst, LPCWSTR folder, LPWSTR *value)
RPC_STATUS WINAPI RpcBindingFree(RPC_BINDING_HANDLE *Binding)
#define VER_PLATFORM_WIN32_NT
#define LIST_FOR_EACH_SAFE(cursor, cursor2, list)
UINT WINAPI MsiSetPropertyW(MSIHANDLE hInstall, LPCWSTR szName, LPCWSTR szValue)
UINT MSI_RecordSetStringW(MSIRECORD *, UINT, LPCWSTR) DECLSPEC_HIDDEN
UINT msi_apply_registered_patch(MSIPACKAGE *package, LPCWSTR patch_code) DECLSPEC_HIDDEN
#define WINE_OPENPACKAGEFLAGS_RECACHE
enum _SID_NAME_USE SID_NAME_USE
UINT MSI_RecordCopyField(MSIRECORD *, UINT, MSIRECORD *, UINT) DECLSPEC_HIDDEN
UINT WINAPI MsiSetPropertyA(MSIHANDLE hInstall, LPCSTR szName, LPCSTR szValue)
WCHAR * msi_get_package_code(MSIDATABASE *db)
NTSTATUS NTAPI RtlGetVersion(IN OUT PRTL_OSVERSIONINFOW lpVersionInformation)
enum tagMSIINSTALLCONTEXT MSIINSTALLCONTEXT
#define WideCharToMultiByte
LPWSTR msi_reg_get_val_str(HKEY hkey, LPCWSTR name) DECLSPEC_HIDDEN
LANGID __cdecl s_remote_GetLanguage(MSIHANDLE hinst)
HDC WINAPI GetDC(_In_opt_ HWND)
UINT unmarshal_record(const struct wire_record *in, MSIHANDLE *out) DECLSPEC_HIDDEN
#define midl_user_allocate
VOID WINAPI GetNativeSystemInfo(IN LPSYSTEM_INFO lpSystemInfo)
#define ERROR_BUFFER_OVERFLOW
GLsizei const GLchar ** path
static WCHAR * strdupW(const WCHAR *src)
static enum platform parse_platform(const WCHAR *str)
GLdouble GLdouble GLdouble r
int WINAPI MsiRecordGetInteger(MSIHANDLE handle, UINT iField)
struct list RunningActions
#define LOCALE_USER_DEFAULT
#define HKEY_CURRENT_USER
GLuint GLuint GLsizei count
UINT MSI_OpenDatabaseW(LPCWSTR szDBPath, LPCWSTR szPersist, MSIDATABASE **pdb)
struct file_info manifest
UINT msi_parse_command_line(MSIPACKAGE *package, LPCWSTR szCommandLine, BOOL preserve_case)
#define ERROR_INVALID_HANDLE
UINT MSI_RecordGetStringW(MSIRECORD *, UINT, LPWSTR, LPDWORD) DECLSPEC_HIDDEN
void msi_free_action_script(MSIPACKAGE *package, UINT script)
MSICONDITION WINAPI MsiEvaluateConditionW(MSIHANDLE, LPCWSTR)
UINT MSI_ViewExecute(MSIQUERY *, MSIRECORD *) DECLSPEC_HIDDEN
BOOL msi_is_global_assembly(MSICOMPONENT *comp)
__WINE_SERVER_LIST_INLINE void list_add_head(struct list *list, struct list *elem)
DWORD WINAPI GetTickCount(VOID)
MSIPACKAGE * MSI_CreatePackage(MSIDATABASE *db)
UINT __cdecl s_remote_GetComponentState(MSIHANDLE hinst, LPCWSTR component, INSTALLSTATE *installed, INSTALLSTATE *action)
INSTALLUI_HANDLERW gUIHandlerW
#define ERROR_NOT_ENOUGH_MEMORY
static UINT get_registered_local_package(const WCHAR *product, WCHAR *localfile)
#define INVALID_HANDLE_VALUE
DWORD WINAPI GetLastError(VOID)
DWORD WINAPI GetFullPathNameW(IN LPCWSTR lpFileName, IN DWORD nBufferLength, OUT LPWSTR lpBuffer, OUT LPWSTR *lpFilePart)
void msi_dialog_destroy(msi_dialog *dialog)
INT ACTION_DialogBox(MSIPACKAGE *package, const WCHAR *dialog)
static void msi_free(void *mem)
UINT msi_set_context(MSIPACKAGE *package)
UINT WINAPI MsiGetComponentStateW(MSIHANDLE hInstall, const WCHAR *szComponent, INSTALLSTATE *piInstalled, INSTALLSTATE *piAction)
static void free_folder(MSIFOLDER *folder)
_Check_return_ long __cdecl wcstol(_In_z_ const wchar_t *_Str, _Out_opt_ _Deref_post_z_ wchar_t **_EndPtr, _In_ int _Radix)
BOOL WINAPI GetComputerNameW(LPWSTR lpBuffer, LPDWORD lpnSize)
#define MSIHANDLETYPE_DATABASE
static void free_assembly(MSIASSEMBLY *assembly)
UINT msi_package_add_info(MSIPACKAGE *package, DWORD context, DWORD options, LPCWSTR property, LPWSTR value)
BOOL WINAPI ConvertSidToStringSidW(PSID Sid, LPWSTR *StringSid)
UINT WINAPI MsiGetPropertyA(MSIHANDLE hinst, const char *name, char *buf, DWORD *sz)
int WINAPI LoadStringW(_In_opt_ HINSTANCE hInstance, _In_ UINT uID, _Out_writes_to_(cchBufferMax, return+1) LPWSTR lpBuffer, _In_ int cchBufferMax)
static const BOOL is_64bit
RPC_STATUS WINAPI RpcServerUnregisterIf(RPC_IF_HANDLE IfSpec, UUID *MgrTypeUuid, UINT WaitForCallsToComplete)
static const WCHAR INSTALLPROPERTY_LOCALPACKAGEW[]
static LPCWSTR get_internal_error_message(int error)
#define ERROR_INSTALL_PLATFORM_UNSUPPORTED
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)
static void free_package_structures(MSIPACKAGE *package)
UINT WINAPI GetWindowsDirectoryW(OUT LPWSTR lpBuffer, IN UINT uSize)
UINT msi_strncpyW(const WCHAR *str, int len, WCHAR *buf, DWORD *sz)
UINT __cdecl s_remote_FormatRecord(MSIHANDLE hinst, struct wire_record *remote_rec, LPWSTR *value)
UINT WINAPI MsiOpenPackageExA(LPCSTR szPackage, DWORD dwOptions, MSIHANDLE *phPackage)
UINT msi_strncpyWtoA(const WCHAR *str, int lenW, char *buf, DWORD *sz, BOOL remote)
#define MB_ICONEXCLAMATION
int msi_get_property_int(MSIDATABASE *db, LPCWSTR prop, int def)
void msi_adjust_privilege_properties(MSIPACKAGE *package)
UINT MSIREG_OpenInstallProps(LPCWSTR szProduct, MSIINSTALLCONTEXT dwContext, LPCWSTR szUserSid, HKEY *key, BOOL create) DECLSPEC_HIDDEN
GLenum GLuint GLenum GLsizei const GLchar * buf
void msi_reset_source_folders(MSIPACKAGE *package)
#define LIST_FOR_EACH_ENTRY(elem, list, type, field)
UINT WINAPI MsiGetPropertyW(MSIHANDLE hinst, const WCHAR *name, WCHAR *buf, DWORD *sz)
UINT MSI_RecordSetInteger(MSIRECORD *, UINT, int) DECLSPEC_HIDDEN
static UINT get_local_package(MSIDATABASE *db, WCHAR *localfile)
namespace GUID const ADDRINFOEXW ADDRINFOEXW struct timeval OVERLAPPED LPLOOKUPSERVICE_COMPLETION_ROUTINE HANDLE * handle
#define ERROR_FUNCTION_FAILED
UINT WINAPI MsiSetTargetPathW(MSIHANDLE hInstall, LPCWSTR szFolder, LPCWSTR szFolderPath)
static struct externalui_message * sequence
void msi_event_cleanup_all_subscriptions(MSIPACKAGE *package)
BOOL WINAPI MsiGetMode(MSIHANDLE hInstall, MSIRUNMODE iRunMode)
DWORD WINAPI GetTempPathW(IN DWORD count, OUT LPWSTR path)
MSIHANDLE WINAPI MsiGetActiveDatabase(MSIHANDLE hInstall)
UINT MSI_ViewFetch(MSIQUERY *, MSIRECORD **) DECLSPEC_HIDDEN
UINT __cdecl s_remote_EnumComponentCosts(MSIHANDLE hinst, LPCWSTR component, DWORD index, INSTALLSTATE state, LPWSTR drive, INT *cost, INT *temp)
UINT __cdecl s_remote_GetProperty(MSIHANDLE hinst, LPCWSTR property, LPWSTR *value, DWORD *size)
LPWSTR WINAPI PathAddBackslashW(LPWSTR lpszPath)
struct list sourcelist_info
BOOL MSI_RecordIsNull(MSIRECORD *, UINT) DECLSPEC_HIDDEN
UINT WINAPI MsiSetMode(MSIHANDLE hInstall, MSIRUNMODE iRunMode, BOOL fState)
DWORD WINAPI GetFileAttributesW(LPCWSTR lpFileName)
UINT __cdecl s_remote_SetMode(MSIHANDLE hinst, MSIRUNMODE mode, BOOL state)
LONG WINAPI RegOpenKeyW(HKEY hKey, LPCWSTR lpSubKey, PHKEY phkResult)
static struct _test_info info[]
INT MSI_ProcessMessage(MSIPACKAGE *package, INSTALLMESSAGE eMessageType, MSIRECORD *record)
#define ERROR_PATCH_PACKAGE_INVALID
int WINAPI ReleaseDC(_In_opt_ HWND, _In_ HDC)
GLenum GLuint GLenum GLsizei length
static WCHAR * get_product_code(MSIDATABASE *db)
void msi_event_fire(MSIPACKAGE *package, const WCHAR *event, MSIRECORD *rec)
LONG WINAPI rpc_filter(EXCEPTION_POINTERS *eptr)
BOOL WINAPI DeleteFileW(IN LPCWSTR lpFileName)
struct list sourcelist_media
void msi_destroy_assembly_caches(MSIPACKAGE *package)
UINT WINAPI MsiDoActionW(MSIHANDLE hInstall, LPCWSTR szAction)
MSICONDITION __cdecl s_remote_EvaluateCondition(MSIHANDLE hinst, LPCWSTR condition)
INSTALLUI_HANDLER_RECORD gUIHandlerRecord
#define MSIHANDLETYPE_RECORD
static const WCHAR version[]
UINT msi_get_suminfo(IStorage *stg, UINT uiUpdateCount, MSISUMMARYINFO **si) DECLSPEC_HIDDEN
static UINT msi_load_admin_properties(MSIPACKAGE *package)
INT WINAPI MsiProcessMessage(MSIHANDLE hInstall, INSTALLMESSAGE eMessageType, MSIHANDLE hRecord)
static LPWSTR get_fusion_filename(MSIPACKAGE *package)
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)
const WCHAR * MSI_RecordGetString(const MSIRECORD *, UINT) DECLSPEC_HIDDEN
void msi_free_patchinfo(MSIPATCHINFO *patch) DECLSPEC_HIDDEN
UINT WINAPI MsiGetFeatureStateW(MSIHANDLE hInstall, const WCHAR *szFeature, INSTALLSTATE *piInstalled, INSTALLSTATE *piAction)
int __cdecl s_remote_ProcessMessage(MSIHANDLE hinst, INSTALLMESSAGE message, struct wire_record *remote_rec)
#define ERROR_FILE_NOT_FOUND
BOOL WINAPI RemoveDirectoryW(IN LPCWSTR lpPathName)
LPWSTR msi_dup_property(MSIDATABASE *db, LPCWSTR prop)
UINT MSI_ViewClose(MSIQUERY *) DECLSPEC_HIDDEN
BOOL __cdecl s_remote_GetMode(MSIHANDLE hinst, MSIRUNMODE mode)
static const WCHAR nameW[]
MSIRECORD *WINAPIV MSI_QueryGetRecord(MSIDATABASE *db, LPCWSTR query,...) DECLSPEC_HIDDEN
UINT __cdecl s_remote_GetSourcePath(MSIHANDLE hinst, LPCWSTR folder, LPWSTR *value)
static MSIPACKAGE * msi_alloc_package(void)
UINT __cdecl s_remote_DoAction(MSIHANDLE hinst, LPCWSTR action)
UINT msi_download_file(LPCWSTR szUrl, LPWSTR filename)
UINT __cdecl s_remote_SetTargetPath(MSIHANDLE hinst, LPCWSTR folder, LPCWSTR value)
__WINE_SERVER_LIST_INLINE void list_remove(struct list *elem)
void dump_record(MSIRECORD *) DECLSPEC_HIDDEN
BOOL WINAPI GetUserNameW(LPWSTR lpszName, LPDWORD lpSize)
static INT internal_ui_handler(MSIPACKAGE *package, INSTALLMESSAGE eMessageType, MSIRECORD *record, LPCWSTR message)
#define ERROR_INSTALL_PACKAGE_INVALID
LPWSTR LastActionTemplate
_CONST_RETURN wchar_t *__cdecl wcschr(_In_z_ const wchar_t *_Str, wchar_t _Ch)
LPWSTR * script_actions[SCRIPT_MAX]
#define MSIERR_INFO_LOGGINGSTART
LONG WINAPI RegQueryValueExW(_In_ HKEY hkeyorg, _In_ LPCWSTR name, _In_ LPDWORD reserved, _In_ LPDWORD type, _In_ LPBYTE data, _In_ LPDWORD count)
int WINAPI MessageBoxW(_In_opt_ HWND, _In_opt_ LPCWSTR, _In_opt_ LPCWSTR, _In_ UINT)
BOOL msi_init_assembly_caches(MSIPACKAGE *package)
BOOL WINAPI CopyFileW(IN LPCWSTR lpExistingFileName, IN LPCWSTR lpNewFileName, IN BOOL bFailIfExists)
#define CSIDL_LOCAL_APPDATA
UINT WINAPI MsiSetComponentStateW(MSIHANDLE hInstall, LPCWSTR szComponent, INSTALLSTATE iState)
#define FILE_ATTRIBUTE_READONLY
LANGID WINAPI GetSystemDefaultLangID(void)
UINT msi_locate_product(LPCWSTR szProduct, MSIINSTALLCONTEXT *context)
UINT msi_create_empty_local_file(LPWSTR path, LPCWSTR suffix)
UINT __cdecl s_remote_SetFeatureState(MSIHANDLE hinst, LPCWSTR feature, INSTALLSTATE state)
UINT WINAPI MsiGetTargetPathW(MSIHANDLE hinst, const WCHAR *folder, WCHAR *buf, DWORD *sz)
#define MSIDBOPEN_TRANSACT
BOOL WINAPI GetUrlCacheEntryInfoW(LPCWSTR lpszUrl, LPINTERNET_CACHE_ENTRY_INFOW lpCacheEntryInfo, LPDWORD lpdwCacheEntryInfoBufferSize)
UINT WINAPI MsiOpenPackageW(LPCWSTR szPackage, MSIHANDLE *phPackage)
GLdouble GLdouble GLdouble GLdouble q
static UINT validate_package(MSIPACKAGE *package)
const GLuint GLenum const GLvoid * binary
#define INVALID_FILE_ATTRIBUTES
UINT msi_clone_properties(MSIDATABASE *db)
static void free_extension(MSIEXTENSION *ext)
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
INSTALLUI_HANDLERA gUIHandlerA
_In_opt_ PVOID _In_ ULONG _In_ PVOID context
struct tagLANGANDCODEPAGE LANGANDCODEPAGE
int msiobj_release(MSIOBJECTHDR *info)
#define PROCESSOR_ARCHITECTURE_AMD64
#define MSIERR_INSTALLERROR
static void MSI_FreePackage(MSIOBJECTHDR *arg)
BOOL WINAPI IsValidLocale(LCID lcid, DWORD flags)
static const struct @490 internal_errors[]
MSIRECORD * MSI_CreateRecord(UINT) DECLSPEC_HIDDEN
#define FILE_ATTRIBUTE_NORMAL
UINT WINAPI GetSystemWow64DirectoryW(OUT LPWSTR lpBuffer, IN UINT uSize)
#define CSIDL_COMMON_APPDATA
UINT WINAPI MsiSetInstallLevel(MSIHANDLE hInstall, int iInstallLevel)
static VOID set_installer_properties(MSIPACKAGE *package)
DWORD WINAPI GetFileVersionInfoSizeW(LPCWSTR filename, LPDWORD handle)
int WINAPI GetDeviceCaps(_In_opt_ HDC, _In_ int)
#define INSTALLUILEVEL_MASK
#define memcpy(s1, s2, n)
UINT MSI_OpenPackageW(LPCWSTR szPackage, DWORD dwOptions, MSIPACKAGE **pPackage)
#define ERROR_SHARING_VIOLATION
BOOL WINAPI UrlIsW(LPCWSTR pszUrl, URLIS Urlis)
MSIHANDLE __cdecl s_remote_GetActiveDatabase(MSIHANDLE hinst)
int _cdecl swprintf(const WCHAR *,...)
UINT msi_get_property(MSIDATABASE *db, LPCWSTR szName, LPWSTR szValueBuf, LPDWORD pchValueBuf)
UINT WINAPI MsiCloseHandle(MSIHANDLE handle)
static const WCHAR INSTALLPROPERTY_PRODUCTNAMEW[]
UINT __cdecl s_remote_GetFeatureState(MSIHANDLE hinst, LPCWSTR feature, INSTALLSTATE *installed, INSTALLSTATE *action)
INT MSI_ProcessMessageVerbatim(MSIPACKAGE *package, INSTALLMESSAGE eMessageType, MSIRECORD *record)
#define PROCESSOR_ARCHITECTURE_INTEL
struct list cabinet_streams
void custom_stop_server(HANDLE process, HANDLE pipe)
int MSI_RecordGetInteger(MSIRECORD *, UINT) DECLSPEC_HIDDEN
const WCHAR * msi_record_get_string(const MSIRECORD *, UINT, int *) DECLSPEC_HIDDEN
_Check_return_ _CRTIMP int __cdecl wcscmp(_In_z_ const wchar_t *_Str1, _In_z_ const wchar_t *_Str2)
struct list subscriptions
int script_actions_count[SCRIPT_MAX]
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
UINT msi_set_property(MSIDATABASE *db, const WCHAR *name, const WCHAR *value, int len)
static WCHAR * get_property(MSIDATABASE *db, const WCHAR *prop)
#define ERROR_PRODUCT_VERSION
static UINT set_user_sid_prop(MSIPACKAGE *package)
UINT WINAPI MsiSequenceW(MSIHANDLE hInstall, LPCWSTR szTable, INT iSequenceMode)
UINT WINAPI MsiOpenPackageExW(const WCHAR *szPackage, DWORD dwOptions, MSIHANDLE *phPackage)
static UINT parse_suminfo(MSISUMMARYINFO *si, MSIPACKAGE *package)
HLOCAL NTAPI LocalFree(HLOCAL hMem)
WCHAR * msi_dup_record_field(MSIRECORD *row, INT index) DECLSPEC_HIDDEN
UINT WINAPI MsiGetSourcePathW(MSIHANDLE hinst, const WCHAR *folder, WCHAR *buf, DWORD *sz)
UINT WINAPI MsiGetFeatureCostW(MSIHANDLE hInstall, const WCHAR *szFeature, MSICOSTTREE iCostTree, INSTALLSTATE iState, INT *piCost)
UINT WINAPI GetSystemDirectoryW(OUT LPWSTR lpBuffer, IN UINT uSize)
MSIHANDLE alloc_msihandle(MSIOBJECTHDR *obj)
WINE_DEFAULT_DEBUG_CHANNEL(msi)
UINT msi_record_set_string(MSIRECORD *, UINT, const WCHAR *, int) DECLSPEC_HIDDEN
UINT __cdecl s_remote_SetProperty(MSIHANDLE hinst, LPCWSTR property, LPCWSTR value)
LPWSTR msi_get_error_message(MSIDATABASE *db, int error)
#define MSIERR_ACTIONSTART
UINT __cdecl s_remote_SetComponentState(MSIHANDLE hinst, LPCWSTR component, INSTALLSTATE state)
WORD wProcessorArchitecture
BOOL WINAPI GetFileVersionInfoW(LPCWSTR filename, DWORD handle, DWORD datasize, LPVOID data)
#define VER_PLATFORM_WIN32_WINDOWS
static void free_feature(MSIFEATURE *feature)
HRESULT WINAPI SHGetFolderPathW(HWND hwndOwner, int nFolder, HANDLE hToken, DWORD dwFlags, LPWSTR pszPath)
UINT __cdecl s_remote_SetInstallLevel(MSIHANDLE hinst, int level)
LANGID WINAPI MsiGetLanguage(MSIHANDLE hInstall)
__WINE_SERVER_LIST_INLINE void list_init(struct list *list)
static void set_msi_assembly_prop(MSIPACKAGE *package)
static void * msi_alloc(size_t len) __WINE_ALLOC_SIZE(1)
LONG WINAPI RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)
UINT WINAPI MsiSetFeatureStateW(MSIHANDLE hInstall, LPCWSTR szFeature, INSTALLSTATE iState)
INT msi_suminfo_get_int32(MSISUMMARYINFO *si, UINT uiProperty) DECLSPEC_HIDDEN
static IOleDocumentView * view
UINT msi_set_original_database_property(MSIDATABASE *db, const WCHAR *package)
static UINT create_temp_property_table(MSIPACKAGE *package)
LANGID WINAPI GetUserDefaultLangID(void)
LPWSTR DefInprocHandler32
UINT action_progress_increment
BOOL NTAPI GlobalMemoryStatusEx(LPMEMORYSTATUSEX lpBuffer)
#define MSIERR_COMMONDATA
UINT __cdecl s_remote_GetFeatureCost(MSIHANDLE hinst, LPCWSTR feature, MSICOSTTREE cost_tree, INSTALLSTATE state, INT *cost)
static MSIRECORD * msi_get_property_row(MSIDATABASE *db, LPCWSTR name)
LPWSTR WINAPI lstrcatW(LPWSTR lpString1, LPCWSTR lpString2)
GLuint GLuint GLsizei GLenum type
UINT MSIREG_OpenUninstallKey(const WCHAR *, enum platform, HKEY *, BOOL) DECLSPEC_HIDDEN
#define GetExceptionCode()
void * msihandle2msiinfo(MSIHANDLE handle, UINT type)
BOOL WINAPI LookupAccountNameW(LPCWSTR lpSystemName, LPCWSTR lpAccountName, PSID Sid, LPDWORD cbSid, LPWSTR ReferencedDomainName, LPDWORD cchReferencedDomainName, PSID_NAME_USE peUse)
#define KEY_CREATE_SUB_KEY
static UINT set_installed_prop(MSIPACKAGE *package)
INSTALLSTATE WINAPI MsiQueryProductStateW(LPCWSTR szProduct)
static WCHAR * get_product_version(MSIDATABASE *db)
#define RegCloseKey(hKey)
static WCHAR * strdupAtoW(const char *str)
UINT msi_load_suminfo_properties(MSIPACKAGE *package) DECLSPEC_HIDDEN
UINT msi_get_string_table_codepage(const string_table *st) DECLSPEC_HIDDEN
static HRESULT read_stream_data(nsChannelBSC *This, IStream *stream)
#define TIME_NOTIMEMARKER
MSIHANDLE alloc_msi_remote_handle(MSIHANDLE remote)
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 VerQueryValueW(LPCVOID pBlock, LPCWSTR lpSubBlock, LPVOID *lplpBuffer, PUINT puLen)
#define HKEY_LOCAL_MACHINE
#define ERROR_INSUFFICIENT_BUFFER
UINT MSI_DatabaseOpenViewW(MSIDATABASE *, LPCWSTR, MSIQUERY **) DECLSPEC_HIDDEN
HRESULT WINAPI URLDownloadToCacheFileW(LPUNKNOWN lpUnkCaller, LPCWSTR szURL, LPWSTR szFileName, DWORD dwBufLength, DWORD dwReserved, LPBINDSTATUSCALLBACK pBSC)
static WCHAR user_name[UNLEN+1]