msi: msi.h header string additions

Aric Stewart aric at codeweavers.com
Fri Jul 8 07:46:38 CDT 2005


Add the string constants located in msi.h and make use of them in 
files.c and source.c
also make sure the structs and functions headers for source.c exist.
All this is for V3 of MSI.
-------------- next part --------------
Index: include/msi.h
===================================================================
RCS file: /home/wine/wine/include/msi.h,v
retrieving revision 1.23
diff -u -r1.23 msi.h
--- include/msi.h	30 May 2005 11:12:24 -0000	1.23
+++ include/msi.h	8 Jul 2005 12:43:09 -0000
@@ -148,8 +148,229 @@
     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
 
+/* Strings defined in msi.h */
+/* Advertised Information */
+
+static const WCHAR INSTALLPROPERTY_PACKAGENAMEstringW[] = {'P','a','c','k','a','g','e','N','a','m','e',0};
+#define INSTALLPROPERTY_PACKAGENAMEA "PackageName"
+#define INSTALLPROPERTY_PACKAGENAMEW WINELIB_NAME_AW(INSTALLPROPERTY_PACKAGENAMEstring)
+#define INSTALLPROPERTY_PACKAGENAME WINELIB_NAME_AW(INSTALLPROPERTY_PACKAGENAME)
+
+static const WCHAR INSTALLPROPERTY_TRANSFORMSstringW[] = {'T','r','a','n','s','f','o','r','m','s',0};
+#define INSTALLPROPERTY_TRANSFORMSA "Transforms"
+#define INSTALLPROPERTY_TRANSFORMSW WINELIB_NAME_AW(INSTALLPROPERTY_TRANSFORMSstring)
+#define INSTALLPROPERTY_TRANSFORMS WINELIB_NAME_AW(INSTALLPROPERTY_TRANSFORMS)
+
+static const WCHAR INSTALLPROPERTY_LANGUAGEstringW[] = {'L','a','n','g','u','a','g','e',0};
+#define INSTALLPROPERTY_LANGUAGEA "Language"
+#define INSTALLPROPERTY_LANGUAGEW WINELIB_NAME_AW(INSTALLPROPERTY_LANGUAGEstring)
+#define INSTALLPROPERTY_LANGUAGE WINELIB_NAME_AW(INSTALLPROPERTY_LANGUAGE)
+
+static const WCHAR INSTALLPROPERTY_PRODUCTNAMEstringW[] = {'P','r','o','d','u','c','t','N','a','m','e',0};
+#define INSTALLPROPERTY_PRODUCTNAMEA "ProductName"
+#define INSTALLPROPERTY_PRODUCTNAMEW WINELIB_NAME_AW(INSTALLPROPERTY_PRODUCTNAMEstring)
+#define INSTALLPROPERTY_PRODUCTNAME WINELIB_NAME_AW(INSTALLPROPERTY_PRODUCTNAME)
+
+static const WCHAR INSTALLPROPERTY_ASSIGNMENTTYPEstringW[] = {'A','s','s','i','g','n','m','e','n','t','T','y','p','e',0};
+#define INSTALLPROPERTY_ASSIGNMENTTYPEA "AssignmentType"
+#define INSTALLPROPERTY_ASSIGNMENTTYPEW WINELIB_NAME_AW(INSTALLPROPERTY_ASSIGNMENTTYPEstring)
+#define INSTALLPROPERTY_ASSIGNMENTTYPE WINELIB_NAME_AW(INSTALLPROPERTY_ASSIGNMENTTYPE)
+
+static const WCHAR INSTALLPROPERTY_PACKAGECODEstringW[] = {'P','a','c','k','a','g','e','C','o','d','e',0};
+#define INSTALLPROPERTY_PACKAGECODEA "PackageCode"
+#define INSTALLPROPERTY_PACKAGECODEW WINELIB_NAME_AW(INSTALLPROPERTY_PACKAGECODEstring)
+#define INSTALLPROPERTY_PACKAGECODE WINELIB_NAME_AW(INSTALLPROPERTY_PACKAGECODE)
+
+static const WCHAR INSTALLPROPERTY_VERSIONstringW[]= {'V','e','r','s','i','o','n',0};
+#define INSTALLPROPERTY_VERSIONA "Version"
+#define INSTALLPROPERTY_VERSIONW WINELIB_NAME_AW(INSTALLPROPERTY_VERSIONstring)
+#define INSTALLPROPERTY_VERSION WINELIB_NAME_AW(INSTALLPROPERTY_VERSION)
+
+/* MSI version 1.1 and above */
+
+static const WCHAR INSTALLPROPERTY_PRODUCTICONstringW[]  = {'P','r','o','d','u','c','t','I','c','o','n',0};
+#define INSTALLPROPERTY_PRODUCTICONA "ProductIcon"
+#define INSTALLPROPERTY_PRODUCTICONW WINELIB_NAME_AW(INSTALLPROPERTY_PRODUCTICONstring)
+#define INSTALLPROPERTY_PRODUCTICON WINELIB_NAME_AW(INSTALLPROPERTY_PRODUCTICON)
+
+/* MSI version 1.5 and above */
+static const WCHAR INSTALLPROPERTY_INSTANCETYPEstringW[] = {'I','n','s','t','a','n','c','e','T','y','p','e',0};
+#define INSTALLPROPERTY_INSTANCETYPEA "InstanceType"
+#define INSTALLPROPERTY_INSTANCETYPEW WINELIB_NAME_AW(INSTALLPROPERTY_INSTANCETYPEstring)
+#define INSTALLPROPERTY_INSTANCETYPE WINELIB_NAME_AW(INSTALLPROPERTY_INSTANCETYPE)
+
+/* MSI version 3 and above */
+static const WCHAR INSTALLPROPERTY_AUTHORIZED_LUA_APPstringW[] = {'A','u','t','h','o','r','i','z','e','d','L','U','A','A','p','p',0};
+#define INSTALLPROPERTY_AUTHORIZED_LUA_APPA "AuthorizedLUAApp"
+#define INSTALLPROPERTY_AUTHORIZED_LUA_APPW WINELIB_NAME_AW(INSTALLPROPERTY_AUTHORIZED_LUA_APPstring)
+#define INSTALLPROPERTY_AUTHORIZED_LUA_APP WINELIB_NAME_AW(INSTALLPROPERTY_AUTHORIZED_LUA_APP)
+
+
+/* Installed Information */
+static const WCHAR INSTALLPROPERTY_INSTALLEDPRODUCTNAMEstringW[] = {'I','n','s','t','a','l','l','e','d','P','r','o','d','u','c','t','N','a','m','e',0};
+#define INSTALLPROPERTY_INSTALLEDPRODUCTNAMEA "InstalledProductName"
+#define INSTALLPROPERTY_INSTALLEDPRODUCTNAMEW WINELIB_NAME_AW(INSTALLPROPERTY_INSTALLEDPRODUCTNAMEstring)
+#define INSTALLPROPERTY_INSTALLEDPRODUCTNAME WINELIB_NAME_AW(INSTALLPROPERTY_INSTALLEDPRODUCTNAME)
+
+static const WCHAR INSTALLPROPERTY_VERSIONSTRINGstringW[] = {'V','e','r','s','i','o','n','S','t','r','i','n','g',0};
+#define INSTALLPROPERTY_VERSIONSTRINGA "VersionString"
+#define INSTALLPROPERTY_VERSIONSTRINGW WINELIB_NAME_AW(INSTALLPROPERTY_VERSIONSTRINGstring)
+#define INSTALLPROPERTY_VERSIONSTRING WINELIB_NAME_AW(INSTALLPROPERTY_VERSIONSTRING)
+
+static const WCHAR INSTALLPROPERTY_HELPLINKstringW[] = {'H','e','l','p','L','i','n','k',0};
+#define INSTALLPROPERTY_HELPLINKA "HelpLink"
+#define INSTALLPROPERTY_HELPLINKW WINELIB_NAME_AW(INSTALLPROPERTY_HELPLINKstring)
+#define INSTALLPROPERTY_HELPLINK WINELIB_NAME_AW(INSTALLPROPERTY_HELPLINK)
+
+static const WCHAR INSTALLPROPERTY_HELPTELEPHONEstringW[] = {'H','e','l','p','T','e','l','e','p','h','o','n','e',0};
+#define INSTALLPROPERTY_HELPTELEPHONEA "HelpTelephone"
+#define INSTALLPROPERTY_HELPTELEPHONEW WINELIB_NAME_AW(INSTALLPROPERTY_HELPTELEPHONEstring)
+#define INSTALLPROPERTY_HELPTELEPHONE WINELIB_NAME_AW(INSTALLPROPERTY_HELPTELEPHONE)
+
+static const WCHAR INSTALLPROPERTY_INSTALLLOCATIONstringW[] = {'I','n','s','t','a','l','l','L','o','c','a','t','i','o','n',0};
+#define INSTALLPROPERTY_INSTALLLOCATIONA "InstallLocation"
+#define INSTALLPROPERTY_INSTALLLOCATIONW WINELIB_NAME_AW(INSTALLPROPERTY_INSTALLLOCATIONstring)
+#define INSTALLPROPERTY_INSTALLLOCATION WINELIB_NAME_AW(INSTALLPROPERTY_INSTALLLOCATION)
+
+static const WCHAR INSTALLPROPERTY_INSTALLSOURCEstringW[] = {'I','n','s','t','a','l','l','S','o','u','r','c','e',0};
+#define INSTALLPROPERTY_INSTALLSOURCEA "InstallSource"
+#define INSTALLPROPERTY_INSTALLSOURCEW WINELIB_NAME_AW(INSTALLPROPERTY_INSTALLSOURCEstring)
+#define INSTALLPROPERTY_INSTALLSOURCE WINELIB_NAME_AW(INSTALLPROPERTY_INSTALLSOURCE)
+
+static const WCHAR INSTALLPROPERTY_INSTALLDATEstringW[] = {'I','n','s','t','a','l','l','D','a','t','e',0};
+#define INSTALLPROPERTY_INSTALLDATEA "InstallDate"
+#define INSTALLPROPERTY_INSTALLDATEW WINELIB_NAME_AW(INSTALLPROPERTY_INSTALLDATEstring)
+#define INSTALLPROPERTY_INSTALLDATE WINELIB_NAME_AW(INSTALLPROPERTY_INSTALLDATE)
+
+static const WCHAR INSTALLPROPERTY_PUBLISHERstringW[] ={'P','u','b','l','i','s','h','e','r',0};
+#define INSTALLPROPERTY_PUBLISHERA "Publisher"
+#define INSTALLPROPERTY_PUBLISHERW WINELIB_NAME_AW(INSTALLPROPERTY_PUBLISHERstring)
+#define INSTALLPROPERTY_PUBLISHER WINELIB_NAME_AW(INSTALLPROPERTY_PUBLISHER)
+
+static const WCHAR INSTALLPROPERTY_LOCALPACKAGEstringW[] = {'L','o','c','a','l','P','a','c','k','a','g','e',0};
+#define INSTALLPROPERTY_LOCALPACKAGEA "LocalPackage"
+#define INSTALLPROPERTY_LOCALPACKAGEW WINELIB_NAME_AW(INSTALLPROPERTY_LOCALPACKAGEstring)
+#define INSTALLPROPERTY_LOCALPACKAGE WINELIB_NAME_AW(INSTALLPROPERTY_LOCALPACKAGE)
+
+static const WCHAR INSTALLPROPERTY_URLINFOABOUTstringW[] = {'U','R','L','I','n','f','o','A','b','o','u','t',0};
+#define INSTALLPROPERTY_URLINFOABOUTA "URLInfoAbout"
+#define INSTALLPROPERTY_URLINFOABOUTW WINELIB_NAME_AW(INSTALLPROPERTY_URLINFOABOUTstring)
+#define INSTALLPROPERTY_URLINFOABOUT WINELIB_NAME_AW(INSTALLPROPERTY_URLINFOABOUT)
+
+static const WCHAR INSTALLPROPERTY_URLUPDATEINFOstringW[] = {'U','R','L','U','p','d','a','t','e','I','n','f','o',0};
+#define INSTALLPROPERTY_URLUPDATEINFOA "URLUpdateInfo"
+#define INSTALLPROPERTY_URLUPDATEINFOW WINELIB_NAME_AW(INSTALLPROPERTY_URLUPDATEINFOstring)
+#define INSTALLPROPERTY_URLUPDATEINFO WINELIB_NAME_AW(INSTALLPROPERTY_URLUPDATEINFO)
+
+static const WCHAR INSTALLPROPERTY_VERSIONMINORstringW[] = {'V','e','r','s','i','o','n','M','i','n','o','r',0};
+#define INSTALLPROPERTY_VERSIONMINORA "VersionMinor"
+#define INSTALLPROPERTY_VERSIONMINORW WINELIB_NAME_AW(INSTALLPROPERTY_VERSIONMINORstring)
+#define INSTALLPROPERTY_VERSIONMINOR WINELIB_NAME_AW(INSTALLPROPERTY_VERSIONMINOR)
+
+static const WCHAR INSTALLPROPERTY_VERSIONMAJORstringW[] = {'V','e','r','s','i','o','n','M','a','j','o','r',0};
+#define INSTALLPROPERTY_VERSIONMAJORA "VersionMajor"
+#define INSTALLPROPERTY_VERSIONMAJORW WINELIB_NAME_AW(INSTALLPROPERTY_VERSIONMAJORstring)
+#define INSTALLPROPERTY_VERSIONMAJOR WINELIB_NAME_AW(INSTALLPROPERTY_VERSIONMAJOR)
+
+static const WCHAR INSTALLPROPERTY_PRODUCTIDstringW[] = {'P','r','o','d','u','c','t','I','D',0};
+#define INSTALLPROPERTY_PRODUCTIDA "ProductID"
+#define INSTALLPROPERTY_PRODUCTIDW WINELIB_NAME_AW(INSTALLPROPERTY_PRODUCTIDstring)
+#define INSTALLPROPERTY_PRODUCTID WINELIB_NAME_AW(INSTALLPROPERTY_PRODUCTID)
+
+static const WCHAR INSTALLPROPERTY_REGCOMPANYstringW[] = {'R','e','g','C','o','m','p','a','n','y',0};
+#define INSTALLPROPERTY_REGCOMPANYA "RegCompany"
+#define INSTALLPROPERTY_REGCOMPANYW WINELIB_NAME_AW(INSTALLPROPERTY_REGCOMPANYstring)
+#define INSTALLPROPERTY_REGCOMPANY WINELIB_NAME_AW(INSTALLPROPERTY_REGCOMPANY)
+
+static const WCHAR INSTALLPROPERTY_REGOWNERstringW[] = {'R','e','g','O','w','n','e','r',0};
+#define INSTALLPROPERTY_REGOWNERA "RegOwner"
+#define INSTALLPROPERTY_REGOWNERW WINELIB_NAME_AW(INSTALLPROPERTY_REGOWNERstring)
+#define INSTALLPROPERTY_REGOWNER WINELIB_NAME_AW(INSTALLPROPERTY_REGOWNER)
+
+/* MSI Version 3.0 and greater */
+static const WCHAR INSTALLPROPERTY_UNINSTALLABLEstringW[] = {'U','n','i','n','s','t','a','l','l','a','b','l','e',0};
+#define INSTALLPROPERTY_UNINSTALLABLEA "Uninstallable"
+#define INSTALLPROPERTY_UNINSTALLABLEW WINELIB_NAME_AW(INSTALLPROPERTY_UNINSTALLABLEstring)
+#define INSTALLPROPERTY_UNINSTALLABLE WINELIB_NAME_AW(INSTALLPROPERTY_UNINSTALLABLE)
+
+static const WCHAR INSTALLPROPERTY_PRODUCTSTATEstringW[] = {'S','t','a','t','e',0};
+#define INSTALLPROPERTY_PRODUCTSTATEA "State"
+#define INSTALLPROPERTY_PRODUCTSTATEW WINELIB_NAME_AW(INSTALLPROPERTY_PRODUCTSTATEstring)
+#define INSTALLPROPERTY_PRODUCTSTATE WINELIB_NAME_AW(INSTALLPROPERTY_PRODUCTSTATE)
+
+static const WCHAR INSTALLPROPERTY_PATCHSTATEstringW[] ={'S','t','a','t','e',0};
+#define INSTALLPROPERTY_PATCHSTATEA "State"
+#define INSTALLPROPERTY_PATCHSTATEW WINELIB_NAME_AW(INSTALLPROPERTY_PATCHSTATEstring)
+#define INSTALLPROPERTY_PATCHSTATE WINELIB_NAME_AW(INSTALLPROPERTY_PATCHSTATE)
+
+static const WCHAR INSTALLPROPERTY_PATCHTYPEstringW[] = {'P','a','t','c','h','T','y','p','e',0};
+#define INSTALLPROPERTY_PATCHTYPEA "PatchType"
+#define INSTALLPROPERTY_PATCHTYPEW WINELIB_NAME_AW(INSTALLPROPERTY_PATCHTYPEstring)
+#define INSTALLPROPERTY_PATCHTYPE WINELIB_NAME_AW(INSTALLPROPERTY_PATCHTYPE)
+
+static const WCHAR INSTALLPROPERTY_LUAENABLEDstringW[] = {'L','U','A','E','n','a','b','l','e','d',0};
+#define INSTALLPROPERTY_LUAENABLEDA "LUAEnabled"
+#define INSTALLPROPERTY_LUAENABLEDW WINELIB_NAME_AW(INSTALLPROPERTY_LUAENABLEDstring)
+#define INSTALLPROPERTY_LUAENABLED WINELIB_NAME_AW(INSTALLPROPERTY_LUAENABLED)
+
+static const WCHAR INSTALLPROPERTY_DISPLAYNAMEstringW[] = {'D','i','s','p','l','a','y','N','a','m','e',0};
+#define INSTALLPROPERTY_DISPLAYNAMEA "DisplayName"
+#define INSTALLPROPERTY_DISPLAYNAMEW WINELIB_NAME_AW(INSTALLPROPERTY_DISPLAYNAMEstring)
+#define INSTALLPROPERTY_DISPLAYNAME WINELIB_NAME_AW(INSTALLPROPERTY_DISPLAYNAME)
+
+static const WCHAR INSTALLPROPERTY_MOREINFOURLstringW[] = {'M','o','r','e','I','n','f','o','U','R','L',0};
+#define INSTALLPROPERTY_MOREINFOURLA "MoreInfoURL"
+#define INSTALLPROPERTY_MOREINFOURLW WINELIB_NAME_AW(INSTALLPROPERTY_MOREINFOURLstring)
+#define INSTALLPROPERTY_MOREINFOURL WINELIB_NAME_AW(INSTALLPROPERTY_MOREINFOURL)
+
+/* Source List Info */
+static const WCHAR INSTALLPROPERTY_LASTUSEDSOURCEstringW[] = {'L','a','s','t','U','s','e','d','S','o','u','r','c','e',0};
+#define INSTALLPROPERTY_LASTUSEDSOURCEA "LastUsedSource"
+#define INSTALLPROPERTY_LASTUSEDSOURCEW WINELIB_NAME_AW(INSTALLPROPERTY_LASTUSEDSOURCEstring)
+#define INSTALLPROPERTY_LASTUSEDSOURCE WINELIB_NAME_AW(INSTALLPROPERTY_LASTUSEDSOURCEW)
+
+static const WCHAR INSTALLPROPERTY_LASTUSEDTYPEstringW[] = {'L','a','s','t','U','s','e','d','T','y','p','e',0};
+#define INSTALLPROPERTY_LASTUSEDTYPEA "LastUsedType"
+#define INSTALLPROPERTY_LASTUSEDTYPEW WINELIB_NAME_AW(INSTALLPROPERTY_LASTUSEDTYPEstringW)
+#define INSTALLPROPERTY_LASTUSEDTYPE WINELIB_NAME_AW(INSTALLPROPERTY_LASTUSEDTYPE)
+
+static const WCHAR INSTALLPROPERTY_MEDIAPACKAGEPATHstringW[] = {'M','e','d','i','a','P','a','c','k','a','g','e','P','a','t','h',0};
+#define INSTALLPROPERTY_MEDIAPACKAGEPATHA "MediaPackagePath"
+#define INSTALLPROPERTY_MEDIAPACKAGEPATHW WINELIB_NAME_AW(INSTALLPROPERTY_MEDIAPACKAGEPATHstring)
+#define INSTALLPROPERTY_MEDIAPACKAGEPATH WINELIB_NAME_AW(INSTALLPROPERTY_MEDIAPACKAGEPATH)
+
+static const WCHAR INSTALLPROPERTY_DISKPROMPTstringW[] = {'D','i','s','k','P','r','o','m','p','t',0};
+#define INSTALLPROPERTY_DISKPROMPTA "DiskPrompt"
+#define INSTALLPROPERTY_DISKPROMPTW WINELIB_NAME_AW(INSTALLPROPERTY_DISKPROMPTstringW)
+#define INSTALLPROPERTY_DISKPROMPT WINELIB_NAME_AW(INSTALLPROPERTY_DISKPROMPT)
+
 typedef INT (CALLBACK *INSTALLUI_HANDLERA)(LPVOID, UINT, LPCSTR);
 typedef INT (CALLBACK *INSTALLUI_HANDLERW)(LPVOID, UINT, LPCWSTR);
 
