[Python-checkins] python/dist/src/Tools/msi msisupport.c,1.1,1.2

loewis at users.sourceforge.net loewis at users.sourceforge.net
Fri Feb 18 17:18:11 CET 2005


Update of /cvsroot/python/python/dist/src/Tools/msi
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9213

Modified Files:
	msisupport.c 
Log Message:
Avoid using *W functions on Win95. Backported to 2.4.

Index: msisupport.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Tools/msi/msisupport.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- msisupport.c	12 Dec 2004 15:29:21 -0000	1.1
+++ msisupport.c	18 Feb 2005 16:18:09 -0000	1.2
@@ -1,14 +1,16 @@
 #include "windows.h"
 #include "msiquery.h"
 
+int isWinNT;
+
 /* Print a debug message to the installer log file.
  * To see the debug messages, install with
  * msiexec /i pythonxy.msi /l*v python.log
  */
-static UINT debug(MSIHANDLE hInstall, LPCWSTR msg)
+static UINT debug(MSIHANDLE hInstall, LPCSTR msg)
 {
 	MSIHANDLE hRec = MsiCreateRecord(1);
-	if (!hRec || MsiRecordSetStringW(hRec, 1, msg) != ERROR_SUCCESS) {
+	if (!hRec || MsiRecordSetStringA(hRec, 1, msg) != ERROR_SUCCESS) {
 		return ERROR_INSTALL_FAILURE;
 	}
 	MsiProcessMessage(hInstall, INSTALLMESSAGE_INFO, hRec);
@@ -21,23 +23,34 @@
  */
 UINT __declspec(dllexport) __stdcall CheckDir(MSIHANDLE hInstall)
 {
-	WCHAR path[1024];
+#define PSIZE 1024
+	WCHAR wpath[PSIZE];
+	char path[PSIZE];
 	UINT result;
-	DWORD size = sizeof(path)/sizeof(WCHAR);
+	DWORD size = PSIZE;
 	DWORD attributes;
+
+	isWinNT = (GetVersion() < 0x80000000) ? 1 : 0;
 	
-	result = MsiGetPropertyW(hInstall, L"TARGETDIR", path, &size);
+	if (isWinNT)
+		result = MsiGetPropertyW(hInstall, L"TARGETDIR", wpath, &size);
+	else
+		result = MsiGetPropertyA(hInstall, "TARGETDIR", path, &size);
 	if (result != ERROR_SUCCESS)
 		return result;
+	wpath[size] = L'\0';
 	path[size] = L'\0';
 
-	attributes = GetFileAttributesW(path);
+	if (isWinNT)
+		attributes = GetFileAttributesW(wpath);
+	else
+		attributes = GetFileAttributesA(path);
 	if (attributes == INVALID_FILE_ATTRIBUTES ||
 		!(attributes & FILE_ATTRIBUTE_DIRECTORY)) 
 	{
-		return MsiSetPropertyW(hInstall, L"TargetExists", L"0");
+		return MsiSetPropertyA(hInstall, "TargetExists", "0");
 	} else {
-		return MsiSetPropertyW(hInstall, L"TargetExists", L"1");
+		return MsiSetPropertyA(hInstall, "TargetExists", "1");
 	}
 }
 
@@ -50,10 +63,10 @@
 	INSTALLSTATE ext_old, ext_new, tcl_old, tcl_new, reg_new;
 	UINT result;
 
-	result = MsiGetFeatureStateW(hInstall, L"Extensions", &ext_old, &ext_new);
+	result = MsiGetFeatureStateA(hInstall, "Extensions", &ext_old, &ext_new);
 	if (result != ERROR_SUCCESS)
 		return result;
-	result = MsiGetFeatureStateW(hInstall, L"TclTk", &tcl_old, &tcl_new);
+	result = MsiGetFeatureStateA(hInstall, "TclTk", &tcl_old, &tcl_new);
 	if (result != ERROR_SUCCESS)
 		return result;
 
@@ -76,7 +89,7 @@
 	} else { 
 		reg_new = INSTALLSTATE_ABSENT;
 	}
-	result = MsiSetComponentStateW(hInstall, L"REGISTRY.tcl", reg_new);
+	result = MsiSetComponentStateA(hInstall, "REGISTRY.tcl", reg_new);
 	return result;
 }
 



More information about the Python-checkins mailing list