diff --git a/dlls/msi/msi.c b/dlls/msi/msi.c index 72f6966..94a23a9 100644 --- a/dlls/msi/msi.c +++ b/dlls/msi/msi.c @@ -3021,3 +3021,13 @@ UINT WINAPI MsiIsProductElevatedA( LPCSTR szProduct, BOOL *pfElevated ) *pfElevated = TRUE; return ERROR_SUCCESS; } + +/*********************************************************************** + * MsiDetermineApplicablePatchesW [MSI.@] + */ +UINT WINAPI MsiDetermineApplicablePatchesW( LPCWSTR szProductPackagePath, + DWORD cPatchInfo, PMSIPATCHSEQUENCEINFOW pPatchInfo) +{ + FIXME("%s %d %p\n", debugstr_w( szProductPackagePath ), cPatchInfo, pPatchInfo); + return ERROR_CALL_NOT_IMPLEMENTED; +} diff --git a/dlls/msi/msi.spec b/dlls/msi/msi.spec index e3a4a63..5fb1fbe 100644 --- a/dlls/msi/msi.spec +++ b/dlls/msi/msi.spec @@ -271,7 +271,7 @@ 275 stub MsiSourceListClearMediaDiskA 276 stub MsiSourceListClearMediaDiskW 277 stub MsiDetermineApplicablePatchesA -278 stub MsiDetermineApplicablePatchesW +278 stdcall MsiDetermineApplicablePatchesW(wstr long ptr) 279 stub MsiMessageBoxExA 280 stub MsiMessageBoxExW 281 stub MsiSetExternalUIRecord diff --git a/include/msi.h b/include/msi.h index f3d4445..0987e1c 100644 --- a/include/msi.h +++ b/include/msi.h @@ -196,11 +196,37 @@ typedef enum tagMSICODE MSICODE_PATCH = 0x40000000L } MSICODE; +typedef enum tagMSIPATCHDATATYPE +{ + MSIPATCH_DATATYPE_PATCHFILE = 0, + MSIPATCH_DATATYPE_XMLPATH = 1, + MSIPATCH_DATATYPE_XMLBLOB =2, +} MSIPATCHDATATYPE, *PMSIPATCHDATATYPE; + typedef struct _MSIFILEHASHINFO { ULONG dwFileHashInfoSize; ULONG dwData[4]; } MSIFILEHASHINFO, *PMSIFILEHASHINFO; +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; + +DECL_WINELIB_TYPE_AW(MSIPATCHSEQUENCEINFO) +DECL_WINELIB_TYPE_AW(PMSIPATCHSEQUENCEINFO) + #define MAX_FEATURE_CHARS 38 /* Strings defined in msi.h */ @@ -597,6 +623,10 @@ UINT WINAPI MsiIsProductElevatedA(LPCSTR, BOOL *); UINT WINAPI MsiIsProductElevatedW(LPCWSTR, BOOL *); #define MsiIsProductElevated WINELIB_NAME_AW(MsiIsProductElevated) +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);