@@ -325,6 +546,11 @@
 UINT WINAPI MsiCloseHandle(MSIHANDLE);
 UINT WINAPI MsiCloseAllHandles(void);
 INSTALLUILEVEL WINAPI MsiSetInternalUI(INSTALLUILEVEL, HWND*);
+
+UINT WINAPI MsiSourceListGetInfoW(LPCWSTR, LPCWSTR, MSIINSTALLCONTEXT, DWORD, LPCWSTR, LPWSTR, LPDWORD);
+UINT WINAPI MsiSourceListSetInfoW(LPCWSTR, LPCWSTR, MSIINSTALLCONTEXT, DWORD, LPCWSTR, LPCWSTR);
+UINT WINAPI MsiSourceListAddSourceExW(LPCWSTR, LPCWSTR, MSIINSTALLCONTEXT, DWORD, LPCWSTR, DWORD);
+UINT WINAPI MsiSourceListAddMediaDiskW(LPCWSTR, LPCWSTR, MSIINSTALLCONTEXT, DWORD, DWORD, LPCWSTR, LPCWSTR);
 
 #ifdef __cplusplus
 }
Index: dlls/msi/files.c
===================================================================
RCS file: /home/wine/wine/dlls/msi/files.c,v
retrieving revision 1.6
diff -u -r1.6 files.c
--- dlls/msi/files.c	5 Jul 2005 21:00:06 -0000	1.6
+++ dlls/msi/files.c	8 Jul 2005 12:43:09 -0000
@@ -55,8 +55,6 @@
 extern const WCHAR szRemoveFiles[];
 
 static const WCHAR cszTempFolder[]= {'T','e','m','p','F','o','l','d','e','r',0};
