diff --git a/dlls/msi/msi.c b/dlls/msi/msi.c index a35f460e1a8..c23341155ba 100644 --- a/dlls/msi/msi.c +++ b/dlls/msi/msi.c @@ -372,6 +372,24 @@ done: return r; } +UINT WINAPI MsiDetermineApplicablePatchesA(LPCSTR szProductPackagePath, + DWORD cPatchInfo, PMSIPATCHSEQUENCEINFOA pPatchInfo) +{ + FIXME("(%s, %d, %p): stub!\n", debugstr_a(szProductPackagePath), + cPatchInfo, pPatchInfo); + + return ERROR_CALL_NOT_IMPLEMENTED; +} + +UINT WINAPI MsiDetermineApplicablePatchesW(LPCWSTR szProductPackagePath, + DWORD cPatchInfo, PMSIPATCHSEQUENCEINFOW pPatchInfo) +{ + FIXME("(%s, %d, %p): stub!\n", debugstr_w(szProductPackagePath), + cPatchInfo, pPatchInfo); + + return ERROR_CALL_NOT_IMPLEMENTED; +} + static UINT msi_open_package(LPCWSTR product, MSIINSTALLCONTEXT context, MSIPACKAGE **package) { diff --git a/dlls/msi/msi.spec b/dlls/msi/msi.spec index 925cfde5e5f..db7aa902e1c 100644 --- a/dlls/msi/msi.spec +++ b/dlls/msi/msi.spec @@ -270,8 +270,8 @@ 274 stdcall MsiSourceListAddMediaDiskW(wstr wstr long long long wstr wstr) 275 stub MsiSourceListClearMediaDiskA 276 stub MsiSourceListClearMediaDiskW -277 stub MsiDetermineApplicablePatchesA -278 stub MsiDetermineApplicablePatchesW +277 stdcall MsiDetermineApplicablePatchesA(str long ptr) +278 stdcall MsiDetermineApplicablePatchesW(wstr long ptr) 279 stub MsiMessageBoxExA 280 stub MsiMessageBoxExW 281 stdcall MsiSetExternalUIRecord(ptr long ptr ptr) diff --git a/include/msi.h b/include/msi.h index cf125efbab6..0def6cb5acc 100644 --- a/include/msi.h +++ b/include/msi.h @@ -201,6 +201,29 @@ typedef struct _MSIFILEHASHINFO { ULONG dwData[4]; } MSIFILEHASHINFO, *PMSIFILEHASHINFO; +typedef enum tagMSIPATCHDATATYPE +{ + MSIPATCH_DATATYPE_PATCHFILE = 0, + MSIPATCH_DATATYPE_XMLPATH = 1, + MSIPATCH_DATATYPE_XMLBLOB = 2, +} MSIPATCHDATATYPE, *PMSIPATCHDATATYPE; + +typedef struct tagMSIPATCHSEQUENCEINFOA +{ + LPCSTR szPatchData; + MSIPATCHDATATYPE ePatchDataType; + DWORD dwOrder; + UINT uStatus; +} MSIPATCHSEQUENCEINFOA, *PMSIPATCHSEQUENCEINFOA; + +typedef struct tagMSIPATCHSEQUENCEINFOW +{ + LPCWSTR szPatchData; + MSIPATCHDATATYPE ePatchDataType; + DWORD dwOrder; + UINT uStatus; +} MSIPATCHSEQUENCEINFOW, *PMSIPATCHSEQUENCEINFOW; + #define MAX_FEATURE_CHARS 38 /* Strings defined in msi.h */ @@ -607,6 +630,10 @@ UINT WINAPI MsiInstallMissingComponentA(LPCSTR, LPCSTR, INSTALLSTATE); UINT WINAPI MsiInstallMissingComponentW(LPCWSTR, LPCWSTR, INSTALLSTATE); #define MsiInstallMissingComponent WINELIB_NAME_AW(MsiInstallMissingComponent) +UINT WINAPI MsiDetermineApplicablePatchesA(LPCSTR, DWORD, PMSIPATCHSEQUENCEINFOA); +UINT WINAPI MsiDetermineApplicablePatchesW(LPCWSTR, DWORD, PMSIPATCHSEQUENCEINFOW); +#define MsiDetermineApplicablePatches WINELIB_NAME_AW(MsiDetermineApplicablePatches) + /* Non Unicode */ UINT WINAPI MsiCloseHandle(MSIHANDLE); UINT WINAPI MsiCloseAllHandles(void);