python/dist/src/Tools/msi msisupport.c,1.1,1.2
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; }
participants (1)
-
loewis@users.sourceforge.net