-static const WCHAR INSTALLPROPERTY_LASTUSEDSOURCE[] = {'L','a','s','t','U','s','e','d','S','o','u','r','c','e',0};
-static const WCHAR INSTALLPROPERTY_PACKAGENAME[] = {'P','a','c','k','a','g','e','N','a','m','e',0};
 
 inline static UINT create_component_directory ( MSIPACKAGE* package, INT component)
 {
@@ -508,12 +506,12 @@
             MsiSourceListSetInfoW(package->ProductCode, NULL, 
                 MSIINSTALLCONTEXT_USERMANAGED, 
                 MSICODE_PRODUCT|MSISOURCETYPE_MEDIA,
-                INSTALLPROPERTY_LASTUSEDSOURCE, last_path);
+                INSTALLPROPERTY_LASTUSEDSOURCEstringW, last_path);
         else
             MsiSourceListSetInfoW(package->ProductCode, NULL, 
                 MSIINSTALLCONTEXT_USERMANAGED, 
                 MSICODE_PRODUCT|MSISOURCETYPE_NETWORK,
-                INSTALLPROPERTY_LASTUSEDSOURCE, last_path);
+                INSTALLPROPERTY_LASTUSEDSOURCEstringW, last_path);
         msiobj_release(&row->hdr);
         return rc;
     }
