Re: psql 8.0 final not working on NT 4.0sp6

Поиск
Список
Период
Сортировка
От Mike Mascari
Тема Re: psql 8.0 final not working on NT 4.0sp6
Дата
Msg-id 41EDB9D5.7010505@mascari.com
обсуждение исходный текст
Ответ на Re: psql 8.0 final not working on NT 4.0sp6  ("Magnus Hagander" <mha@sollentuna.net>)
Список pgsql-hackers
Magnus Hagander wrote:
>>According to this: http://support.microsoft.com/kb/q165695/ Windows  
>>Desktop update was included with IE 4, but not with IE 5 or later.  
>>Further, if you want to install Windows Desktop Update you have to  
>>first remove IE 5 or later. And finally it says that Windows Desktop  
>>Update can only be installed using the IE 4 setup, but this is no  
>>longer available from Microsoft. What a mess.
> 
> 
> Yikes. that's certainly a mess. I see the following options

Hello, Magnus. I read the -bugs thread that resulted in this code and 
choose not to comment since I thought that perhaps my understanding of 
the implications of using SHFolder.dll v. Shell32.dll was in error.

However, installer code that I had authored before that works on both 
98, XP, and NT does:

module = LoadLibrary("SHFolder.dll");
if (module != NULL) { getfolderv1 = GetProcAddress(module, "SHGetFolderPathA"); ...  invoke function, deal with ANSI
path... FreeLibrary(module);
 
} else { module = LoadLibrary("shell32.dll"); if (module != NULL) {  getfolderv2 = GetProcAddress(module,
"SHGetSpecialFolderLocation"); ...   invoke function, deal with UNICODE path  ...  FreeLibrary(module); } else {
throwan exception here... }
 
}

I think the way to guarantee success is to ship the redistributable dll, 
shfolder.dll with the application, which would eliminate the need to try 
and fall back to shell32.dll. shfolder.dll is redistributable:

http://www.microsoft.com/downloads/details.aspx?FamilyID=6ae02498-07e9-48f1-a5d6-dbfa18d37e0f&DisplayLang=en

This article explains what needs to be done to write an installer for 
older platforms:

http://support.microsoft.com/default.aspx?scid=kb%3BEN-US%3B227051

Note:

"Important: SHGetFolderPath is new to the Windows 2000 API. If you call 
SHGetFolderPath from an application that can be installed on a previous 
version of Windows, then you will need to redistribute the file 
SHFolder.dll with your application."

as does this one:

http://support.microsoft.com/default.aspx?scid=kb%3BEN-US%3BQ241733

My code expects to find an shfolder.dll on < Windows 2000 systems and a 
shell32.dll on >= Windows 2000 systems. As I said, I *believe* you can 
guarantee success by just shipping shfolder.dll with the application.

Hope that helps,

Mike Mascari









В списке pgsql-hackers по дате отправления:

Предыдущее
От: Andrew Dunstan
Дата:
Сообщение: buildfarm enhancements
Следующее
От: Tom Lane
Дата:
Сообщение: Re: ARC patent