53 if (szAction && !szwAction)
74 package = msihandle2msiinfo( hInstall, MSIHANDLETYPE_PACKAGE );
84 ret = remote_DoAction(remote, szAction);
112 if (szTable && !szwTable)
133 package = msihandle2msiinfo( hInstall, MSIHANDLETYPE_PACKAGE );
143 ret = remote_Sequence(remote, szTable, iSequenceMode);
162 if (awbuf->
str.
w && !sz)
172 if (*sz &&
len >= *sz)
173 awbuf->
str.
w[*sz - 1] = 0;
180 if (awbuf->
str.
a && *sz && lenA >= *sz)
181 awbuf->
str.
a[*sz - 1] = 0;
184 if (awbuf->
str.
w &&
len >= *sz)
202 if (
buf && lenA >= *sz)
204 if (*sz)
buf[*sz - 1] = 0;
207 if (remote && lenA >= *sz)
225 if (*sz)
buf[*sz - 1] = 0;
237 if (!
folder->ResolvedTarget)
246 return folder->ResolvedTarget;
267 package = msihandle2msiinfo(hinst, MSIHANDLETYPE_PACKAGE);
281 r = remote_GetTargetPath(remote, folderW, &
path);
322 package = msihandle2msiinfo(hinst, MSIHANDLETYPE_PACKAGE);
375 if (!
wcscmp(
name,
L"TARGETDIR" ) && !
f->ResolvedSource)
380 if (
f->ResolvedSource)
386 if (!
f->Parent)
return path;
423 package = msihandle2msiinfo(hinst, MSIHANDLETYPE_PACKAGE);
437 r = remote_GetSourcePath(remote, folderW, &
path);
479 package = msihandle2msiinfo(hinst, MSIHANDLETYPE_PACKAGE);
525 if ( !szFolder || !szFolderPath )
530 if (!szwFolder || !szwFolderPath)
552 folder->ResolvedTarget = target_path;
608 if ( !szFolder || !szFolderPath )
611 package = msihandle2msiinfo(hInstall, MSIHANDLETYPE_PACKAGE);
621 ret = remote_SetTargetPath(remote, szFolder, szFolderPath);
675 TRACE(
"%lu, %d\n", hInstall, iRunMode );
677 package = msihandle2msiinfo(hInstall, MSIHANDLETYPE_PACKAGE);
687 r = remote_GetMode(remote, iRunMode);
701 FIXME(
"no support for administrative installs\n");
705 FIXME(
"no support for advertised installs\n");
752 FIXME(
"unimplemented run mode: %d\n", iRunMode);
768 TRACE(
"%lu, %d, %d\n", hInstall, iRunMode, fState );
770 package = msihandle2msiinfo( hInstall, MSIHANDLETYPE_PACKAGE );
780 r = remote_SetMode(remote, iRunMode, fState);
838 newstate =
feature->ActionRequest;
845 if (!component->
Enabled)
continue;
847 TRACE(
"Modifying (%d): Component %s (Installed %d, Action %d, Request %d)\n",
863 component->
Action = newstate;
909 TRACE(
"Result (%d): Component %s (Installed %d, Action %d, Request %d)\n",
930 feature->ActionRequest = iState;
958 package = msihandle2msiinfo(hInstall, MSIHANDLETYPE_PACKAGE);
968 rc = remote_SetFeatureState(remote, szFeature, iState);
1032 if (!costing || !
wcscmp( costing,
L"1" ))
1075 *piInstalled =
feature->Installed;
1078 *piAction =
feature->ActionRequest;
1094 TRACE(
"%lu, %s, %p, %p\n", hInstall,
debugstr_w(szFeature), piInstalled, piAction );
1099 package = msihandle2msiinfo(hInstall, MSIHANDLETYPE_PACKAGE);
1109 ret = remote_GetFeatureState(remote, szFeature, piInstalled, piAction);
1186 feature_parent =
parent->Feature_Parent;
1196 WARN(
"unhandled cost tree %u\n",
tree);
1214 TRACE(
"%lu, %s, %d, %d, %p\n", hInstall,
debugstr_w(szFeature), iCostTree, iState, piCost );
1219 package = msihandle2msiinfo(hInstall, MSIHANDLETYPE_PACKAGE);
1229 ret = remote_GetFeatureCost(remote, szFeature, iCostTree, iState, piCost);
1266 TRACE(
"%lu, %s, %p, %p, %p, %p, %p\n",
handle,
debugstr_a(
feature), attrs,
title,
1267 title_len,
help, help_len );
1320 if (*title_len <=
len)
1336 if (*help_len <=
len)
1360 TRACE(
"%lu, %s, %p, %p, %p, %p, %p\n",
handle,
debugstr_w(
feature), attrs,
title,
1361 title_len,
help, help_len );
1434 piInstalled, piAction);
1451 *piAction = comp->
Action;
1472 package = msihandle2msiinfo(hInstall, MSIHANDLETYPE_PACKAGE);
1482 ret = remote_SetComponentState(remote, szComponent, iState);
1507 TRACE(
"%lu, %s, %p, %p\n", hInstall,
debugstr_w(szComponent), piInstalled, piAction );
1512 package = msihandle2msiinfo(hInstall, MSIHANDLETYPE_PACKAGE);
1522 ret = remote_GetComponentState(remote, szComponent, piInstalled, piAction);
1546 package = msihandle2msiinfo(hInstall, MSIHANDLETYPE_PACKAGE);
1556 langid = remote_GetLanguage(remote);
1578 TRACE(
"%p %i\n", package, iInstallLevel);
1580 if (iInstallLevel > 32767)
1583 if (iInstallLevel < 1)
1602 TRACE(
"%lu %d\n", hInstall, iInstallLevel );
1604 package = msihandle2msiinfo(hInstall, MSIHANDLETYPE_PACKAGE);
1614 r = remote_SetInstallLevel(remote, iInstallLevel);
1638 FIXME(
"%lu, %s, %p stub returning %lu\n", hInstall,
debugstr_w(szFeature), pInstallState,
1639 pInstallState ? *pInstallState : 0 );
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
static WCHAR * strdupW(const WCHAR *src)
static WCHAR * strdupAtoW(const char *str)
#define ERROR_INVALID_PARAMETER
#define INVALID_HANDLE_VALUE
#define ERROR_INVALID_HANDLE
#define WideCharToMultiByte
#define ERROR_ACCESS_DENIED
UINT msi_load_all_components(MSIPACKAGE *package)
BOOL msi_is_global_assembly(MSICOMPONENT *comp)
UINT msi_set_sourcedir_props(MSIPACKAGE *package, BOOL replace)
MSIFOLDER * msi_get_loaded_folder(MSIPACKAGE *package, const WCHAR *dir)
UINT MSI_Sequence(MSIPACKAGE *package, LPCWSTR table)
WCHAR * msi_normalize_path(const WCHAR *in)
UINT MSI_SetFeatureStates(MSIPACKAGE *package)
MSIFEATURE * msi_get_loaded_feature(MSIPACKAGE *package, const WCHAR *Feature)
UINT ACTION_PerformAction(MSIPACKAGE *package, const WCHAR *action)
MSICOMPONENT * msi_get_loaded_component(MSIPACKAGE *package, const WCHAR *Component)
UINT msi_load_all_features(MSIPACKAGE *package)
void msi_resolve_target_folder(MSIPACKAGE *package, const WCHAR *name, BOOL load_prop)
WCHAR *WINAPIV msi_build_directory_name(DWORD count,...)
LONG WINAPI rpc_filter(EXCEPTION_POINTERS *eptr)
DWORD msi_get_file_attributes(MSIPACKAGE *package, const WCHAR *path)
MSIHANDLE msi_get_remote(MSIHANDLE handle)
int msiobj_release(MSIOBJECTHDR *info)
void * msihandle2msiinfo(MSIHANDLE handle, UINT type)
UINT WINAPI MsiGetSourcePathA(MSIHANDLE hinst, const char *folder, char *buf, DWORD *sz)
UINT WINAPI MsiSetFeatureAttributesA(MSIHANDLE handle, LPCSTR feature, DWORD attrs)
static DWORD unmap_feature_attributes(DWORD attrs)
UINT msi_strncpyW(const WCHAR *str, int len, WCHAR *buf, DWORD *sz)
UINT MSI_SetFeatureStateW(MSIPACKAGE *package, LPCWSTR szFeature, INSTALLSTATE iState)
WCHAR * msi_resolve_source_folder(MSIPACKAGE *package, const WCHAR *name, MSIFOLDER **folder)
static UINT MSI_GetFeatureInfo(MSIPACKAGE *package, LPCWSTR name, LPDWORD attrs, LPWSTR title, LPDWORD title_len, LPWSTR help, LPDWORD help_len)
UINT WINAPI MsiDoActionW(MSIHANDLE hInstall, LPCWSTR szAction)
UINT WINAPI MsiGetFeatureValidStatesW(MSIHANDLE hInstall, const WCHAR *szFeature, DWORD *pInstallState)
UINT WINAPI MsiGetComponentStateA(MSIHANDLE hInstall, LPCSTR szComponent, INSTALLSTATE *piInstalled, INSTALLSTATE *piAction)
UINT WINAPI MsiSetComponentStateW(MSIHANDLE hInstall, LPCWSTR szComponent, INSTALLSTATE iState)
static void set_target_path(MSIPACKAGE *package, MSIFOLDER *folder, const WCHAR *path)
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)
static INT feature_cost(MSIFEATURE *feature)
UINT WINAPI MsiSequenceW(MSIHANDLE hInstall, LPCWSTR szTable, INT iSequenceMode)
static UINT MSI_SetComponentStateW(MSIPACKAGE *package, LPCWSTR szComponent, INSTALLSTATE iState)
UINT msi_strncpyWtoA(const WCHAR *str, int lenW, char *buf, DWORD *sz, BOOL remote)
const WCHAR * msi_get_target_folder(MSIPACKAGE *package, const WCHAR *name)
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 MsiDoActionA(MSIHANDLE hInstall, LPCSTR szAction)
UINT WINAPI MsiGetTargetPathA(MSIHANDLE hinst, const char *folder, char *buf, DWORD *sz)
UINT WINAPI MsiSequenceA(MSIHANDLE hInstall, LPCSTR szTable, INT iSequenceMode)
UINT MSI_SetTargetPathW(MSIPACKAGE *package, LPCWSTR szFolder, LPCWSTR szFolderPath)
UINT WINAPI MsiGetSourcePathW(MSIHANDLE hinst, const WCHAR *folder, WCHAR *buf, DWORD *sz)
UINT MSI_GetComponentStateW(MSIPACKAGE *package, LPCWSTR szComponent, INSTALLSTATE *piInstalled, INSTALLSTATE *piAction)
UINT WINAPI MsiSetTargetPathW(MSIHANDLE hInstall, LPCWSTR szFolder, LPCWSTR szFolderPath)
void ACTION_UpdateComponentStates(MSIPACKAGE *package, MSIFEATURE *feature)
UINT WINAPI MsiGetFeatureInfoA(MSIHANDLE handle, const char *feature, DWORD *attrs, char *title, DWORD *title_len, char *help, DWORD *help_len)
UINT WINAPI MsiGetComponentStateW(MSIHANDLE hInstall, const WCHAR *szComponent, INSTALLSTATE *piInstalled, INSTALLSTATE *piAction)
static WCHAR * get_source_root(MSIPACKAGE *package)
UINT WINAPI MsiSetFeatureStateA(MSIHANDLE hInstall, LPCSTR szFeature, INSTALLSTATE iState)
UINT MSI_GetFeatureCost(MSIPACKAGE *package, MSIFEATURE *feature, MSICOSTTREE tree, INSTALLSTATE state, LPINT cost)
UINT WINAPI MsiSetTargetPathA(MSIHANDLE hInstall, LPCSTR szFolder, LPCSTR szFolderPath)
UINT WINAPI MsiSetMode(MSIHANDLE hInstall, MSIRUNMODE iRunMode, BOOL fState)
UINT MSI_GetFeatureStateW(MSIPACKAGE *package, LPCWSTR szFeature, INSTALLSTATE *piInstalled, INSTALLSTATE *piAction)
UINT WINAPI MsiGetFeatureInfoW(MSIHANDLE handle, const WCHAR *feature, DWORD *attrs, WCHAR *title, DWORD *title_len, WCHAR *help, DWORD *help_len)
UINT WINAPI MsiSetFeatureAttributesW(MSIHANDLE handle, LPCWSTR name, DWORD attrs)
UINT WINAPI MsiGetFeatureCostA(MSIHANDLE hInstall, LPCSTR szFeature, MSICOSTTREE iCostTree, INSTALLSTATE iState, LPINT piCost)
UINT WINAPI MsiGetFeatureValidStatesA(MSIHANDLE hInstall, const char *szFeature, DWORD *pInstallState)
UINT MSI_SetInstallLevel(MSIPACKAGE *package, int iInstallLevel)
UINT WINAPI MsiGetFeatureStateA(MSIHANDLE hInstall, LPCSTR szFeature, INSTALLSTATE *piInstalled, INSTALLSTATE *piAction)
UINT WINAPI MsiSetComponentStateA(MSIHANDLE hInstall, LPCSTR szComponent, INSTALLSTATE iState)
static DWORD map_feature_attributes(DWORD attrs)
UINT msi_strcpy_to_awstring(const WCHAR *str, int len, awstring *awbuf, DWORD *sz)
BOOL WINAPI MsiGetMode(MSIHANDLE hInstall, MSIRUNMODE iRunMode)
GLdouble GLdouble GLdouble r
GLenum GLuint GLenum GLsizei const GLchar * buf
static const WCHAR titleW[]
static const WCHAR helpW[]
#define memcpy(s1, s2, n)
INTERNETFEATURELIST feature
@ INSTALLFEATUREATTRIBUTE_FAVORSOURCE
@ INSTALLFEATUREATTRIBUTE_NOUNSUPPORTEDADVERTISE
@ INSTALLFEATUREATTRIBUTE_FAVORLOCAL
@ INSTALLFEATUREATTRIBUTE_DISALLOWADVERTISE
@ INSTALLFEATUREATTRIBUTE_FAVORADVERTISE
@ INSTALLFEATUREATTRIBUTE_FOLLOWPARENT
@ INSTALLSTATE_ADVERTISED
@ msidbComponentAttributesOptional
@ msidbComponentAttributesSourceOnly
@ msidbFeatureAttributesFavorAdvertise
@ msidbFeatureAttributesFollowParent
@ msidbFeatureAttributesFavorSource
@ msidbFeatureAttributesDisallowAdvertise
@ msidbFeatureAttributesNoUnsupportedAdvertise
@ msidbFeatureAttributesFavorLocal
@ msidbSumInfoSourceTypeSFN
@ msidbSumInfoSourceTypeCompressed
UINT msi_set_property(MSIDATABASE *, const WCHAR *, const WCHAR *, int) DECLSPEC_HIDDEN
static void msi_free(void *mem)
static void * msi_alloc(size_t len) __WINE_ALLOC_SIZE(1)
int msi_get_property_int(MSIDATABASE *package, LPCWSTR prop, int def) DECLSPEC_HIDDEN
LPWSTR msi_dup_property(MSIDATABASE *db, LPCWSTR prop) DECLSPEC_HIDDEN
#define MSIHANDLETYPE_PACKAGE
@ MSIRUNMODE_ROLLBACKENABLED
#define FILE_ATTRIBUTE_READONLY
#define FILE_ATTRIBUTE_OFFLINE
DWORD WINAPI GetVersion()
_Check_return_ _CRTIMP int __cdecl wcscmp(_In_z_ const wchar_t *_Str1, _In_z_ const wchar_t *_Str2)
#define LIST_FOR_EACH_ENTRY(elem, list, type, field)
#define GetExceptionCode()
unsigned int hasLocalFeature
INSTALLSTATE ActionRequest
unsigned char commit_action_running
unsigned char rollback_action_running
unsigned char scheduled_action_running
unsigned char need_reboot_now
unsigned char need_reboot_at_end
#define INVALID_FILE_ATTRIBUTES
#define ERROR_UNKNOWN_COMPONENT
#define ERROR_UNKNOWN_FEATURE
#define ERROR_FUNCTION_FAILED