@@ -541,7 +539,7 @@
             MsiSourceListSetInfoW(package->ProductCode, NULL,
                 MSIINSTALLCONTEXT_USERMANAGED,
                 MSICODE_PRODUCT|MSISOURCETYPE_NETWORK,
-                INSTALLPROPERTY_LASTUSEDSOURCE, path);
+                INSTALLPROPERTY_LASTUSEDSOURCEstringW, path);
 
             HeapFree(GetProcessHeap(),0,path);
         }
@@ -565,12 +563,12 @@
                     MsiSourceListSetInfoW(package->ProductCode, NULL,
                             MSIINSTALLCONTEXT_USERMANAGED,
                             MSICODE_PRODUCT|MSISOURCETYPE_MEDIA,
-                            INSTALLPROPERTY_LASTUSEDSOURCE, last_path);
+                            INSTALLPROPERTY_LASTUSEDSOURCEstringW, last_path);
                 else
                     MsiSourceListSetInfoW(package->ProductCode, NULL,
                             MSIINSTALLCONTEXT_USERMANAGED,
                             MSICODE_PRODUCT|MSISOURCETYPE_NETWORK,
-                            INSTALLPROPERTY_LASTUSEDSOURCE, last_path);
+                            INSTALLPROPERTY_LASTUSEDSOURCEstringW, last_path);
 
                 /* extract the cab file into a folder in the temp folder */
                 sz = MAX_PATH;
