Add source.c to start handling the various MsiSourceList apis used in
v3 of MSI, and now internally.
Update files.c to use the MsiSourceList apis to make sure our
SourceList keys in the registry are included and correct.
diff --git a/include/msi.h b/include/msi.h
index 1c12782..dc4aa91 100644
--- a/include/msi.h
+++ b/include/msi.h
@@ -148,6 +148,31 @@
INSTALLTYPE_NETWORK_IMAGE = 1
} INSTALLTYPE;
+typedef enum tagMSIINSTALLCONTEXT
+{
+ MSIINSTALLCONTEXT_FIRSTVISIBLE = 0,
+ MSIINSTALLCONTEXT_NONE = 0,
+ MSIINSTALLCONTEXT_USERMANAGED = 1,
+ MSIINSTALLCONTEXT_USERUNMANAGED = 2,
+ MSIINSTALLCONTEXT_MACHINE = 4,
+ MSIINSTALLCONTEXT_ALL = (MSIINSTALLCONTEXT_USERMANAGED | MSIINSTALLCONTEXT_USERUNMANAGED | MSIINSTALLCONTEXT_MACHINE),
+ MSIINSTALLCONTEXT_ALLUSERMANAGED= 8,
+} MSIINSTALLCONTEXT;
+
+typedef enum tagMSISOURCETYPE
+{
+ MSISOURCETYPE_UNKNOWN = 0x00000000L,
+ MSISOURCETYPE_NETWORK = 0x00000001L,
+ MSISOURCETYPE_URL = 0x00000002L,
+ MSISOURCETYPE_MEDIA = 0x00000004
+} MSISOURCETYPE;
+
+typedef enum tagMSICODE
+{
+ MSICODE_PRODUCT = 0x00000000L,
+ MSICODE_PATCH = 0x40000000L
+} MSICODE;
+
#define MAX_FEATURE_CHARS 38
typedef INT (CALLBACK *INSTALLUI_HANDLERA)(LPVOID, UINT, LPCSTR);
@@ -326,6 +351,19 @@
UINT WINAPI MsiCloseAllHandles(void);
INSTALLUILEVEL WINAPI MsiSetInternalUI(INSTALLUILEVEL, HWND*);
+UINT WINAPI MsiSourceListGetInfoA(LPCSTR, LPCSTR, MSIINSTALLCONTEXT, DWORD, LPCSTR, LPSTR, LPDWORD);
+UINT WINAPI MsiSourceListGetInfoW(LPCWSTR, LPCWSTR, MSIINSTALLCONTEXT, DWORD, LPCWSTR, LPWSTR, LPDWORD);
+#define MsiSourceListGetInfo WINELIB_NAME_AW(MsiSourceListGetInfo)
+UINT WINAPI MsiSourceListSetInfoA(LPCSTR, LPCSTR, MSIINSTALLCONTEXT, DWORD, LPCSTR, LPCSTR);
+UINT WINAPI MsiSourceListSetInfoW(LPCWSTR, LPCWSTR, MSIINSTALLCONTEXT, DWORD, LPCWSTR, LPCWSTR);
+#define MsiSourceListSetInfo WINELIB_NAME_AW(MsiSourceListSetInfo)
+UINT WINAPI MsiSourceListAddSourceExA(LPCSTR, LPCSTR, MSIINSTALLCONTEXT, DWORD, LPCSTR, DWORD);
+UINT WINAPI MsiSourceListAddSourceExW(LPCWSTR, LPCWSTR, MSIINSTALLCONTEXT, DWORD, LPCWSTR, DWORD);
+#define MsiSourceListAddSourceEx WINELIB_NAME_AW(MsiSourceListAddSourceEx)
+UINT WINAPI MsiSourceListAddMediaDiskA(LPCSTR, LPCSTR, MSIINSTALLCONTEXT, DWORD, DWORD, LPCSTR, LPCSTR);
+UINT WINAPI MsiSourceListAddMediaDiskW(LPCWSTR, LPCWSTR, MSIINSTALLCONTEXT, DWORD, DWORD, LPCWSTR, LPCWSTR);
+#define MsiSourceListAddMediaDisk WINELIB_NAME_AW(MsiSourceListAddMediaDisk)
+
#ifdef __cplusplus
}
#endif