@@ -596,12 +594,12 @@
             MsiSourceListSetInfoW(package->ProductCode, NULL,
                     MSIINSTALLCONTEXT_USERMANAGED,
                     MSICODE_PRODUCT|MSISOURCETYPE_MEDIA,
-                    INSTALLPROPERTY_LASTUSEDSOURCE, last_path);
+                    INSTALLPROPERTY_LASTUSEDSOURCEstringW, last_path);
         else
             MsiSourceListSetInfoW(package->ProductCode, NULL,
                     MSIINSTALLCONTEXT_USERMANAGED,
                     MSICODE_PRODUCT|MSISOURCETYPE_NETWORK,
-                    INSTALLPROPERTY_LASTUSEDSOURCE, last_path);
+                    INSTALLPROPERTY_LASTUSEDSOURCEstringW, last_path);
     }
     set_file_source(package, file, comp, last_path);
 
@@ -666,7 +664,7 @@
         MsiSourceListSetInfoW(package->ProductCode, NULL,
                 MSIINSTALLCONTEXT_USERMANAGED,
                 MSICODE_PRODUCT,
-                INSTALLPROPERTY_PACKAGENAME, ptr);
+                INSTALLPROPERTY_PACKAGENAMEstringW, ptr);
     }
     FIXME("Write DiskPrompt\n");
     
Index: dlls/msi/source.c
===================================================================
RCS file: /home/wine/wine/dlls/msi/source.c,v
retrieving revision 1.1
diff -u -r1.1 source.c
--- dlls/msi/source.c	5 Jul 2005 21:00:06 -0000	1.1
+++ dlls/msi/source.c	8 Jul 2005 12:43:09 -0000
@@ -44,13 +44,6 @@
  * These apis are defined in MSI 3.0
  */
 
-static const WCHAR INSTALLPROPERTY_MEDIAPACKAGEPATH[] = {'M','e','d','i','a','P','a','c','k','a','g','e','P','a','t','h',0};
-static const WCHAR INSTALLPROPERTY_DISKPROMPT[] = {'D','i','s','k','P','r','o','m','p','t',0};
-static const WCHAR INSTALLPROPERTY_LASTUSEDSOURCE[] = {'L','a','s','t','U','s','e','d','S','o','u','r','c','e',0};
-static const WCHAR INSTALLPROPERTY_LASTUSEDTYPE[] = {'L','a','s','t','U','s','e','d','T','y','p','e',0};
-static const WCHAR INSTALLPROPERTY_PACKAGENAME[] = {'P','a','c','k','a','g','e','N','a','m','e',0};
-
-
 typedef struct tagMediaInfo
 {
     LPWSTR  path;
@@ -194,43 +187,43 @@
     if (rc != ERROR_SUCCESS)
         return ERROR_UNKNOWN_PRODUCT;
 
-    if (strcmpW(szProperty, INSTALLPROPERTY_MEDIAPACKAGEPATH) == 0)
+    if (strcmpW(szProperty, INSTALLPROPERTY_MEDIAPACKAGEPATHstringW) == 0)
     {
         HKEY key;
         rc = OpenMediaSubkey(sourcekey, &key, FALSE);
         if (rc == ERROR_SUCCESS)
-            rc = RegQueryValueExW(key, INSTALLPROPERTY_MEDIAPACKAGEPATH, 0, 0,
-                    (LPBYTE)szValue, pcchValue);
+            rc = RegQueryValueExW(key, INSTALLPROPERTY_MEDIAPACKAGEPATHstringW,
+                    0, 0, (LPBYTE)szValue, pcchValue);
         if (rc != ERROR_SUCCESS && rc != ERROR_MORE_DATA)
             rc = ERROR_UNKNOWN_PROPERTY;
         RegCloseKey(key);
     }
-    else if (strcmpW(szProperty, INSTALLPROPERTY_DISKPROMPT) ==0)
+    else if (strcmpW(szProperty, INSTALLPROPERTY_DISKPROMPTstringW) ==0)
     {
         HKEY key;
         rc = OpenMediaSubkey(sourcekey, &key, FALSE);
         if (rc == ERROR_SUCCESS)
-            rc = RegQueryValueExW(key, INSTALLPROPERTY_DISKPROMPT, 0, 0,
+            rc = RegQueryValueExW(key, INSTALLPROPERTY_DISKPROMPTstringW, 0, 0,
                     (LPBYTE)szValue, pcchValue);
         if (rc != ERROR_SUCCESS && rc != ERROR_MORE_DATA)
             rc = ERROR_UNKNOWN_PROPERTY;
         RegCloseKey(key);
     }
-    else if (strcmpW(szProperty, INSTALLPROPERTY_LASTUSEDSOURCE)==0)
+    else if (strcmpW(szProperty, INSTALLPROPERTY_LASTUSEDSOURCEstringW)==0)
     {
         LPWSTR buffer;
         DWORD size = 0;
 
-        RegQueryValueExW(sourcekey, INSTALLPROPERTY_LASTUSEDSOURCE, 0, 0, NULL,
-                &size);
+        RegQueryValueExW(sourcekey, INSTALLPROPERTY_LASTUSEDSOURCEstringW, 0, 0,
+                NULL, &size);
         if (size == 0)
             rc = ERROR_UNKNOWN_PROPERTY;
         else
         {
             LPWSTR ptr;
             buffer = HeapAlloc(GetProcessHeap(),0,size);
-            rc = RegQueryValueExW(sourcekey, INSTALLPROPERTY_LASTUSEDSOURCE, 0,
-                        0, (LPBYTE)buffer,&size); 
+            rc = RegQueryValueExW(sourcekey, INSTALLPROPERTY_LASTUSEDSOURCEstringW,
+                    0, 0, (LPBYTE)buffer,&size); 
             ptr = strchrW(buffer,';');
             ptr = strchrW(ptr,';');
             if (!ptr)
@@ -250,20 +243,20 @@
             HeapFree(GetProcessHeap(),0,buffer);
         }
     }
-    else if (strcmpW(INSTALLPROPERTY_LASTUSEDTYPE, szProperty)==0)
+    else if (strcmpW(INSTALLPROPERTY_LASTUSEDTYPEstringW, szProperty)==0)
     {
         LPWSTR buffer;
         DWORD size = 0;
 
-        RegQueryValueExW(sourcekey, INSTALLPROPERTY_LASTUSEDSOURCE, 0, 0, NULL,
-                &size);
+        RegQueryValueExW(sourcekey, INSTALLPROPERTY_LASTUSEDSOURCEstringW, 0, 0,
+                NULL, &size);
         if (size == 0)
             rc = ERROR_UNKNOWN_PROPERTY;
         else
         {
             buffer = HeapAlloc(GetProcessHeap(),0,size);
-            rc = RegQueryValueExW(sourcekey, INSTALLPROPERTY_LASTUSEDSOURCE, 0,
-                        0, (LPBYTE)buffer,&size); 
+            rc = RegQueryValueExW(sourcekey, INSTALLPROPERTY_LASTUSEDSOURCEstringW,
+                    0, 0, (LPBYTE)buffer,&size); 
             if (*pcchValue < 1)
             {
                 rc = ERROR_MORE_DATA;
@@ -277,9 +270,9 @@
             HeapFree(GetProcessHeap(),0,buffer);
         }
     }
-    else if (strcmpW(INSTALLPROPERTY_PACKAGENAME, szProperty)==0)
+    else if (strcmpW(INSTALLPROPERTY_PACKAGENAMEstringW, szProperty)==0)
     {
-        rc = RegQueryValueExW(sourcekey, INSTALLPROPERTY_PACKAGENAME, 0, 0, 
+        rc = RegQueryValueExW(sourcekey, INSTALLPROPERTY_PACKAGENAMEstringW, 0, 0, 
                 (LPBYTE)szValue, pcchValue);
         if (rc != ERROR_SUCCESS && rc != ERROR_MORE_DATA)
             rc = ERROR_UNKNOWN_PROPERTY;
@@ -331,31 +324,31 @@
         return ERROR_UNKNOWN_PRODUCT;
 
 
-    if (strcmpW(szProperty, INSTALLPROPERTY_MEDIAPACKAGEPATH) == 0)
+    if (strcmpW(szProperty, INSTALLPROPERTY_MEDIAPACKAGEPATHstringW) == 0)
     {
         HKEY key;
         DWORD size = lstrlenW(szValue)*sizeof(WCHAR);
         rc = OpenMediaSubkey(sourcekey, &key, FALSE);
         if (rc == ERROR_SUCCESS)
-            rc = RegSetValueExW(key, INSTALLPROPERTY_MEDIAPACKAGEPATH, 0, 
+            rc = RegSetValueExW(key, INSTALLPROPERTY_MEDIAPACKAGEPATHstringW, 0,
                     REG_SZ, (LPBYTE)szValue, size);
         if (rc != ERROR_SUCCESS)
             rc = ERROR_UNKNOWN_PROPERTY;
         RegCloseKey(key);
     }
-    else if (strcmpW(szProperty, INSTALLPROPERTY_DISKPROMPT) ==0)
+    else if (strcmpW(szProperty, INSTALLPROPERTY_DISKPROMPTstringW) == 0)
     {
         HKEY key;
         DWORD size = lstrlenW(szValue)*sizeof(WCHAR);
         rc = OpenMediaSubkey(sourcekey, &key, FALSE);
         if (rc == ERROR_SUCCESS)
-            rc = RegSetValueExW(key, INSTALLPROPERTY_DISKPROMPT, 0, REG_SZ,
-                    (LPBYTE)szValue, size);
+            rc = RegSetValueExW(key, INSTALLPROPERTY_DISKPROMPTstringW, 0,
+                    REG_SZ, (LPBYTE)szValue, size);
         if (rc != ERROR_SUCCESS)
             rc = ERROR_UNKNOWN_PROPERTY;
         RegCloseKey(key);
     }
-    else if (strcmpW(szProperty, INSTALLPROPERTY_LASTUSEDSOURCE)==0)
+    else if (strcmpW(szProperty, INSTALLPROPERTY_LASTUSEDSOURCEstringW)==0)
     {
         LPWSTR buffer = NULL;
         DWORD size;
@@ -378,17 +371,17 @@
         size = (lstrlenW(szValue)+5)*sizeof(WCHAR);
         buffer = HeapAlloc(GetProcessHeap(),0,size);
         sprintfW(buffer, LastUsedSource_Fmt, typechar, 1, szValue);
-        rc = RegSetValueExW(sourcekey, INSTALLPROPERTY_LASTUSEDSOURCE, 0, 
+        rc = RegSetValueExW(sourcekey, INSTALLPROPERTY_LASTUSEDSOURCEstringW, 0, 
                 REG_EXPAND_SZ, (LPBYTE)buffer, size);
         if (rc != ERROR_SUCCESS)
             rc = ERROR_UNKNOWN_PROPERTY;
         HeapFree( GetProcessHeap(), 0, buffer );
     }
-    else if (strcmpW(INSTALLPROPERTY_PACKAGENAME, szProperty)==0)
+    else if (strcmpW(INSTALLPROPERTY_PACKAGENAMEstringW, szProperty)==0)
     {
         DWORD size = lstrlenW(szValue)*sizeof(WCHAR);
-        rc = RegSetValueExW(sourcekey, INSTALLPROPERTY_PACKAGENAME, 0, REG_SZ, 
-                (LPBYTE)szValue, size);
+        rc = RegSetValueExW(sourcekey, INSTALLPROPERTY_PACKAGENAMEstringW, 0,
+                REG_SZ, (LPBYTE)szValue, size);
         if (rc != ERROR_SUCCESS)
             rc = ERROR_UNKNOWN_PROPERTY;
     }


More information about the wine-patches mailing list